1. 程式人生 > >微信掃碼支付流程

微信掃碼支付流程

(1)商戶後臺系統根據使用者選購的商品生成訂單。

(2)使用者確認支付後呼叫微信支付【統一下單API】生成預支付交易;

(3)微信支付系統收到請求後生成預支付交易單,並返回交易會話的二維碼連結code_url。

(4)商戶後臺系統根據返回的code_url生成二維碼。

(5)使用者開啟微信“掃一掃”掃描二維碼,微信客戶端將掃碼內容傳送到微信支付系統。

(6)微信支付系統收到客戶端請求,驗證連結有效性後發起使用者支付,要求使用者授權。

(7)使用者在微信客戶端輸入密碼,確認支付後,微信客戶端提交授權。

(8)微信支付系統根據使用者授權完成支付交易。

(9)微信支付系統完成支付交易後給微信客戶端返回交易結果,並將交易結果通過簡訊、微信訊息提示使用者。微信客戶端展示支付交易結果頁面。

(10)微信支付系統通過傳送非同步訊息通知商戶後臺系統支付結果。商戶後臺系統需回覆接收情況,通知微信後臺系統不再發送該單的支付通知。

(11)未收到支付通知的情況,商戶後臺系統呼叫【查詢訂單API】。

對統一下單API的分析:

除被掃支付場景以外,商戶系統先呼叫該介面在微信支付服務後臺生成預支付交易單,返回正確的預支付交易回話標識後再按掃碼、JSAPI、APP等不同場景生成交易串調起支付。

關於統一下單相關引數說明:

attach附加資料,在查詢API和支付通知中原樣返回,該欄位主要用於商戶攜帶訂單的自定義資料(可以根據附帶不同的引數,對不同的訂單進行資料庫更新訂單狀態等操作)

out_trade_no:商戶訂單號,商戶支付的訂單號由商戶自定義生成,微信支付要求商戶訂單號保持唯一性(建議根據當前系統時間加隨機序列來生成訂單號)。重新發起一筆支付要使用原訂單號,避免重複支付;已支付過或已呼叫關單、撤銷(請見後文的API列表)的訂單號不能重新發起支付。


notify_url:通知地址,接收微信支付非同步通知回撥地址,通知url必須為直接可訪問的url,不能攜帶引數

關於統一下單後返回結果引數說明:

code_url:二維碼連結,trade_type為NATIVE是有返回,可將該引數值生成二維碼展示出來進行掃碼支付

查詢訂單:該介面提供所有微信支付訂單的查詢,商戶可以通過查詢訂單介面主動查詢訂單狀態,完成下一步的業務邏輯

查詢訂單相關引數:

transaction_id微信訂單號

查詢訂單相關的返回的引數:

attach附加資料,統一下單時所寫的資料,原樣返回

支付結果通知:

該連結是通過【統一下單API】中提交的引數notify_url設定,如果連結無法訪問,商戶將無法接收到微信通知


具體可以檢視:https://pay.weixin.qq.com/(這個是微信官方的文件)