我完全迷失在 PayPal 的 API 文档中。我一直在使用订单 API 和 PayPal Checkout SDK 尝试为项目设置付款。在尝试破译 Orders v2 API 参考时,为了使用对订单先前授权的总数进行多次捕获,我发现了一堆似乎更有用的文档来讨论 Payments API。我无法理解两者之间的区别或我应该使用哪一个或用于什么目的。
订单 API 参考的内容如下:
订单代表两方或多方之间的付款。使用订单 API 创建、更新、检索、授权和捕获订单。
虽然支付 API 参考这么说:
调用Payments API进行支付授权,捕获授权 付款、已捕获的退款付款并显示 支付信息。结合使用支付 API 订单API。有关更多信息,请参阅 PayPal Checkout 概述。
它们都描述了做几乎完全相同的事情,并且 Payments API 表示它应该与 Orders API 结合使用,但实际上没有提供任何关于如何一起使用它们的指导。给出的“结账概述”链接转到带有 Orders API 的智能按钮指南,实际上从未提及 Payments API。
所以我的主要问题如下:
intent=AUTHORIZE
交易,将 order_id
发送到客户端,以便可以弹出 PayPal,并且订单已授权,以及用于接收该授权通知的 Webhook。我现在可以使用 Payments API 来捕获吗?我还需要这样做吗?我在订单文档中找不到与多次捕获相关的任何内容。v2/orders 用于付款人审批流程。使用
"intent":"authorize"
,成功的订单将产生一个 Authorization 对象供以后使用。
v2/ payment 用于管理授权以及已完成的捕获。例如,捕获或作废授权,或退还捕获费用。
您提到了网络钩子,这可能使事情变得过于复杂。最好的集成是简单地在服务器上创建两条路由,一条用于“创建订单”,一条用于“授权订单”,标准集成指南具有此处有一个后端示例(在node.js中,但是它当然可以在任何语言/环境中实现)。这两个路由在获取时应仅返回 JSON 数据(无 HTML 或文本)。订单授权您应该(成功后)在退货之前将付款详细信息存储在您的数据库中(特别是
purchase_units[0].payments.authorizations[0].id
)
将这两条路由与前端审批流程配对(请参阅上面的链接获取示例,或此演示:https://developer.paypal.com/demo/checkout/#/pattern/server)