PayPal REST API中的Braintree BillingAgreement ID查找

问题描述 投票:0回答:1

我创建了一个Java应用,该应用使用Braintree SDK进行PayPal的结帐流程。

我已经在贝宝(PayPal)和一个商人沙箱帐户中创建了一个沙箱帐户。接下来,我使用刚刚创建的商人创建了Braintree AccessToken。在PayPal中创建Braintree Access令牌后,我注意到为商家帐户自动创建了REST APP。在自动创建的REST APP中,我激活了所有可能的选项。此外,我已经存储了ClientID和ClientSecret,以使用PayPal REST API生成AccessToken。

[第一次付款期间,将为该用户创建一个Braintree客户,为用户创建了一个计费协议。现在,无需支付用户的PayPal凭证就可以对所有其他付款进行收费。到目前为止,该结帐流程没有任何问题。

现在,我想实现一个功能来检查计费协议是否仍然有效,因为用户可能已同时撤消了该协议。检查相应PaymentMethod实例的PayPalAccount类型的Customer实例,我看到一个名为billingAgreementId的属性,该属性与用户的PayPal交易的计费协议ID st相匹配,并且进一步与在PayPal中存储的计费协议相匹配用户的帐户。 ID以“ B-”开头,而不是一些数字。

问题是我无法在PayPal中找到REST API方法,该方法使我可以使用billingAgreementId实例的PaymentMethod来检查计费协议是否仍然有效。

我已经尝试过这里列出的REST API方法:https://developer.paypal.com/docs/api/payments.billing-agreements/v1/已弃用的版本和新版本中的一个都不返回有关计费协议的信息。相反,我收到错误消息“个人资料ID无效”或类似的信息。

此外,B-的“ billingAgreementId”模式似乎与PayPal API示例中使用的ID的模式不匹配。

[我还注意到:我无法使用PayPal REST API获得有关Braintree生成的PayPal交易/付款/订单的任何信息。 Braintree是否在这里做一些不同的事情,以便使用PayPal REST API无法看到这些交易/付款/订单?似乎无法从PayPal REST API中获取有关使用Braintree创建的交易/付款/订单的任何信息。

是否有办法检查BraintreebillingAgreementIdCustomer中的PaymentMethod是否仍然有效?还是我必须检查失败的CheckOut的ResponseCode并删除已存储的PaymentMethodCustomer我已将响应代码映射到已撤销的计费协议状态?

我已经阅读过有关通过使用Webhooks实现此目标的信息,但另一方面,我也阅读到PayPal Webhooks并不十分可靠。

java rest paypal paypal-sandbox braintree
1个回答
0
投票

[很多地方都没有记录,我认为https://developer.paypal.com/docs/checkout/reference/upgrade-integration/是目前引用它的少数几页之一

但是,如果将它们组合在一起,则可以使用此URL,您可以使用标准REST HTTP标头尝试GET请求:“授权:承载{token}”

https://api.sandbox.paypal.com/v1/billing-agreements/agreements/B-XXXXXXXXXXXXX

YMMV


另一个解决方案是尝试使用旧的BAUpdate API:How to check Billing Agreement is active or cancel?

(我没有认真建议这个,但是这是一个古老的经典NVP / SOAP PayPal API,如果出于某些奇怪的原因您想尝试它,那么从技术上讲它仍然存在)

© www.soinside.com 2019 - 2024. All rights reserved.