贝宝订阅集成和修改订阅问题

Posted

技术标签:

【中文标题】贝宝订阅集成和修改订阅问题【英文标题】:Paypal subscription integration and revise subscription issues 【发布时间】:2020-11-21 21:17:45 【问题描述】:

我正在使用 Angular 项目,我的要求是通过创建订阅、取消订阅、升级订阅来配置贝宝支付网关。

我在使用 paypal 时遇到了 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 方法时返回的响应是登录的用户详细信息(EMAIL、名字/姓氏)而不是上面的电子邮件和用户优先/姓氏。

上面的createSubscription 方法有时会按预期工作,但有时却不是。

上述代码参考来自paypal官方文档。

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

我有订阅 ID 并从这里获取参考:

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

但正在返回以下错误:

修改操作的订阅状态无效;订阅状态应该是有效的。

我怎么知道活动状态,我正在使用沙盒帐户

【问题讨论】:

订阅在成功到达onApprove代码后应该是活跃的。你想在那之前修改它吗?您可以通过以下方式获取状态:developer.paypal.com/docs/api/subscriptions/v1/…,但您不需要这样做 感谢您的回复!实际上我试图在一小时后修改订阅。但同样的问题,它根本不起作用。 好的,然后等待24小时第一个周期计费 哦……没问题!您对我的第一个问题有解决方案吗? 关于错误的详细信息不足,请使用开发工具“网络”选项卡打开并检查控制台来重现它 【参考方案1】:

在这里我对这个问题做了一些研究,发现了以下贝宝错误:

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

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

我仍在寻找相同的答案。

【讨论】:

以上是关于贝宝订阅集成和修改订阅问题的主要内容,如果未能解决你的问题,请参考以下文章

贝宝订阅 API 集成。我啥时候需要创建产品?

贝宝订阅集成 |与捕获资金混淆

贝宝订阅 API 集成

支付 IPN - 支付集成问题 - 1 个贝宝帐户上的多个订阅

如何使用贝宝 DirectPayment 方法激活订阅流程

贝宝订阅与定期?