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

时间:2020-08-01 04:28:50

标签: angular paypal paypal-sandbox paypal-ipn paypal-subscriptions

我正在与angular项目合作,我的要求是使用创建订阅,取消订阅,升级订阅来配置Paypal付款网关。

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

1)我已成功使用以下代码渲染了贝宝按钮:

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);

以上代码已按预期运行,并且可以创建订阅。 现在,我的要求有很大不同,如下所述:

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

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

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

从Paypal的官方文档中获得上述代码的引用。

2)贝宝升级计划 REST API 返回错误:

我有订阅ID,并从这里获取了参考信息:

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

但返回以下错误:

用于修改操作的无效订阅状态;订阅状态应为活动状态。

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

1 个答案:

答案 0 :(得分:0)

在这里我对此问题进行了一些研究,并发现以下Paypal错误:

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

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

还是我在寻找答案。