1. 程式人生 > 實用技巧 >Android串列埠開發,資料分包處理(用Java 的bytebuffer 處理)

Android串列埠開發,資料分包處理(用Java 的bytebuffer 處理)

小程式支付時序圖

基本流程分為以下幾步:

  1. 商戶接入文件資料
  2. 商家註冊商戶號,得到商戶金鑰之類的東西
  3. 後臺處理
  4. 前端呼叫
邏輯層面

後臺處理:

  • 呼叫統一下單介面(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

  1. 返回支付引數(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)]

這五個引數是必須要記住的。