Paypal订阅集成和修改订阅问题



我正在处理angular项目,我的要求是配置贝宝支付网关,包括创建订阅、取消订阅、升级订阅。

我有2个贝宝问题,如下所述:

1(我已经成功地用以下代码呈现了贝宝按钮:

index.html

<script src="https://www.paypal.com/sdk/js?client-id=client_id_here&disable-funding=credit,card&vault=true"></script>

支付组件.ts

const self = this;  
this.planId = localStorage.getItem("paypalPlanId");  //Default Plan Id
paypal.Buttons({  
createSubscription: function (data, actions) {  

return actions.subscription.create({  
'plan_id': self.planId,
"subscriber": {
"name": {
"given_name": localStorage.getItem("fullName").split(' ')[0],
"surname": localStorage.getItem("fullName").split(' ')[1]
},
"email_address": localStorage.getItem("email")
}
});  
},
onApprove: function (data) {  
console.log(data); 
self.getSubcriptionDetails();
self.router.navigate(CC_GLOBAL.PAYMENT_THANKS_ROUTE);
},  
onCancel: function (data) {  
// Show a cancel page, or return to cart  
console.log(data);  
},  
onError: function (err) {  
// Show an error page here, when an error occurs  
console.log(err);  
}  
}).render(this.paypalElement.nativeElement);

上面的代码按预期工作,并且能够创建订阅。现在我的要求大不相同,如下所述:

点击贝宝按钮后,它将打开模式弹出窗口,在成功登录后,我可以订阅计划。

我还用我的帐户设置了webhook方法,在成功订阅后,它会调用webhook方式,在调用webhookmethod时,会返回loggedIn用户详细信息(电子邮件,名字/姓氏(,而不是上面的电子邮件和用户名字/姓氏。

上面createSubscription方法有时按预期工作,但有时并非如此。

从贝宝官方文档中获得了上述代码的参考。

2(Paypal升级计划REST API返回错误:

我有订阅id,并从这里获得参考:

https://developer.paypal.com/docs/business/subscriptions/add-capabilities/revise-subscriptions/

但is返回以下错误:

修订操作的订阅状态无效;订阅状态应为活动状态

我如何知道活动状态,我使用沙盒帐户

在这里我对这个问题进行了一些研究,发现了以下贝宝漏洞:

1(https://github.com/paypal/paypal-checkout-components/issues/1336

2(https://github.com/paypal/paypal-checkout-components/issues/1247#issuecomment-551066663

尽管如此,我仍在寻找同样的答案。

最新更新