亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 11:10:50
字體:
來源:轉載
供稿:網友

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

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


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

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

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

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


  1. 小程序調用wx.login() 獲取 臨時登錄憑證code ,并回傳到開發者服務器。
  2. 開發者服務器以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存入數據庫中,它代表著用戶的身份,那么令牌應該怎么生成呢。

二.token的生成以及緩存

我們根據一個用戶表將id和openid聯系起來,對應openID的id則是用戶的uid,我們可以這么封裝

//要緩存的數據數組$cacheValue = $result; //包含openID和session_key$cacheValue['uid'] =$uid; //用戶id $cacheValue['scope'] =ScopeEnum::User; //用戶權限級別

緩存的方式我們可以選擇redis,memcache, 文件緩存等等,采用鍵值對(key-value)的方式進行存儲,記得設置好過期時間。這里的key我們用token來賦值,token可以通過這樣的方式進行生成:

//獲取32位隨機字符串$str = getRandChar(32); //自定義方法生成32位隨機串//三組字符串進行md5加密$timeStamp =$_SERVER['REQUEST_TIME_FLOAT'];//salt$salt = config('secure.token_salt'); //隨機字符串//返回token return md5($str.$timeStamp.$salt);

這種算法基本保障了token的唯一性。因為值是我們獲取到的openID和session_key所在的數組,所以需要將數組轉成json才能存進去。以后的代碼當我們需要openID或者uid等時可以直接通過取緩存的方式來取。

三,調用統一下單接口,獲取prepay_id,再次簽名

在你寫完了訂單操作后,如何讓用戶支付訂單費用呢?這里就是重點了,我一步一步來說:

1.下載微信JS-SDK:

https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1

解壓打開進入lib文件夾中:


我們需要將lib中的文件放到我們的框架中,例如我使用的是tp5,就放到extend下,最好是在extend下建個子文件夾。其中WxPay.Api.php是入口,WxPay.Config.php是配置文件。下好后需要改動一些地方。在WxPay.Config.php中修改下列的東西改成你的。


然后在WxPay.Api.php中require一下WxPay.Notify.php,如圖:


在某個控制器或者服務層的代碼先是用Loader::import()引入WxPay.Api.php,相當于五個都引入了。

2.調用統一下單api

這里要亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

欧洲日韩成人av| 激情成人中文字幕| 日韩有码在线视频| 亚洲理论在线a中文字幕| 亚洲va欧美va国产综合剧情| 亚洲精品免费网站| 亚洲а∨天堂久久精品9966| 欧美三级欧美成人高清www| 欧美日韩亚洲网| 日韩美女av在线| 日韩一区二区精品视频| 欧美亚洲免费电影| 日本国产欧美一区二区三区| 日韩精品高清视频| 欧美国产视频一区二区| 久久精品男人天堂| 欧美激情综合亚洲一二区| 国产精品久久久久久久久粉嫩av| 国产精品中文字幕久久久| 国产成人精品免费久久久久| 亚洲jizzjizz日本少妇| 亚洲视频第一页| 日本三级久久久| 国产成人精品免高潮费视频| 97色在线观看| 超在线视频97| 亚洲欧洲高清在线| 91精品国产777在线观看| 久久久999精品视频| 欧美视频国产精品| 国产精品最新在线观看| 狠狠操狠狠色综合网| 亚洲综合色激情五月| 国产99在线|中文| 国产国语刺激对白av不卡| 久久亚洲影音av资源网| 中文字幕精品在线视频| 欧美洲成人男女午夜视频| 久久久国产精彩视频美女艺术照福利| 国产精品爽爽ⅴa在线观看| 欧美精品在线播放| 91中文精品字幕在线视频| 国产亚洲成精品久久| 亚洲二区在线播放视频| 欧美日韩中文字幕| 欧美国产日产韩国视频| 国产在线拍揄自揄视频不卡99| 88国产精品欧美一区二区三区| 亚洲精品一区二区久| 国产精品手机播放| 成人精品一区二区三区| 国产精品狼人色视频一区| 国内成人精品一区| 国产精品99久久久久久www| 亚洲成人激情在线| 日韩中文字幕免费看| 精品久久久一区| 一区二区三区动漫| 久久精品久久久久久| 日韩在线一区二区三区免费视频| 亚洲黄色在线观看| 这里只有精品视频在线| 国产中文字幕91| 欧美日韩亚洲高清| 亚洲综合av影视| 日韩性生活视频| 亚洲精品在线看| 日韩hd视频在线观看| 国内精品久久久久影院优| 久久精品国产一区二区三区| 亚洲欧美日韩国产精品| 久久香蕉频线观| 在线电影欧美日韩一区二区私密| 精品色蜜蜜精品视频在线观看| 亚洲欧美成人在线| 亚洲精品在线视频| 亚洲伊人成综合成人网| 国产日韩在线播放| 奇门遁甲1982国语版免费观看高清| 国产精品av网站| 亚洲精品免费在线视频| 热久久免费视频精品| 欧美精品久久久久久久久| 91高潮在线观看| 国产日韩欧美在线播放| 奇门遁甲1982国语版免费观看高清| 国产视频亚洲精品| 另类色图亚洲色图| 国产精品一区二区三区成人| 性日韩欧美在线视频| 97国产精品视频人人做人人爱| 2019中文字幕全在线观看| 亚洲精品91美女久久久久久久| 欧美成人四级hd版| 欧美成人午夜激情视频| 日本一区二区在线播放| 黄色成人在线免费| 国产日产欧美a一级在线| 精品视频偷偷看在线观看| 亚洲欧美国产精品久久久久久久| 国产成人精品久久久| 精品国内产的精品视频在线观看| 久久久成人的性感天堂| 亚洲一区国产精品| 久久久久国产精品免费| 成人信息集中地欧美| 亚洲第一偷拍网| 97在线视频免费观看| 国产男女猛烈无遮挡91| 亚洲电影免费观看高清完整版在线| 亚洲欧美精品suv| 亚洲国产精品久久久久秋霞不卡| 欧美成人网在线| 成人免费黄色网| 日本最新高清不卡中文字幕| 国产精品久久久久久一区二区| 美女久久久久久久久久久| 国产一区二区三区精品久久久| 91精品久久久久久综合乱菊| 亚洲欧美制服综合另类| 久久久久国色av免费观看性色| 日韩女优人人人人射在线视频| 国产精品成av人在线视午夜片| 超碰精品一区二区三区乱码| 国产亚洲人成网站在线观看| 国产日韩av高清| 亚洲精品aⅴ中文字幕乱码| 日产日韩在线亚洲欧美| 欧美日韩免费区域视频在线观看| xvideos亚洲| 青青久久av北条麻妃海外网| 国产精品第一区| 97免费视频在线| 国产精品日韩欧美大师| 国产日本欧美一区二区三区在线| 久久艳片www.17c.com| 国内精品免费午夜毛片| 亚洲第一网站免费视频| 亚洲欧美日韩综合| 这里只有精品在线观看| 欧美理论片在线观看| 日韩av在线免费观看| 91在线免费观看网站| 成人性生交大片免费看视频直播| 亚洲国产成人精品久久久国产成人一区| 欧美成在线视频| 亚洲精品国精品久久99热一| 亚洲自拍中文字幕| 久久久久久久久久久av| 国产a∨精品一区二区三区不卡| 亚洲黄页视频免费观看| 成人性生交大片免费观看嘿嘿视频| 亚洲色图17p| 在线视频欧美性高潮| 国产精品视频在线播放| 欧美性猛交xxx| 国外日韩电影在线观看| 欧美国产亚洲精品久久久8v| 97超碰色婷婷| 久久久久国产精品免费| 日韩女在线观看| 亚洲高清色综合| 欧美人在线观看| 久久亚洲一区二区三区四区五区高|