天使漫步IT工作室

PHP Notice: Undefined index: HTTP_RAW_POST_DATA - 微信支付


因为换了环境以后,以前好好的微信支付SDK出现了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替换掉即可。

在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")

当前页面是本站的「Baidu MIP」版。查看和发表评论请点击:完整版 »