集成PayPal简易订阅按钮时触发404错误求助
PayPal沙箱订阅按钮404错误排查方案
核心排查步骤:
验证套餐Plan ID有效性
确认P-66899082RN487441DMXZKF7I属于你代码中client-id对应的沙箱商家账户,且状态为ACTIVE。登录沙箱商家后台,进入「订阅」-「套餐」页面核对Plan归属与状态,跨账户的Plan ID会直接导致API请求失败。修正SDK参数配置
订阅场景不需要intent=subscription参数,移除后重新引入SDK:<script src="https://www.paypal.com/sdk/js?client-id=你的沙箱client-id&vault=true"></script>同时确保
client-id是沙箱环境的商家API凭证,而非生产环境ID。检查账户权限与状态
确认沙箱商家账户已启用订阅服务,进入「账户设置」-「网站支付」查看订阅功能状态;同时检查沙箱个人账户无限制、冻结等异常状态。排查网络与缓存问题
清除浏览器缓存或使用无痕模式测试,避免旧SDK缓存干扰;确保测试环境未拦截api.sandbox.paypal.com域名的请求。
修正后的测试代码
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width" /> <title>PayPal订阅测试</title> </head> <body> <script src="https://www.paypal.com/sdk/js?client-id=你的沙箱client-id&vault=true"></script> <div id="paypal-button-container"></div> <script> paypal.Buttons({ createSubscription: function(data, actions) { return actions.subscription.create({ 'plan_id': 'P-66899082RN487441DMXZKF7I' }); }, onApprove: function(data, actions) { console.log('订阅成功:', data.subscriptionID); alert('订阅成功!订阅ID:' + data.subscriptionID); }, onError: function(err) { console.error('订阅错误详情:', err); } }).render('#paypal-button-container'); </script> </body> </html>
内容的提问来源于stack exchange,提问作者Dalibor
相关产品推荐
相关产品推荐

