Paypal IPN 交易 ID

Posted

技术标签:

【中文标题】Paypal IPN 交易 ID【英文标题】:Paypal IPN Transaction ID's 【发布时间】:2011-09-12 23:48:00 【问题描述】:

这可能是疲劳状态,但我对在 IPN 交易中使用交易 ID 有点困惑。

我了解 PayPal 会分配一个交易 ID 并将其与所有其他 gumf 一起发回。但是,它还指出,单个交易可能会生成多个 IPN 消息(即,当付款状态从 PENDING 变为 CONFIRMED 时)。在这种情况下,可能会收到多条具有相同事务 ID 的消息。

我对所有提供的样本感到困惑(由 PayPal 自己以及 PayPalTech 提供)。我见过的每个脚本只处理通过 IPN 收到的第一条消息 - 如果事务 ID 已经存在(尤其是在将 IPN 事务写入数据库时​​),那么它实际上会被忽略。

如果是这种情况,他们是否不会错过那些开始 PENDING 然后变成 CONFIRMED 的交易?

我是否遗漏了什么,或者只是让事情变得比需要的更复杂?

【问题讨论】:

【参考方案1】:

例如,当您使用信用卡为购买提供资金时,会生成额外的交易 ID。因此,有一个 TransId 用于向 CC 收费,另一个 TransId 用于将钱发送给接收方。但是接收者只看到“他的”TransId,而不是 CC 相关的。所以总会有一个 TransId 返回。当交易状态发生变化(待定/确认等)时,交易 ID 不会改变。

【讨论】:

这就是我的观点。如果是这种情况,示例脚本是否会忽略任何新消息,因为它们具有相同的事务 ID?这些脚本都会检查数据库中是否已经存在事务 ID。如果是这样,他们什么也不做。检查交易ID和交易状态是否相同会更好吗? 如果 TransId 已经存在,那么再次存储它是没有意义的。但是,如果未确认,重新查询状态可能是有意义的。但是大多数示例不能很好地处理错误情况。 好吧,我就是这么想的。真的只是健全性检查。干杯@Haukman

以上是关于Paypal IPN 交易 ID的主要内容,如果未能解决你的问题,请参考以下文章

Paypal IPN 在沙盒 ipn sinulator 中有效,但在交易中无效

Paypal 持有的交易会产生 IPN 回调吗?

PayPal 网站支付标准的 IPN 模拟器中应测试哪些交易类型?

PayPal IPN 识别已执行交易

PHP Paypal IPN:交易未确认

Paypal 不会将沙盒交易数据发送到 IPN