商戶APP調(diào)用支付的主要交互說明:
步驟1 用戶在商戶側(cè)完成下單,使用微信支付進(jìn)行支付
步驟2 由商戶后臺(tái)向微信支付發(fā)起下單請求【調(diào)用統(tǒng)一下單接口】注:交易類型trade_type=MWEB
步驟3 統(tǒng)一下單接口返回支付相關(guān)參數(shù)給商戶后臺(tái),如支付跳轉(zhuǎn)url(參數(shù)名“mweb_url”),商戶通過mweb_url調(diào)起微信支付中間頁
步驟4 中間頁進(jìn)行H5權(quán)限的校驗(yàn),安全性檢查(此處常見錯(cuò)誤請見下文)
步驟5 如支付成功,商戶后臺(tái)會(huì)接收到微信側(cè)的異步通知
步驟6 用戶在微信支付收銀臺(tái)完成支付或取消支付,返回商戶頁面(默認(rèn)為返回支付發(fā)起頁面)
步驟7 商戶在展示頁面,引導(dǎo)用戶主動(dòng)發(fā)起支付結(jié)果的查詢
步驟8 商戶后臺(tái)判斷是否接到收微信側(cè)的支付結(jié)果通知,如沒有,后臺(tái)調(diào)用我們的訂單查詢接口確認(rèn)訂單狀態(tài)
步驟9 展示最終的訂單支付結(jié)果給用戶
回調(diào)頁面
正常流程用戶支付完成后會(huì)返回至發(fā)起支付的頁面,如需返回至指定頁面,則可以在MWEB_URL后拼接上redirect_url參數(shù),來指定回調(diào)頁面。
如您希望用戶支付完成后跳轉(zhuǎn)至https://www.wechatpay.com.cn,則可以做如下處理:
假設(shè)您通過統(tǒng)一下單接口獲到的MWEB_URL= https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx20161110163838f231619da20804912345&package=1037687096
則拼接后的地址為MWEB_URL= https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx20161110163838f231619da20804912345&package=1037687096&redirect_url=https%3A%2F%2Fwww.wechatpay.com.cn
1、需對redirect_url進(jìn)行urlencode處理;
2、由于設(shè)置redirect_url后,回跳指定頁面的操作可能發(fā)生在:1,微信支付中間頁調(diào)起微信收銀臺(tái)后超過5秒 2,用戶點(diǎn)擊“取消支付“或支付完成后點(diǎn)“完成”按鈕。因此無法保證頁面回跳時(shí),支付流程已結(jié)束,所以商戶設(shè)置的redirect_url地址不能自動(dòng)執(zhí)行查單操作,應(yīng)讓用戶去點(diǎn)擊按鈕觸發(fā)查單操作。回跳頁面展示效果可參考下圖。