Django集成PayPal订阅支付按钮无法打开,报RESOURCE_NOT_FOUND错误
解决Django集成PayPal订阅支付空白页及RESOURCE_NOT_FOUND问题
以下是针对性的排查和解决步骤:
核对订阅计划ID与状态
确认从PayPal沙箱复制的订阅计划ID完全正确,无多余空格或字符;同时在沙箱后台确认该计划处于已启用状态,未启用的计划会触发INVALID_RESOURCE_ID错误。检查PayPal JS脚本配置
确保加载的是沙箱环境的脚本,且client-id为沙箱账户的对应ID:<script src="https://www.sandbox.paypal.com/sdk/js?client-id=你的沙箱Client ID&vault=true&intent=subscription"></script>避免误使用生产环境的client-id或脚本地址。
配置Django的跨域与信任设置
除了SECURE_CROSS_ORIGIN_OPENER_POLICY = 'same-origin-allow-popups',还需在settings.py中添加PayPal沙箱域名到信任源:CSRF_TRUSTED_ORIGINS = ['https://www.sandbox.paypal.com']同时将本地服务器地址(如
http://localhost:8000)添加到PayPal沙箱应用的允许返回URL列表中,即使是本地开发也需要此配置。调整脚本加载顺序与DOM匹配
将PayPal的JS脚本放在页面底部,或添加defer属性确保DOM渲染完成后再执行脚本;检查按钮初始化代码中的选择器是否精准匹配页面上的按钮元素(如ID是否正确)。排查网络与缓存问题
尝试更换VPN节点或关闭VPN(若本地可直接访问PayPal沙箱);清空浏览器缓存及PayPal相关Cookie,避免旧缓存导致资源加载异常。
内容的提问来源于stack exchange,提问作者Ali Nazeri
相关产品推荐
相关产品推荐

