You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行多年的PayPal IPN脚本报header字段换行折叠不支持错误如何解决?

错误原因

报错的直接诱因是你代码中Host请求头行末尾的多余空格:

$header .= "Host: www.paypal.com\r\n ";

上述代码里\r\n换行符后面多了一个半角空格,符合HTTP 1.1协议里的头字段行折叠判定规则:服务器会把换行后开头带空白符的内容,识别为上一个请求头的延续内容,而非独立的请求头。也就是说你的代码会被PayPal服务端判定为Host头和Connection头被合并成了一个非法头字段。
这套脚本之前能正常运行是因为PayPal此前的服务端兼容了这种不规范的头格式,近期服务端校验规则收紧,明确禁止行折叠语法,所以直接返回400错误。

修复方案

直接删除Host行\r\n后面的多余空格即可,修改后的请求头代码参考如下:

$header  = "POST /cgi-bin/webscr HTTP/1.1\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n";
$header .= "Host: www.paypal.com\r\n"; // 已移除换行后多余的空格
$header .= "Connection: close\r\n\r\n";

修改后重新测试即可正常完成IPN校验,拿到PayPal返回的VERIFIED响应。

内容的提问来源于stack exchange,提问作者Lauren

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 01:57:04