关于微信支付通知的回复

微信支付v3版本使用扫码支付的时候,微信默认使用的   $GLOBALS['HTTP_RAW_POST_DATA'];

来接收微信支付的通知,并对回复处理也使用这种方式来接收返回的xml数据  

在PHP7中  $GLOBALS['HTTP_RAW_POST_DATA']  是接收不到数据的,只能使用 file_get_contents('php://input');来接收返回到xml数据  

通过  $array_data = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);  转换为数组

就可以拿到数据进行下一步的逻辑处理

回复微信已经收到成功通知的时候,只需要引入notify 文件,就可以了,但是demo中WxPay.Api.php 中的notify静态方法采用的还是 $GLOBALS['HTTP_RAW_POST_DATA'] 接收数据,

所以回复的微信值是不成功,微信还会继续通知,需要把这个函数也替换掉

这样微信支付成功的通知就会通知到微信服务器,微信就不会在30分钟内通知八次了。

posted @ 2017-05-25 16:18  枫夜雪  阅读(3678)  评论(0编辑  收藏  举报