當前位置:
首頁 > 最新 > 支付訂單完成過程中需獲取通知完成的應答

支付訂單完成過程中需獲取通知完成的應答

支付完成後,微信會把相關支付結果和用戶信息發送給商戶,商戶需要接收處理,並返回應答。對後台通知交互時,如果微信收到商戶的應答不是成功或超時,微信認為通知失敗,微信會通過一定的策略定期重新發起通知,儘可能提高通知的成功率,但微信不保證通知最終能成功(通知頻率為15/15/30/180/1800/1800/1800/1800/3600,單位為秒)。

注意:同樣的通知可能會多次發送給商戶系統。商戶系統必須能夠正確處理重複的通知。

推薦的做法是,當收到通知進行處理時,首先檢查對應業務數據的狀態,判斷該通知是否已經處理過,如果沒有處理過再進行處理,如果處理過則直接返回結果成功。在對業務數據進行狀態檢查和處理之前,要採用數據鎖進行並發控制,以避免函數重入造成的數據混亂。特別提醒:商戶系統對於支付結果通知的內容一定要做簽名驗證,防止數據泄露導致出現「假通知」,造成資金損失。

用戶在微信客戶端完成支付後(提示已經成功付費),微信會發送給第三方伺服器XML格式的數據通知包,在返回的參數中可以看到,用戶發送的數據會原樣返回,如訂單號(out_rade_no)等,用戶可以根據此參數值定位到自己系統裡面的訂單進行處理。同時,也返回了微信交易訂單號(transaction_id),可以通過它進行數據正確性的核對。

在index()方法的統一下單介面中設置的notify_url為:

在資料庫中新增db_logs表,數據表僅有id(int4)主鍵和content(text)兩個欄位,方便記錄接收到的請求信息。

在方法中,首先,獲取微信下發的數據信息(XML格式,POST類型):

$xml=$GLOBALS["HTTP_RAW_POST_DATA"];

其次,把XML格式的數據轉換為數組類型,並記錄到資料庫logs表中:

接著,對驗證結果進行匹配對比:

最後,構建響應參數並發送給微信通知介面:

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 行家匯 的精彩文章:

微信小程序中wx.navigateTo保留當前頁跳轉
MySQL伺服器鏈接與關閉函數的製作和最佳時機
PHP的快速創建數組的函數
微信小程序公共設置的介紹
用die和exit終止PHP程序運行

TAG:行家匯 |

您可能感興趣

永久的未完成即完成
用戶可通過智能眼鏡完成購物支付
獲批在上財年內完成的任務有4成未按時完成
當兵收到通知就能進入部隊?錯,這四項完成不了依然會被淘汰!
最新通知:從本月開始,沒有完成此項認證的,將無法領取養老金
有一寶借貸免押通通秒完成種軟體比銀行還好用,支付
人生的完成,與未完成
中興回應「被破產」為假消息 完成高層換血並做了恢復經營預案
加拿大無人機在美成功完成交付測試
據說這個成就完成的人很少想要完成需要五年
被冤枉的聯想急需完成自我救贖
嘉聯支付被賣了,已被完成全面收購!
只需一條瑜伽墊即可完成9項家庭鍛煉,簡單易懂
中興回應「被破產」為假消息 完成高層「換血」並做了恢復經營預案
一條狗完成了他的使命
一件未完成的事
新兵受到入伍通知就安全了嗎?不是,這4項完成不了照樣淘汰!
中國飛行員完成了不可能完成的任務,這是一個了不起的成就
桃田成男單最難對付選手 諶龍能否完成自我救贖?
如何完成一次完美的肺功能檢查