PayPal Sandbox订阅按钮创建失败报400错误求助
PayPal Sandbox订阅按钮失效(400错误)解决方法
问题现象
- 通过Sandbox按钮生成器创建的订阅按钮无法正常发起请求,控制台抛出
POST https://www.sandbox.paypal.com/webapps/billing/api/billagmt/undefined/createCart 400错误 - 立即购买等其他类型按钮功能正常,商家/个人账户关联邮箱均已验证,订阅按钮的邮件链接同样无效
排查与解决步骤
检查托管按钮配置完整性
登录Sandbox商家账户,进入按钮管理页面,找到对应hosted_button_id: F7H82MZZ8PFKL的订阅按钮,确认:- 按钮状态为启用
- 关联的订阅计划配置完整(包含结算周期、金额、试用规则等)
若配置存在缺失,重新编辑按钮并生成新的hosted_button_id替换现有代码
改用REST API订阅按钮(推荐)
传统_s-xclick表单按钮属于旧版HTML标准按钮,兼容性较差,建议替换为REST API实现:<script src="https://www.paypal.com/sdk/js?client-id=你的沙盒ClientID&vault=true&intent=subscription"></script> <div id="paypal-button-container"></div> <script> paypal.Buttons({ createSubscription: function(data, actions) { return actions.subscription.create({ 'plan_id': '你的沙盒订阅计划ID' // 替换为你创建的订阅计划ID }); }, onApprove: function(data, actions) { alert('订阅成功:' + data.subscriptionID); } }).render('#paypal-button-container'); </script>操作步骤:在Sandbox开发者后台创建订阅计划获取
plan_id,同时获取商家账户的沙盒ClientID,替换到代码对应位置即可验证Sandbox账户功能权限
进入沙盒商家账户设置,确认“销售工具”中的订阅功能已启用,且账户付款设置无订阅类交易限制规则清理浏览器缓存
清除PayPal Sandbox相关的Cookie和缓存,或使用无痕模式测试按钮,避免旧会话数据干扰请求
内容的提问来源于stack exchange,提问作者Pythonista
相关产品推荐
相关产品推荐

