关于微信支付通知的回复
微信支付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分钟内通知八次了。