Paypal 订阅整合和修改订阅问题
Paypal subscription integration and revise subscription issues
我正在处理 angular 项目,我的要求是通过创建订阅、取消订阅、升级订阅来配置贝宝支付网关。
我在使用贝宝时遇到 2 个问题,如下所述:
1) 我已经使用以下代码成功渲染了 paypal 按钮:
index.html
<script src="https://www.paypal.com/sdk/js?client-id=client_id_here&disable-funding=credit,card&vault=true"></script>
payment.component.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);
以上代码按预期工作并且能够创建订阅。
现在我的要求是完全不同的,如下所述:
点击 paypal 按钮后,它打开模式弹出窗口,成功登录尝试后我可以订阅计划。
我还使用我的帐户设置了 webhook 方法,在成功订阅后它调用 webhook 方法并且在调用 webhook 方法时响应 return 具有登录用户详细信息(EMAIL,first/last 名称) 而不是上面的电子邮件和用户 first/last 名称。
上面的 createSubscription 方法 有时按预期工作,但有时却不是。
上面的代码参考了paypal的官方文档
2) Paypal 升级计划 REST API returns 一个错误:
我有订阅 ID 并从这里参考:
https://developer.paypal.com/docs/business/subscriptions/add-capabilities/revise-subscriptions/
但是 return 出现以下错误:
修改操作的订阅状态无效;订阅状态应该是活跃的。
我怎么知道活动状态,我正在使用 沙盒帐户
在这里我对这个问题做了一些研究,发现了以下 paypal 错误:
1) https://github.com/paypal/paypal-checkout-components/issues/1336
2) https://github.com/paypal/paypal-checkout-components/issues/1247#issuecomment-551066663
我仍在寻找相同的答案。
我正在处理 angular 项目,我的要求是通过创建订阅、取消订阅、升级订阅来配置贝宝支付网关。
我在使用贝宝时遇到 2 个问题,如下所述:
1) 我已经使用以下代码成功渲染了 paypal 按钮:
index.html
<script src="https://www.paypal.com/sdk/js?client-id=client_id_here&disable-funding=credit,card&vault=true"></script>
payment.component.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);
以上代码按预期工作并且能够创建订阅。 现在我的要求是完全不同的,如下所述:
点击 paypal 按钮后,它打开模式弹出窗口,成功登录尝试后我可以订阅计划。
我还使用我的帐户设置了 webhook 方法,在成功订阅后它调用 webhook 方法并且在调用 webhook 方法时响应 return 具有登录用户详细信息(EMAIL,first/last 名称) 而不是上面的电子邮件和用户 first/last 名称。
上面的 createSubscription 方法 有时按预期工作,但有时却不是。
上面的代码参考了paypal的官方文档
2) Paypal 升级计划 REST API returns 一个错误:
我有订阅 ID 并从这里参考:
https://developer.paypal.com/docs/business/subscriptions/add-capabilities/revise-subscriptions/
但是 return 出现以下错误:
修改操作的订阅状态无效;订阅状态应该是活跃的。
我怎么知道活动状态,我正在使用 沙盒帐户
在这里我对这个问题做了一些研究,发现了以下 paypal 错误:
1) https://github.com/paypal/paypal-checkout-components/issues/1336
2) https://github.com/paypal/paypal-checkout-components/issues/1247#issuecomment-551066663
我仍在寻找相同的答案。