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