我正在尝试访问在Paypal创建订阅后的响应json。
这是代码-它使用Paypal javascript SDK(它来自SDK文档和这个答案):
createSubscription: function (data, actions) {
return actions.subscription.create({
'plan_id': 'xxx'
});
},
onApprove: function (data, actions) {
return actions.subscription.get().then(function (details) {
console.log(details)
});
},
订阅创建成功,但onApprove actions.subscription.get()行超时,并显示控制台消息:
b.sbox.stats.paypal.com/v2/counter.cgi?p=uid_xxx&s=SMART_PAYMENT_BUTTONS:1 GET https://b.sbox.stats.paypal.com/v2/counter.cgi?p=uid_xxx&s=SMART_PAYMENT_BUTTONS net::ERR_CONNECTION_TIMED_OUT
我是否使用正确的代码来获取json?如果是这样,为什么它会超时?
编辑:再次搜索Paypal社区后,我修改了代码如下:
return actions.subscription.get(data.subscriptionID).then(function (details) {
console.log(details)
});
会产生一个稍微不同的错误消息:
b.sbox.stats.paypal.com/v2/counter.cgi?p=uid_bf756f1ba7_mdg6ntk6mjm&s=SMART_PAYMENT_BUTTONS:1加载资源失败:net::ERR_CONNECTION_TIMED_OUT
对于订阅,没有理由在onApprove中执行'get'。使用data
中已有的信息。
由于onApprove是客户端操作,并且在订阅激活后发生,因此没有业务关键逻辑应该依赖于正在执行的此代码路径,因为它可能不依赖于此代码路径。
如果你有任何必须执行的内容,为BILLING.PLAN.ACTIVATED(计划创建)和/或payment . sale . completed(付款发生)设置一个webhook监听器