我們已經知道,微信無論是微信內置JSAPI支付、H5外部瀏覽器支付、掃碼支付,都需要通過異步回調接收支付結果。
本文簡介如何獲取微信支付通知。
僅需要一個在之前設置好的回調地址的方法里寫上如下:
//處理微信支付回調 public function notify(){ $testxml = file_get_contents("php://input"); $jsonxml = json_encode(simplexml_load_string($testxml, 'SimpleXMLElement', LIBXML_NOCDATA)); $result = json_decode($jsonxml, true);//轉成數組, if($result){ //如果成功返回了 $out_trade_no = $result['out_trade_no']; if($result['return_code'] == 'SUCCESS' && $result['result_code'] == 'SUCCESS'){ //執行業務邏輯 } } }
需要特別注意的地方:微信支付結果通知,會按一定規則重復發送通知,因此執行業務邏輯之前,需要判斷是否是重復通知。
如果自己的業務邏輯執行成功后,可以return一個規定格式的XML,來告訴微信你已成功收到通知,並做好了相應處理。(當然不return也行。。。做好重復驗證機制就好)