微信支付提示 PHP Notice: Undefined index: HTTP_RAW_POST_DATA 错误,是因为微信支付SDK(PHP版)中使用 $GLOBALS[‘HTTP_RAW_POST_DATA’] 获取 POST 请求的数据,但是在高版本 PHP 中 HTTP_RAW_POST_DATA 已经被废除了。

解决微信支付报错 HTTP_RAW_POST_DATA 的方法就是将 HTTP_RAW_POST_DATA 替换为 file_get_contents 。

在WxPay.Api.php中搜索以下代码:

$xml = $GLOBALS['HTTP_RAW_POST_DATA'];

替换为:

$xml = file_get_contents('php://input');

如果要兼容低版本的话,替换为:

$xml = isset($GLOBALS['HTTP_RAW_POST_DATA']) ? $GLOBALS['HTTP_RAW_POST_DATA'] : file_get_contents("php://input")