PayPal REST API payment id = IPN txn id
假设 PayPal REST API 用于完成标准的 PayPal 支付流程。执行付款时,它返回为"待处理",因此付款尚未完成。 REST APi 提供了一个支付 ID:
https://developer.paypal.com/docs/api/#execute-an-approved-paypal-payment
付款完成后,我的 IPN 侦听器的 URL 被调用,但正如本网站所述,仅包含一个 txn_id,这似乎与 REST API 的付款 ID 不同:
https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNIntro/#id08CKFJ00JYK
那么如何匹配这两个id呢?
IPN 旨在支持 PayPal 上的经典 API,并且 txn_id 将与使用经典 API 进行的付款的 txn_id 匹配。
对于通过 REST API 进行的付款,您可能仍会通过 IPN 收到通知,但遗憾的是目前无法匹配使用 ID 进行的付款。您现在最好的选择是检查付款的属性(金额、货币等)并检查它是否与您期望的付款属性相匹配。
目前这是基于推送的通知的现有选项。另一种选择可能是定期轮询并检查付款状态。
这两种方法都存在一定的局限性,并且即将推出 webhook 支持,它将为 REST 支付提供基于推送的通知支持以缓解这些问题。
IPN 消息的 txn_id 也包含在 REST API 消息中,但在那里称为"sale id"。