微信sdk底層程式碼邏輯分析
阿新 • • 發佈:2018-11-15
1.主掃
呼叫https://api.mch.weixin.qq.com/pay/micropay後
得到的返回碼中關注return_code,trade_state,err_state,當:
return_code=FAIL,支付失敗退出;
return_code=SUCCESS,trade_state=SUCCESS,直接成功支付退出;
return_code=SUCCESS,trade_state=USERPAYING,會最多輪詢三次呼叫查詢介面,返回trade_state=SUCCESS才返回成功,三次都沒有出現trade_state=SUCCESS,支付失敗退出;
若非上面情況,當err_state=AUTHCODEEXPIRE/NOTENOUGH,會呼叫取消交易的介面,當err_state=AUTH_CODE_INVALID,支付失敗退出;
若非上面所有場景,則最多輪詢三次呼叫查詢介面,返回trade_state=SUCCESS才返回成功,否則呼叫取消交易介面並支付失敗退出;
2.被掃
場景一:傳送呼叫NATIVE支付,生成預付訂單,當用戶掃碼支付成功後會有回撥請求到我們後臺,我們後臺再更新單據狀態。
場景二:使用者掃商戶固定碼牌進入我們的支付h5頁面,輸入金額確認後呼叫我們後臺,我們後臺呼叫JSAPI支付,等待回撥請求再更新單據支付狀態;