1. 程式人生 > >淺析微信支付:微信支付簡單介紹(小程式、公眾號、App、H5)

淺析微信支付:微信支付簡單介紹(小程式、公眾號、App、H5)

本文是【淺析微信支付】系列文章的第二篇,主要講解一下普通商戶接入的支付方式以及其中的不同之處。

上篇文章講了本系列的大綱,沒有看過的朋友們可以看一下。

微信支付是整合在微信客戶端的支付功能,使用者可以通過手機完成快速的支付流程。微信支付以餘額、繫結銀行卡的快捷支付為基礎,向用戶提供安全、快捷、高效的支付服務。

微信支付開通需要申請商戶平臺功能,所以,個人的訂閱號是不能開通微信支付的,只有服務號可以開通,申請成為公眾賬號支付商戶必須滿足以下條件:

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,標明 微信支付 可拉入微信支付討論群與小夥伴一起探討哦,一定要標明 微信支付 哦~

到此本文就結束了,關注公眾號檢視更多推送!!!

關注我的公眾號