本地Django站点集成Paddle沙箱Overlay结账失败求助
Paddle沙箱Overlay结账报错排查方向
验证核心ID的有效性
- 确认按钮的
data-product属性值是沙箱环境下的有效产品ID,沙箱和生产环境的产品ID不通用,不要混用生产ID - 检查
Paddle.Setup中的vendor值是否为沙箱商家ID,沙箱和生产的商家ID是独立的,不能混淆
- 确认按钮的
修正沙箱域名配置
- 登录Paddle沙箱后台,在结账设置的允许域名列表中,添加
https://localhost:8000(仅需域名+端口,不需要带具体路径) - 核对配置的域名是否和本地站点的URL完全匹配,确保HTTPS、端口号无拼写错误
- 登录Paddle沙箱后台,在结账设置的允许域名列表中,添加
解决跨域拦截问题
- 在Django中配置CORS中间件,允许Paddle沙箱域名的请求:
- 安装依赖:
pip install django-cors-headers - 在
settings.py的INSTALLED_APPS中添加'corsheaders' - 在
MIDDLEWARE中添加'corsheaders.middleware.CorsMiddleware'(放在django.middleware.common.CommonMiddleware之前) - 设置允许的源:
CORS_ALLOWED_ORIGINS = [ "https://sandbox.paddle.com", "https://sandbox-create-checkout.paddle.com", ]
- 安装依赖:
- 若临时排查,可使用Chrome浏览器的
--disable-web-security参数启动,确认是否为跨域限制导致
- 在Django中配置CORS中间件,允许Paddle沙箱域名的请求:
检查Paddle.js的初始化逻辑
- 尝试更新Paddle.js到最新版本,替换脚本地址为
https://cdn.paddle.com/paddle/v2/paddle.js - 确保
Paddle.Environment.set('sandbox')在Paddle.Setup之前执行,顺序错误会导致环境切换失败
- 尝试更新Paddle.js到最新版本,替换脚本地址为
确认产品状态
- 登录Paddle沙箱后台,检查对应产品是否已发布,状态是否为「活跃」,未发布的产品无法生成结账链接
核对请求参数
- 对比手动请求中的
product和vendor参数,确认和沙箱后台的ID完全一致 - 检查
parentURL是否与当前页面的实际URL匹配,避免路径错误或HTTP/HTTPS协议不匹配
- 对比手动请求中的
内容的提问来源于stack exchange,提问作者Simon East
相关产品推荐
相关产品推荐

