没有交易 ID 的 GetTransactionDetails

GetTransactionDetails without transaction id

我有一个使用 PayPal NVP 沙箱的网站。有时在用户付款成功后,PayPal 返回我的 return URL 非常慢。除非 PayPal return 将详细信息发送到我的网站,否则我无法检查用户是否已完成订单(对于所有尝试网站将订单 ID 添加到数据库),这会破坏网站的工作原理。

我需要的是如果可能的话,我想检索没有交易ID的交易数据。也许使用自定义字段或其他内容。如果我能够在没有交易 id 的情况下检查交易细节,那么我将能够相应地处理用户的请求。或者,如果有一种方法可以借助另一个变量以某种方式获取交易 ID,这也很好,因为我将在找到交易 ID 后进行检查。

当前的 PayPal Checkout 集成提供 success/failure 的即时响应。无需从您的站点进行任何重定向,也无需等待异步 IPN 或 webhook 消息。不要用这样的东西。

遵循 PayPal Checkout integration 指南并在您的服务器上制作 2 条路线,一条用于 'Create Order',一条用于 'Capture Order'(参见 'Add and modify the code' 中的可选步骤 5;您可以使用 Checkout-PHP-SDK)。您服务器上的这两个路由都应该 return/output 只有 JSON 数据(没有 HTML 或文本)。在第二条路线中,当捕获 API 成功时,您应该将其生成的付款详细信息存储在您的数据库中(特别是 purchase_units[0].payments.captures[0].id,这是 PayPal 交易 ID)并执行任何必要的业务逻辑(例如发送确认电子邮件或预订产品)立即 将您的 return JSON 转发给前端呼叫者之前。

将这 2 条路线与前端批准流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server