關鍵字:微信支付 微信支付v3 H5支付 wap支付 prepay_id
作者:方倍工作室
本文介紹微信支付下的H5支付實作流程。
H5支付是基于公衆号基礎開發的一種非微信内浏覽器支付方式(需要單獨申請支付權限),可以滿足在微信外的手機H5頁面進行微信支付的需求。。
測試位址
http://wxpay.weixin.qq.com/pub_v2/pay/wap.v2.php
http://wxpay.weixin.qq.com/mch/pay/h5.v2.php
http://wxpay.wxutil.com/pub_v2/pay/wap.v2.php
http://wxpay.wxutil.com/mch/pay/h5.v2.php
效果圖

流程圖
主要是先定義商品的名稱及價格,以及交易号。代碼如下。
上述參數最終封裝成如下類似XML參數
将上述XML發送給統一支付接口
得到如下XML資料
這樣就得到一個prepayid
商戶server調用統一下單接口請求訂單,api參見公共api【統一下單】(接口中trade_type需定義為WAP),微信會傳回給商戶prepayid,商戶按固定格式生成deeplink,通過使用者點選deeplink來調起微信支付。
deeplink格式:
生成deeplink 的步驟如下:
步驟1:按URL 格式組裝參數, $value 部分進行URL 編碼,生成string1:
string1 : key1=Urlencode($value1)&key2=Urlencode($value2、&...
步驟2:對string1 作整體的Urlencode,生成string2:
String2=Urlencode(string1);
步驟3:拼接字首,生成最終deeplink
舉例如下:
String1:
再對整個string1 做一次URLEncode
string2:
再加上協定頭weixin://wap/pay? 得到最後的deeplink
字段名
變量名
必填
類型
示例值
描述
公衆賬号ID
appid
是
String(32)
wx8888888888888888
微信配置設定的公衆賬号ID
随機字元串
noncestr
5K8264ILTKCH16CQ2502SI8ZNMTM67VS
訂單詳情擴充字元串
package
WAP
擴充字段,固定填寫WAP
預支付交易會話辨別
prepayid
String(64)
wx201410272009395522657a690389285100
微信統一下單接口傳回的預支付回話辨別,用于後續接口調用中使用,該值有效期為2小時
簽名
sign
C380BEC2BFD727A4B6845133519F3AD6
時間戳
timestamp
1414561699
開發文檔:https://pay.weixin.qq.com/wiki/doc/api/wap.php?chapter=15_1
1、使用者在商戶側完成下單,使用微信支付進行支付
3、微信支付校驗商戶權限
4、統一下單接口傳回支付相關參數給商戶背景,如支付跳轉url(參數名“mweb_url”,即流程圖中的微信中轉頁面位址)
5、商戶背景收到統一下單接口傳回參數,将mweb_url傳回給前端
6、商戶通過前端頁面通路微信中轉頁面mweb_url(此步驟微信支付會校驗refer,以判斷請求來源是否合法)
7、由中轉頁面mweb_url主動喚起微信支付收銀台
8、微信支付收銀台被喚起同時關閉mweb_url中轉頁面
9、使用者在微信支付收銀台完成支付
申請條件:微信支付月平均支付筆數超過3W筆,日平台支付筆數超過1K筆