paypal - txn_id 和 payment_status 使 PayPal IPN 独一无二?

标签 paypal paypal-ipn

我正在使用 PayPal IPN,我有以下问题:是否可能有两个具有相同 txn_id 和 payment_status 参数的 IPN 消息?

例如:

  1. IPN:txn_id=4BB79227HY951745W&payment_status=pending
  2. IPN:txn_id=4BB79227HY951745W&payment_status=idontknowwhat
  3. IPN:tnx_id=4BB79227HY951745W&payment_status=pending
  4. IPN:txn_id=4BB79227HY951745W&payment_status=completed

所以我的问题基本上是 txn_id 和 payment_status 一起使消息唯一,或者不是?

另一个例子:

如果我有一个像这样的 SQL 查询:

SELECT * FROM transactions WHERE txn_id=4BB79227HY951745W AND payment_status=something

它可以返回多行吗? (如果由于缺少 200 OK 响应消息或响应时间慢或类似情况,我不存储任何由 PayPal 重新发送的消息。)

我之前读过这个帖子:PayPal IPN unique identifier .这里听起来是这两个参数使消息具有唯一性,但我不确定。

最佳答案

我认为仅凭 txn_idpayment_status 不足以使 IPN 独一无二。由于在您的情况下您想要保存与给定交易相关的每个 IPN,因此您还应该检查 pending_reason 值:

假设您使用Authorization - Capture 模型创建了一笔交易,并且您的交易通过了Instant Payment Review (IPR)。您将拥有类似 IPN 的内容:

IPN 1:TXN 进入 UNDER REVIEW (IPR)

[payment_status] => Pending
[txn_id] => 0CD48848U16230847
[pending_reason] => paymentreview
[txn_type] => express_checkout
[auth_status] => Pending
[ipn_track_id] => 8c7559d39005

IPN 2:TXN已经通过IPR(注意pending原因变了!)

[payment_status] => Pending
[txn_id] => 0CD48848U16230847
[pending_reason] => authorization
[txn_type] => express_checkout
[auth_status] => Pending
[ipn_track_id] => 8c7559d39005

关于paypal - txn_id 和 payment_status 使 PayPal IPN 独一无二?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29448397/

相关文章:

javascript - 使用 js/jQuery 从表单中删除动态创建的子节点?

php - Paypal IPN未调用问题

php - 当我使用 Sandbox 时,PayPal payment_status 总是挂起

php - Paypal IPN 无法将货币类型从美元更改为英镑

ios - Paypal MPL iOS 错误

php - WebHook 在支付系统中是如何工作的?

python - 如何取消 Paypal 中的无效/欺诈订阅注册?

php - Paypal 结帐回调 url 以在 1x1 img 中显示唯一的销售 ID 以进行跟踪

Paypal 集成 - GetExpressCheckoutDetails PaymentActionNotInitiated

ruby-on-rails - 未定义方法 `paypal_url' 为 nil :NilClass