【发布时间】:2010-05-16 13:56:51
【问题描述】:
我是一个实现 PayPal IPN 侦听器的相对 PHP 新手,似乎一切正常,除了我真的不知道如何检查响应代码。
我用 cURL 尝试了一些丑陋的东西,但它根本不起作用(我不理解 cURL)。
我已经尝试过从网上某处抓取的这段代码:
$fp = fsockopen('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
$response_headers = get_headers($fp);
$response_code = (int)substr($response_headers[0], 9, 3);
...但它不起作用(返回 $response_code = 0)。
所以现在,我正在调试我的 IPN 代码,而不检查响应 200。
任何更有经验的人可以告诉我什么是正确/简单的检查方法吗?
谢谢
【问题讨论】:
-
如果不知道你的 get_headers() 函数是做什么的,这是不可能回答的。
-
如果你使用 fsockopen,你必须自己处理整个 http 请求,你上面的代码只是打开一个套接字,那里没有 http.. 因此,对 get_headers 的调用没有任何意义全部。查看 fsockopen 文档中的示例 #1。你在哪里被 cURL 卡住了?
-
@zedoo:我明白了,谢谢...使用 cURL,我知道我可以使用 CURLINFO_HTTP_CODE 获取代码,但我不太明白要初始化什么/从中传递什么贝宝请求。当然,响应代码必须与该特定请求相关,而不是新请求...我已经尝试以各种方式在其中使用该 $fp ,但我只是做得不对。
-
zedoo 的意思是你打开了一个socket,但是你还没有真正发出请求,这当然意味着你不会收到响应头。 =) 你可能会在这里找到一些信息:scriptol.com/how-to/http-status-code-in-php.php
标签: php paypal header response paypal-ipn