我已经设置了企业和个人帐户、订阅、计划...所有设置都是为了沙箱中的简单贝宝按钮 POC。
这是我的代码:
<!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></title>
</head>
<body>
<script src="https://www.paypal.com/sdk/js?client-id=xxxx&vault=true&intent=subscription"></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, '\n', actions);
alert('You have successfully subscribed to ' + data.subscriptionID);
}
}).render('#paypal-button-container');
</script>
</body>
</html>
(我已将客户端 ID 替换为 xxxx,但实际上我已输入有效的客户端 ID)
但是,当 paypal 插件开始 ping 其自己的端点时,我首先得到 404: https://www.sandbox.paypal.com/v1/billing/subscriptions 404错误
在控制台出现一堆错误之后:
rest_api_v1_billing_subscriptions_create_error, 创建订单错误, 未捕获的错误:创建订阅 Api 响应错误 ...等等。
我使用了官方集成手册的确切形式: https://developer.paypal.com/docs/subscriptions/integrate/
P-66899082RN487441DMXZKF7I
来自哪里?显然它不是使用正在加载的脚本的 client-id 生成的,因此出现 404 错误。
获取沙盒模式的工作标识符和客户端 ID 的最简单方法是从沙盒帐户界面https://www.sandbox.paypal.com/billing/plans。否则,您需要使用相应的 API 调用创建产品和计划,其中的信息(请求+响应)不在您的问题中。