Paypal IPN 协议:为啥示例中没有发送空的 HTTP 200 响应?
Posted
技术标签:
【中文标题】Paypal IPN 协议:为啥示例中没有发送空的 HTTP 200 响应?【英文标题】: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 响应。另一方面,一切似乎都很好,因为我成功完成了所有其他步骤。 【参考方案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 发送到贝宝。那么我将如何处理其余的事情,即将发布数据发送回贝宝以进行验证。以上是关于Paypal IPN 协议:为啥示例中没有发送空的 HTTP 200 响应?的主要内容,如果未能解决你的问题,请参考以下文章
如果没有消息发送回 PayPal,paypal IPN 会发生啥情况