paypal - Paypal:Orders API 与 Payments API,并找到更好的文档
问题描述
我完全迷失在 PayPal 的 API 文档中。我一直在使用订单 API 和 PayPal Checkout SDK 尝试为项目设置付款。在尝试破译 Orders v2 API 参考时,为了使用对先前授权的订单总数进行多次捕获,我发现了一堆似乎更有用的文档来讨论 Payments API。我无法理解两者之间的区别是什么,或者我应该使用哪个或用于什么。
订单 API 参考说明如下:
订单代表两方或多方之间的付款。使用 Orders API 创建、更新、检索、授权和捕获订单。
虽然支付 API 参考是这样说的:
调用 Payments API 以授权付款、获取授权付款、退还已获取的付款并显示付款信息。将 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 和 Orders/Payments API 的所有移动部分如何适合较小规模的项目?PayPal 自己的指南到处都是,并且几乎没有描述不同部分如何交互或何时需要一个 API 与另一个 API。
解决方案
v2/orders 用于付款人审批流程。使用"intent":"authorize"
,成功的订单将产生一个 Authorization 对象供以后使用。
v2/payments 用于管理授权以及完成的捕获。例如,捕获或取消授权,或退还捕获。
您提到了 webhook,这可能使事情变得过于复杂。最好的集成是在您的服务器上简单地创建两条路由,一条用于“创建订单”,一条用于“授权订单”,记录在此处。这些路由应该只返回 JSON 数据(没有 HTML 或文本)。后者应该(成功时)在返回之前将付款详细信息存储在您的数据库中(尤其是purchase_units[0].payments.authorizations[0].id
)
将这两条路线与以下批准流程配对:https ://developer.paypal.com/demo/checkout/#/pattern/server
推荐阅读
- azure-aks - 错误:为处于 CREATED 状态的 pod 分配身份失败 - AKS AAD-Pod 身份
- javascript - 获取固定 div 容器内元素的绝对位置
- javascript - Django admin - 使图像出现在 django 管理列表视图上
- r - R - 从单词列创建句子 ID
- javascript - 如何使用此 JSON 对象在 javascript 中构建此 JSON
- python - 对单个函数的重叠调用,希望每个函数在执行函数之前等待一秒钟,但不要强制所有人等待
- python - 以烧瓶形式(WTForm)在嵌套的 FieldList/FormField 中加载数据
- audio - 如何在 SwiftUI 中等待音频完成?
- vba - 将数据从 Access 365 导出到 IBM i-Series v7r1
- c++ - 如何将 IPropertyBag 持久化到磁盘