天天看點

微信支付開發(7) H5支付

關鍵字:微信支付 微信支付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

效果圖

微信支付開發(7) H5支付
微信支付開發(7) H5支付

流程圖

微信支付開發(7) H5支付

主要是先定義商品的名稱及價格,以及交易号。代碼如下。

上述參數最終封裝成如下類似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

微信支付開發(7) H5支付

1、使用者在商戶側完成下單,使用微信支付進行支付

3、微信支付校驗商戶權限

4、統一下單接口傳回支付相關參數給商戶背景,如支付跳轉url(參數名“mweb_url”,即流程圖中的微信中轉頁面位址)

5、商戶背景收到統一下單接口傳回參數,将mweb_url傳回給前端

6、商戶通過前端頁面通路微信中轉頁面mweb_url(此步驟微信支付會校驗refer,以判斷請求來源是否合法)

7、由中轉頁面mweb_url主動喚起微信支付收銀台

8、微信支付收銀台被喚起同時關閉mweb_url中轉頁面

9、使用者在微信支付收銀台完成支付

申請條件:微信支付月平均支付筆數超過3W筆,日平台支付筆數超過1K筆