gpt4 book ai didi

PHP:如何检查响应代码?

转载 作者:太空宇宙 更新时间:2023-11-03 16:20:41 24 4
gpt4 key购买 nike

我是一个实现 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($url),不是 get_headers($fp)。除非我完全看错了(还有其他一些我从未见过的模式),否则您需要将您正在阅读的 URL 传递给它,而不是套接字句柄。实际上,它显然会执行自己的 GET,因此它对您当前的任务毫无用处。

fsockopen(...) 是一个较低级别的 (TCP/IP) 函数。它返回套接字句柄,而不是 CURL 句柄。这就是为什么您不能在其上使用 curl_getinfo(...) 的原因。你想要这样的东西......

$fp = curl_init('https://www.sandbox.paypal.com/cgi-bin/webscr');
curl_setopt($fp, CURLOPT_POST, true);
curl_setopt($fp, CURLOPT_POSTFIELDS, $_POST);
curl_setopt($fp, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($fp);

$response_code = curl_getinfo($fp, CURLINFO_HTTP_CODE);

除了我记得,您需要在帖子字段中添加“cmd=_notify-validate”。

不要使用 fsockopen(...)。是的,我知道,这就是 Paypal 示例代码所做的。但它意味着无处不在,不能依赖于安装的 CURL。可以,所以请使用它。

关于PHP:如何检查响应代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2844007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com