微信支付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分鍾內通知八次了。
