本文是【淺析微信支付】系列文章的第二篇,主要講解一下普通商戶接入的支付方式以及其中的不同之處。
上篇文章講了本系列的大綱,沒有看過的朋友們可以看一下。
微信支付是集成在微信客戶端的支付功能,用戶可以通過手機完成快速的支付流程。微信支付以余額、綁定銀行卡的快捷支付為基礎,向用戶提供安全、快捷、高效的支付服務。
微信支付開通需要申請商戶平台功能,所以,個人的訂閱號是不能開通微信支付的,只有服務號可以開通,申請成為公眾賬號支付商戶必須滿足以下條件:
1)擁有公眾帳號,且為服務號;
2)公眾帳號須通過微信認證;
微信認證資質審核通過后,即可申請微信支付功能。
這里就不演示如何開通微信支付了,百度有現成的例子。
下面講開通微信支付后的開發選擇。
1、支付方式
從微信支付商戶平台的首頁 https://pay.weixin.qq.com/wiki/doc/api/index.html
進入,選擇 普通商戶
版本的支付方式,主要分為以下六種:
1.刷卡支付:用戶打開微信錢包的刷卡的界面,商戶掃碼后提交完成支付
2.公眾號支付:用戶在微信內進入商家H5頁面,頁面內調用JSSDK完成支付
3.掃碼支付:用戶打開"微信掃一掃“,掃描商戶的二維碼后完成支付
4.APP支付:商戶APP中集成微信SDK,用戶點擊后跳轉到微信內完成支付
5.H5支付:用戶在微信以外的手機瀏覽器請求微信支付的場景喚起微信支付
6.小程序支付:用戶在微信小程序中使用微信支付的場景
以上六種支付方式,比較常用的是 2、4、6 這三種,刷卡、掃碼、H5現在相對來說用的比較少,本文就主要講 2、4、6 這三種支付方式了。
1.1.公眾號支付
公眾號支付用途非常廣泛,主要用於商家在微信服務號中自建網頁商城網站,用戶通過鏈接或者二維碼進入微信內部網頁瀏覽器時,進行購買下單等支付操作時調用的流程。
開發前准備:
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_3
一、設置支付目錄
請確保實際支付時的請求目錄與后台配置的目錄一致(現在已經支持配置根目錄,配置后有一定的生效時間,一般5分鍾內生效),否則將無法成功喚起微信支付。
在微信商戶平台(pay.weixin.qq.com)設置您的公眾號支付支付目錄,設置路徑:商戶平台-->產品中心-->開發配置。公眾號支付在請求支付的時候會校驗請求來源是否有在商戶平台做了配置,所以必須確保支付目錄已經正確的被配置,否則將驗證失敗,請求支付不成功。
二、設置授權域名
開發公眾號支付時,在統一下單接口中要求必傳用戶openid,而獲取openid則需要您在公眾平台設置獲取openid的域名,只有被設置過的域名才是一個有效的獲取openid的域名,否則將獲取失敗。
PS:簡單講就是需要填寫一個微信認證通過的域名,這個域名就是咋們訪問的頁面鏈接,需要注意的一點是,請盡量認證絕對域名,比如使用 www.yclimb.com
,不使用 www.yclimb.com/blog
這樣,認證成功后就可以使用微信的網頁授權接口來獲取用戶信息了。
如果需要本地測試,則需要去申請一下測試號來測試本地的用戶信息,詳情見如下鏈接:
https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
注意:測試號不支持微信支付!!!
官方場景介紹如下:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1
開發流程:
1.用戶通過鏈接或二維碼進入網頁 ->
2.調用微信網頁授權接口[官方接口] ->
3.用戶授權后獲取用戶信息[官方接口] ->
4.封裝商品信息並下單 ->
5.調用微信統一下單接口[官方接口] ->
6.根據統一下單接口返回信息組裝前端需要的支付參數[官方驗證] ->
7.前端使用支付參數喚起微信支付界面[官方接口] ->
8.支付成功后微信異步調用統一下單時傳入的回調接口[官方接口] ->
9.更新商戶訂單信息
基本流程就如上所述,詳細介紹見下一章。
1.2.APP支付
APP支付適用於商戶在移動端APP中集成微信支付功能。
商戶APP調用微信提供的SDK調用微信支付模塊,商戶APP會跳轉到微信中完成支付,支付完后跳回到商戶APP內,最后展示支付結果。
目前微信支付支持手機系統有:IOS(蘋果)、Android(安卓)和WP(Windows Phone)。
官方場景介紹如下:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_1
開發流程:
1.用戶進入商戶APP,選擇商品下單、確認購買,進入支付環節。商戶服務后台生成支付訂單,簽名后將數據傳輸到APP端。
2.用戶點擊后發起支付操作,進入到微信界面,調起微信支付,出現確認支付界面。
3.用戶確認收款方和金額,點擊立即支付后出現輸入密碼界面,可選擇零錢或銀行卡支付。
4.輸入正確密碼后,支付完成,用戶端微信出現支付詳情頁面。
5.回跳到商戶APP中,商戶APP根據支付結果個性化展示訂單處理結果。
PS:APP支付和公眾號支付有幾個不同的點:
1.公眾號支付需要進行用戶授權獲取用戶信息,統一下單接口需要用戶的openid
2.APP支付不需要用戶授權,也不需要用戶的openid
3.APP支付依賴於平台,如iOS、Android,需要前端小伙伴配合SDK開發,公眾號直接調取http/https接口即可
4.統一下單時類型不同,開發時注意個別字段的值變化
1.3.小程序支付
小程序支付開發步驟:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_3&index=1
如果開發者已做過JSAPI(公眾號支付)或JSSDK(H5)調起微信支付,接入小程序支付非常相似,以下是三種接入方式的對比:
對比欄目 | JSAPI | JSSDK | 小程序 |
---|---|---|---|
統一下單 | 都需要先獲取到Openid,調用相同的API | ||
調起數據簽名 | 五個字段參與簽名(區分大小寫):appId,nonceStr,package,signType,timeStamp | ||
調起支付頁面協議 | HTTP或HTTPS | HTTP或HTTPS | HTTPS |
支付目錄 | 有 | 有 | 無 |
授權域名 | 有 | 有 | 無 |
回調函數 | 有 | success回調 | complete、fail、success回調函數 |
PS:小程序訪問商戶服務都是通過HTTPS,開發部署的時候需要安裝HTTPS服務器
商戶系統和微信支付系統主要交互:
1、小程序內調用登錄接口,獲取到用戶的openid,api參見公共api【小程序登錄API】
2、商戶server調用支付統一下單,api參見公共api【統一下單API】
3、商戶server調用再次簽名,api參見公共api【再次簽名】
4、商戶server接收支付通知,api參見公共api【支付結果通知API】
5、商戶server查詢支付結果,api參見公共api【查詢訂單API】
2、支付工具
普通商戶
版本的支付工具,主要分為以下三種:
1.代金券或立減優惠:商戶營銷和運營的能力,給用戶發放代金券或立減優惠的相關說明
2.現金紅包:提供給商戶營銷的能力,商戶給用戶派發現金紅包相關說明
3.企業付款:企業付款至用戶微信支付零錢或銀行卡
支付工具待將支付接口講完之后,會單獨拿幾章來講一下,這里就不細講了!
3、注意事項
上面主要講了小程序、公眾號、APP這三種支付方式,我們需要注意的是,無論哪種支付方式,最終都會去調取 統一下單接口
,這個接口主要是將咋們商戶中的訂單信息拼接為支付信息傳入到微信平台,微信平台會返回一個 預支付單
信息,我們對這個信息進行再次加密后拼接為實際支付所需的參數(五個字段參與簽名(區分大小寫):appId,nonceStr,package,signType,timeStamp
),給到微信提供的官方接口中即可調起支付頁面了;
關於上面的步驟這里不細講,后面幾章會着重說明調取微信支付的前期准備,以公眾號支付為例子,講一下如何獲取授權、拉取用戶信息,生產支付信息、調起微信支付等...
結語
前面幾章都是一些比較瑣碎的概念型文章,從下一章開始進入實操代碼環節,下一章會講 進入微信支付的前期准備
盡情期待!
如果想要提前一覽源碼的小伙伴,可以先看看我的 github,地址如下: https://github.com/YClimb/wxpay-sdk/blob/master/README.md
加作者私人微信,作者微信號如下 yclimb
,標明 微信支付
可拉入微信支付討論群與小伙伴一起探討哦,一定要標明 微信支付
哦~
到此本文就結束了,關注公眾號查看更多推送!!!