【发布时间】:2015-06-09 12:00:33
【问题描述】:
我正在使用 PayPal IPN,但我有以下问题:是否有可能有两个具有相同 txn_id 和 payment_status 参数的 IPN 消息?
例如:
- IPN:txn_id=4BB79227HY951745W&payment_status=pending
- IPN:txn_id=4BB79227HY951745W&payment_status=idontknowwhat
- IPN:tnx_id=4BB79227HY951745W&payment_status=pending
- IPN:txn_id=4BB79227HY951745W&payment_status=完成
所以我的问题基本上是 txn_id 和 payment_status 一起使消息唯一吗?
另一个例子:
如果我有这样的 SQL 查询:
SELECT * FROM transactions WHERE txn_id=4BB79227HY951745W AND payment_status=something
它可以返回多行吗? (如果由于缺少 200 OK 响应消息或响应时间慢或类似情况,我没有存储 PayPal 重新发送的任何消息。)
我之前读过这个帖子:PayPal IPN unique identifier。这里听起来这两个参数使消息独一无二,但我不确定。
【问题讨论】:
-
恕我直言,这与“唯一性”本身无关,因为 IPN 是一种消息传递服务(在交易的更改状态上)。它甚至有“重试”,如IPN Protocol 中所述,您引用/链接到的帖子的答案中对此进行了讨论。
-
感谢您的回答。我理解这一点,但我想存储与交易相关的所有内容,但我不想存储任何内容超过一次。因此,在我以某种方式将交易数据保存到我的数据库后,我必须知道是否发送了新的 IPN 消息,因为该交易“改变”了某些东西,或者它只是由于某种原因由 PayPal IPN 服务重新发送。
标签: paypal paypal-ipn