gpt4 book ai didi

asp.net-mvc-3 - PDT 能否在 IPN 之前触发或如何同步 IPN 和 PDT?

转载 作者:太空宇宙 更新时间:2023-11-03 15:57:05 25 4
gpt4 key购买 nike

我正在实现 IPN + PDT 的情况是:

来自 paypal 的 IPN,之后我正在验证 IPN 并将其发送回 paypal(验证需要一些时间),如果一切正常,我会在数据库中设置 IPN 正常的标志(交易仍未支付)。当用户从 paypal 登录到我的状态时 PDT 被解雇,并且只有在那个时候我在验证交易 ID 并检查该翻译的 IPN 状态是否正常后才将当前交易设置为已付款。

所以,到目前为止,在开发环境(我的开发 PC + paypal 沙箱)中一切看起来都很好,但理论上它可能发生在 IPN 进动/完成之前(IPN 验证延迟,由于某种原因需要更多时间)PDT 可能是被解雇,结果交易无法标记为已付款,这将是一个问题。

我用谷歌搜索并找到了 What is the sequence of Event Firing - IPN & PDT说:

So, appearantly IPN fires before PDT. But sometimes, PayPal dont get http 200 ok from your website (for some reason) and then paypal thinks that IPN was not fired properly, then PayPal send IPN again after a while. In that case, there is the chance to get PDT fired before IPN.

有人可以确认:

  1. 是否有经验丰富的 PDT 在 IPN 完成之前发送?
    如果前面的问题答案是肯定的——在这种情况下我的第二个问题:
  2. 有什么方法可以同步 IPN 和 PDT(延迟 PDT 直到 IPN 完成)?

最佳答案

不要使用 PDT 进行订单管理。 PDT 是一种比较简单的解决方案,可在买家返回您的网站时向他们显示交易详细信息。不应依赖它来处理订单管理任务,因为(正如您也提到的),这取决于买家返回您的网站,这可能并非在所有情况下都会发生。

IPN 是可靠的,因为它总是 POST 到您的 IPN 脚本。

至于 PDT 和 IPN 的顺序:没有,因为 PDT 是拉取请求(从您到 PayPal),而 IPN 是推送(从 PayPal 到您)。

简而言之;删除 PDT,除非你用它来显示一个很好的“欢迎回来 $user”消息,并使用 IPN 来验证付款是否通过并相应地更新你的数据库。

关于asp.net-mvc-3 - PDT 能否在 IPN 之前触发或如何同步 IPN 和 PDT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7833346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com