微信支付开发中的坑---- php废弃$GLOBALS['HTTP_RAW_POST_DATA']

微信的坑真深~~唉唉唉

微信支付回调中,我感觉每处的回调地址都没写错啊,也是公网可访问的,但就是接受不到微信发来的数据,于是我就去查Log日志,
微信支付开发中的坑---- php废弃$GLOBALS['HTTP_RAW_POST_DATA']

不看不知道,一看吓一跳,原来我的回调地址是没问题的,只不过貌似我反馈给微信的return_code的值一直是FAIL,于是我就去代码中寻根溯源,看看到底是在哪一步给微信返回了FAIL微信支付开发中的坑---- php废弃$GLOBALS['HTTP_RAW_POST_DATA']

找到这里的时候,我就知道一定是我的 WxpayApi::notify($config, array($this, 'NotifyCallBack'), $msg)中出了问题,于是我又去这个代码中找结果。微信支付开发中的坑---- php废弃$GLOBALS['HTTP_RAW_POST_DATA']

我没搞懂这个$GLOBALS['HTTP_RAW_POST_DATA']是干什么的,应该是拿取微信传来的数据的,但我的直觉告诉我,就是它出了问题,于是我在下面加了一条打印语句,将这个值打印到Log日志中。
微信支付开发中的坑---- php废弃$GLOBALS['HTTP_RAW_POST_DATA']

$GLOBALS['HTTP_RAW_POST_DATA']根本就是空的!真是让人头皮发凉~~~

于是乎去查了一下资料,发现在php7使用$GLOBALS[‘HTTP_RAW_POST_DATA’]获取不到数据,改为用file_get_contents(“php://input”)代替就正常了。
微信支付开发中的坑---- php废弃$GLOBALS['HTTP_RAW_POST_DATA']

这里改过来就好啦~~