【问题标题】:Which is correct - PayPal documentation or their PHP IPN code samples?哪个是正确的 - PayPal 文档或他们的 PHP IPN 代码示例?
【发布时间】:2017-12-17 18:42:32
【问题描述】:

根据 PayPal 的 Implementing an IPN Listener 文档,IPN 侦听器的正确事件顺序是:

  • 监听器收到通知
  • 监听器发送一个空的 HTTP 200 响应
  • 侦听器将cmd=_notify-validate 预先添加到它收到的通知中,并通过 POST 将其发送回 PayPal
  • PayPal 回复 VERIFIEDINVALID
  • 监听器适当地处理通知

但是,GitHub 上的示例代码(显然由 PayPal 提供)以不同的顺序执行操作:

  • 监听器收到通知
  • 侦听器将cmd=_notify-validate 附加到它收到的通知中,并通过 POST 将其发送回 PayPal
  • PayPal 回复 VERIFIEDINVALID
  • 监听器适当地处理通知
  • 监听器发送一个空的 HTTP 200 响应

示例代码是否正常工作?如果不是,为什么 PayPal 引用此代码作为示例?如果是这样,为什么 PayPal 的文档没有反映了正确的编码顺序? ...或者顺序无关紧要?

【问题讨论】:

  • 您是直接向 paypal 提出这个问题的吗?
  • 美国东部标准时间凌晨 2:30 PayPal 不营业,试图在 PayPal 网站上的某个地方提出这样的技术问题“几乎”不可能 - 我可能十年前偶然发现了这样做的链接,但他们的网站从那时起彻底发生了变化,他们的文档未能跟上 - 这就是为什么我要问 community 如果他们有任何经验或建议。

标签: php paypal paypal-ipn


【解决方案1】:

显然,答案是“按什么顺序完成并不重要”——只要在超时窗口内收到响应即可。

当我在https://www.paypal-techsupport.com/ 搜索“不发送 IPN 的沙盒交易”时,我发现此信息隐藏在 PayPal 网站上作为可能的答案之一:

IPN 超时时间有多长?

PayPal 的即时付款通知 (IPN) 系统需要您的网络 服务器在 IPN 发送到您的 IPN 时发送 HTTP 200 响应 脚本。

如果您的服务器在一定时间后没有响应,IPN 系统然后将 IPN 重新发布到您的脚本。

每次重新发布之间的时间量每次翻倍:10秒, 20 秒、40 秒、80 秒等,最多 24 秒 小时。 IPN 系统在以下情况下停止转发:

  • PayPal 从您的网络服务器收到基本的 HTTP“200 OK”响应,或者
  • 自首次发布以来已过去大约四天。

请注意,如果您的 IPN 侦听器花费了超过 10 秒的时间来响应 HTTP 200 结果(如示例代码所示),那么您做的事情非常错误: IPN 处理程序应该是一个非常快进程,尽可能快地执行,尤其是如果您想处理大量流量。 p>

【讨论】:

    猜你喜欢
    • 2012-12-10
    • 2012-12-28
    • 2012-12-10
    • 2017-03-19
    • 2023-03-11
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    相关资源
    最近更新 更多