【问题标题】:Paypal IPN protocol: Why is the empty HTTP 200 response not send in the examples?Paypal IPN 协议:为什么示例中没有发送空的 HTTP 200 响应?
【发布时间】:2013-10-01 02:29:55
【问题描述】:

我看到了几个用 PHP 实现 Paypal IPN 协议的例子,比如https://github.com/paypal/ipn-code-samples/blob/master/IPN_PHP.txt。它工作正常。 然而,我有一个困扰我的疑问。

https://developer.paypal.com/webapps/developer/docs/classic/ipn/integration-guide/IPNIntro/ 上的文档说:

...
2. PayPal HTTP 向您的听众发送一条 IPN 消息,通知您此事件。
3. 您的侦听器返回一个空的 HTTP 200 响应。
4. 您的侦听器 HTTP 将完整的、未更改的消息发送回 PayPal。
...

在我看到的示例中,第 3 步被跳过,第 4 步在第 2 步之后完成。 这是为什么呢?

【问题讨论】:

  • 您可能想要检查标准示例,这些示例完全按照 paypal 开发人员文档的方式实现了 Paypal IPN 协议。你确定你指的是网上推荐的例子吗?
  • 以下网址是Paypal推荐的github.com/paypal/ipn-code-samples/blob/master/IPN_PHP.txt,确实在paypal官方github项目中,所以我想这是推荐的例子。我看不到他们在那里执行第 2 步。此外,如果我尝试使用 IPN simulator 执行示例代码并执行 ngrep,我看不到正在发送的空 200 响应。另一方面,一切似乎都很好,因为我成功完成了所有其他步骤。

标签: paypal paypal-ipn


【解决方案1】:

但我在这里看到了: https://developer.paypal.com/webapps/developer/docs/classic/ipn/gs_IPN/

<?php

   // Send an empty HTTP 200 OK response to acknowledge receipt of the notification 
   header('HTTP/1.1 200 OK'); 
   ...

【讨论】:

    【解决方案2】:

    200 是 PHP 脚本的默认响应。你不必发送它,你只需要确保你没有发送任何其他东西!

    空的也一样:如果你不做echo,那么你的回复就是空的。

    【讨论】:

    • 达人,我也在找这个问题。我对侦听器功能感到困惑,如果我将 emtpy HTTP 200 发送到贝宝。那么我将如何处理其余的事情,即将发布数据发送回贝宝以进行验证。
    猜你喜欢
    • 2014-01-28
    • 2017-02-14
    • 1970-01-01
    • 2021-03-15
    • 2012-04-09
    • 2014-11-08
    • 2012-05-06
    • 2016-04-04
    • 2014-07-31
    相关资源
    最近更新 更多