PHP发送200状态并关闭连接,而不在Paypal IPN中发送任何内容

时间:2015-07-25 21:32:37

标签: php paypal-ipn

我尝试使用Paypal的IPN,他们说我应该返回一个空的HTTP 200响应'。我需要返回这个,然后让PHP脚本继续处理。

有大量关于堆栈溢出的示例以及其他显示如何使用'连接的地方:close'带有输出缓冲的标头,用于向客户端发送响应并继续处理。但是,当内容长度设置为零时,我找不到任何解决方案。每当我将内容长度标头设置为零时,连接将保持打开状态,直到脚本终止。

如何提前终止连接,不发送内容并继续处理?

更新:

ob_flush()在这里没有帮助。它会刷新缓冲区,但不会关闭连接。如果您设置了headers连接:close和非零内容长度标头,那么当您发送内容长度字节时,将从客户端关闭连接;这是ob_flush()可以提供帮助的地方。但是,如果您将内容长度设置为零并刷新缓冲区中没有任何内容,则不会将任何内容发送到客户端,并且连接仍保持打开状态。

1 个答案:

答案 0 :(得分:0)

您必须使用fork机制:在处理子项中的数据时发送200 il parent。 您还可以使用ReactPHP进行异步处理或使用某些排队系统(如JmsJobQueue):处理在您调用并传递参数的单独脚本中完成。