Android串列埠開發,資料分包處理(用Java 的bytebuffer 處理)
基本流程分為以下幾步:
- 商戶接入文件資料
- 商家註冊商戶號,得到商戶金鑰之類的東西
- 後臺處理
- 前端呼叫
邏輯層面
後臺處理:
- 呼叫統一下單介面(API列表裡的第一個介面),需要先獲取到
Openid
使用者標識,具體可參考該文件(微信小程式登入授權)》》https://blog.csdn.net/dwb123456123456/article/details/84251932 - 五個欄位參與簽名,除了
appid
,其他四個引數是微信小程式前端支付介面wx.requestPayment
需要用的 - 商戶配置頁面和專案中的回撥地址要一樣,是支付完成後微信回撥到自己後臺的地址
前端處理:
程式碼如下
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-9EFGax2h-1602136800294)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201007135312537.png)]
1.點選⽀付的時候,先觸發 wx.login
⽅法,拿到微信返回的code值
2.在wx.login
的success回撥⾥⾯請求(https://api.weixin.qq.com/sns/
jscode2session)這個連結通常後臺進⾏請求,前端需要把wx.login
獲取到的code
值傳給後臺,後臺通過請求這個連結,返回給前端openId, sessionKey, unionId
3.在第2個請求成功的函式⾥⾯,拿到openid
之後,在次請求後臺的⼀個賬單流⽔接
⼝(這個接⼝後臺會寫,後臺會⽤這個openid
請求微信⽣成⼀條⽀付流⽔資訊返回
給前端)
4.在請求賬單流⽔接⼝成功⾥⾯,通過wx.requestPayment
wx.requestPayment
⽅法需要傳的引數在第3步流⽔賬單⾥⾯微信返回的資料⾥
整體流程:
1)使用者進入微信小程式,通過微信小程式傳送下單支付請求,到商戶系統。(下訂單)
過程拆解:商戶系統可以理解為我們自己的商戶伺服器,存放我們伺服器的程式碼,這個過程就是,使用者傳送一個請求到我們自己的伺服器,
引數就是商品的一些資訊。(下面程式碼的order_id就是獲取訂單資訊)
2)伺服器呼叫微信小程式登入API,伺服器後臺返回openid,商戶伺服器生成訂單,呼叫統一下單API,返回預付單資訊(prepay_id),將組合再次簽名。(服務端操作)
過程拆解:伺服器,呼叫微信登入的API,這時候從伺服器拿到使用者的openid,拿到openid之後,我們自己的伺服器要組合生成一條訂單,通過過程1傳送過來的商品資訊,組合生成一條訂單(可以參看統一下單API所需的引數),然後呼叫統一下單API,這時候微信伺服器就返回給了我們prepay_id,我們自己的伺服器通過再次簽名,可以拿到五個引數和sign
- 返回支付引數(5個引數和sign),微信小程式中發起下單請求到我們商戶伺服器,
這時候就可把相應的把小程式支付API需要的資訊都返回給我們的微信小程式了。(這五個引數是必須的引數)
4)呼叫wx.requestPayment
,按照規則傳入我們需要的資訊。
5)後面就是支付成功失敗的回撥和顯示了。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-q2DKRVAO-1602136800296)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201007142330958.png)]
5)後面就是支付成功失敗的回撥和顯示了。
[外鏈圖片轉存中…(img-q2DKRVAO-1602136800296)]
這五個引數是必須要記住的。