微信支付开发中的坑---- php废弃$GLOBALS['HTTP_RAW_POST_DATA']
微信的坑真深~~唉唉唉
微信支付回调中,我感觉每处的回调地址都没写错啊,也是公网可访问的,但就是接受不到微信发来的数据,于是我就去查Log日志,
不看不知道,一看吓一跳,原来我的回调地址是没问题的,只不过貌似我反馈给微信的return_code
的值一直是FAIL
,于是我就去代码中寻根溯源,看看到底是在哪一步给微信返回了FAIL
,
找到这里的时候,我就知道一定是我的 WxpayApi::notify($config, array($this, 'NotifyCallBack'), $msg)
中出了问题,于是我又去这个代码中找结果。
我没搞懂这个$GLOBALS['HTTP_RAW_POST_DATA']
是干什么的,应该是拿取微信传来的数据的,但我的直觉告诉我,就是它出了问题,于是我在下面加了一条打印语句,将这个值打印到Log日志中。
$GLOBALS['HTTP_RAW_POST_DATA']
根本就是空的!真是让人头皮发凉~~~
于是乎去查了一下资料,发现在php7使用$GLOBALS[‘HTTP_RAW_POST_DATA’]
获取不到数据,改为用file_get_contents(“php://input”)
代替就正常了。
这里改过来就好啦~~