Paypal:订单 API 与付款 API,以及寻找更好的文档

ceb*_*ebo 12 paypal paypal-rest-sdk

我完全迷失在 PayPal 的 API 文档中。我一直在使用订单 API 和 PayPal Checkout SDK 尝试为项目设置付款。在尝试破译 Orders v2 API 参考时,为了使用对订单先前授权的总数进行多次捕获,我发现了一堆似乎更有用的文档来讨论 Payments API。我无法理解两者之间的区别或者我应该使用哪一个或用于什么目的。

Orders API 参考说明如下:

订单代表两方或多方之间的付款。使用订单 API 来创建、更新、检索、授权和捕获订单。

虽然Payments API Reference是这样说的:

调用支付接口进行支付授权、抓取授权支付、退还已抓取支付、展示支付信息等。将 Payments API 与 Orders API 结合使用。有关更多信息,请参阅 PayPal 结帐概述。

它们都描述了几乎完全相同的事情,并且 Payments API 表示它应该与 Orders API 结合使用,但实际上没有提供任何关于如何一起使用它们的指导。给出的“结帐概述”链接转到带有 Orders API 的智能按钮指南,实际上从未提及 Payments API。

所以我的主要问题如下:

  • 这两个 API 有什么区别?
  • 我需要使用哪个 API 来支持多次捕获?似乎 Payments 是唯一支持多次捕获的,但我已经拥有了基础设施,仅使用 Orders API 来创建交易intent=AUTHORIZE,将交易发送order_id到客户端,以便可以弹出 PayPal 并授权订单,以及一个 webhook接收该授权的通知。我现在可以使用 Payments API 来捕获吗?我还需要这样做吗?我在订单文档中找不到与多次捕获相关的任何内容。
  • 是否有其他好的文献描述了 Checkout SDK 和订单/付款 API 的所有移动部分如何组合在一起以适应较小规模的项目?PayPal 自己的指南到处都是,但很少描述不同部分如何交互或何时需要一个 API 与另一个 API。

Pre*_*der 4

v2/checkout/orders 用于付款人审批流程。如果"intent":"authorize"在创建时指定,则一旦授权(这是付款人批准后的第二次 API 调用),将返回一个授权对象以供以后使用(最多 29 天)。在捕获之前不会转移任何资金。-- [如果您不想要稍后使用的授权对象(大多数集成不需要一个),请在创建时指定意图:捕获,并在批准后为您的第二次调用执行相应的订单捕获而不是授权。]

v2/付款用于管理授权以及通过稍后的第 3 个 API 调用完成的捕获。例如,在 29 天内捕获或作废授权,或在约 180 天内退款。


您提到了网络钩子,这可能使事情变得过于复杂。最好的集成是简单地在您的服务器上创建两条路由,一条用于“创建订单”,一条用于“授权订单”,标准集成指南在此处有一个后端示例(在 Node.js 中,但它可以当然可以在任何语言/环境中实现)。这两个路由在获取时应仅返回 JSON 数据(无 HTML 或文本)。订单授权应(成功后)在退货之前将付款详细信息存储在您的数据库中(特别是purchase_units[0].payments.authorizations[0].id)

将这两条路由与前端审批流程配对(请参阅上面的链接获取示例,或此演示: https: //developer.paypal.com/demo/checkout/#/pattern/server)