贝宝付款(授权和捕获)不返回授权 ID

Paypal Payments (Authorization & Capture) not returning Authorization ID

根据 the documentationpaypal 付款方式应该能够很好地进行授权和捕获。 PayPal 授权 摘录下的以下摘录具体说明了如何去做:

First get payment approval and execute the payment as you normally would do for a PayPal payment. Once you successfully execute on the payment authorization, PayPal responds with a new set of HATEOAS links, including a capture link that you use to capture the payment.

因此,如果我正确遵循授权和捕获的流程如下:

  1. 创建付款
  2. 将用户重定向到 HATEOAS link approval_url 让他们登录 paypal。
  3. 返回成功(或取消,但在本例中不是)link.
  4. 获取付款以查看更改内容、获取送货地址等....
  5. 让客户查看详情
  6. Execute 承诺冻结资金的付款。
    • 此时 AuthorizationID / HATEOAS Link 应该保存有关授权的信息。
  7. 稍后使用授权 ID 进行捕获,,我们完成了。

现在这一切都很好,但在我对沙盒环境的测试中,我无法检索授权 ID 任何地方

这是我从 Execute 步骤收到的 HATEOAS Links:

如您所见,仅返回 self 引用,根据文档,至少应该有一个 capture link 应该包含 authorizationID。

此外,响应正文中没有任何授权 ID。但是,如果我在我的沙盒贝宝仪表板中查看付款:

一旦我深入研究它:

果然,如果我对 8B633793L37511009 调用 Authorization.Capture API 调用,它会按照您的预期进行捕获。但是我找不到确定这个数字的编程方法。


我应该如何存储授权号,以便我的工具可以在以后满足我们的业务条件时进行捕获?

一开始,当您使用意图 authorize 创建付款时,您应该在响应中获得授权对象。该对象具有您稍后捕获所需的 ID。

检查 this blog post 看看您是否遗漏了图片中的一些基本内容。

我按照教程并通过 curl 执行了示例请求。如您所见,我在transactions->related resources->authorization->id

下获得了授权id

然后我用了URL里面的id,成功抓到了付款。

希望这对您有所帮助,如果没有,请详细说明,也许我可以进一步帮助您。祝你好运!