国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 熱點 > 微信 > 正文

詳解微信小程序支付流程與梳理

2024-07-22 01:17:59
字體:
來源:轉載
供稿:網友

花了幾天把小程序的支付模塊接口寫了一下,可能有著公眾號開發的一點經驗,沒有入太多的坑,在此我想記錄一下整個流程。

首先先把小程序微信支付的圖搬過來:


相信會來查百度的同學們基本都是對文檔的說明不是很理解。我下面大概總結一下整個業務邏輯的過程。

微信小程序的商戶系統一般是以接口的形式開發的,小程序通過調用與后端約定好的接口進行參數的傳遞以及數據的接收。在小程序支付這塊,還需要跟微信服務器進行交互。過程大致是這樣的:

一.小程序調用登錄接口獲取code,傳遞給商戶服務器用來獲取用戶的openID

我們知道在微信平臺中,同一個公眾號的openID都是不同的,它是用戶身份識別的id,也就是說,我們通過openID來區分不同的用戶,這個有微信開發基礎的應該都很熟悉。為了知道誰在支付,我們需要先獲取當前用戶的openid,那么openID應該怎么獲取呢?看下圖:


    小程序調用wx.login() 獲取 臨時登錄憑證code ,并回傳到開發者服務器。 開發者服務器以code換取 用戶唯一標識openid 和 會話密鑰session_key。

看不懂嗎?不急,聽我慢慢解釋,這個業務流程大致就是首先你得先在小程序的代碼中調用wx.login()來向微信獲取到code,拿到了之后把code通過request傳給商戶服務器,再由商戶服務器通過騷操作來跟微信服務器要session_key和openID。

偽代碼如下(小程序端):

getToken: function () { //調用登錄接口 wx.login({  success: function (res) {  var code = res.code;  wx.request({   url: 商戶服務器接口地址,    data: {   code: code   },   method: 'POST',    success: function (res) {    wx.setStorageSync('token', res.data.token); //存在小程序緩存中   },   fail: function (res) {   console.log(res.data);   }  })  } }) }

調用這幾行代碼就可以向跟微信服務器要code,并且將code傳到商戶服務器中,記住這里最好使用post發送請求,安全性的東西我應該不用講了,因為避免其他人濫用接口,于是我們使用token來進行驗證。并將商戶服務器返回的token存在小程序緩存中。

那么服務器端應該怎么做呢?

我門通過小程序提交的code,和小程序的APPID以及APPSECRET和拼接下列的url,并用curl進行get請求。

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

返回的數據是一個json對象,我門通過使用json_decode(JSON,true)解析為數組,數據包括用戶的openID以及session_key,獲取到了后我們應該將openID存入數據庫中,它代表著用戶的身份,那么令牌應該怎么生成呢。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 庆阳市| 棋牌| 东阿县| 吉林省| 竹北市| 西乌| 温宿县| 云浮市| 夏河县| 乌拉特中旗| 新乐市| 阳山县| 湖口县| 汽车| 尉犁县| 峨眉山市| 西藏| 娱乐| 涟水县| 芷江| 乌拉特前旗| 黄石市| 清河县| 白玉县| 泗阳县| 扶绥县| 汕尾市| 柳林县| 梁平县| 永清县| 文昌市| 前郭尔| 岫岩| 临洮县| 紫金县| 山阴县| 清丰县| 长武县| 昌平区| 昆山市| 建宁县|