这篇文章主要介绍了微信小程序请求请求封装,验签代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
<强> 1。公共文件util添加强>
请求请求
//简单封装请求 函数请求(params,路径,isShowLoading=true,返回=false, type='没有',obj={}) { 尝试{ console.log(路径) 让NowTime=日期。解析(新日期())/1000; 让defaultParams={ 平台:app.globalData.platform, appVersion: app.globalData.version, 的deviceId: uuId (), 时间戳:参数。时间戳& # 63;参数个数。时间戳:NowTime }; params=对象。分配(params, defaultParams); 让requestParams=签名(params) isShowLoading,,wx。showLoading,,wx.showLoading ({ 标题:“加 中……” }) 返回新的承诺((解决,拒绝)=比;{ 让头; obj。头=obj。头| | {}; console.log(“获取ptkey”) console.log(插件。getJdListStorage ([‘guid’,‘pt_key’,‘pt_token’, ' pt_pin '])) 让(GUID="、关键="牌=?销="]=插件。getJdListStorage ([‘guid’,‘pt_key’,‘pt_token’, ' pt_pin ']), _cookie=' guid=$ {guid};pt_pin=$ {encodeURIComponent (PIN)};pt_key=${关键};pt_token=${牌},{wx.getStorageSync美元(“accessToken_v1”)}, { 饼干 }=obj.header; console.log(饼干) obj.header。=甜饼& # 63;“${饼干};$ {_cookie}’: _cookie; 如果(! isEmpty (getToken ())) { obj.header。授权=俺制比恕? getToken () } console.log (obj.header) wx.request ({ .globalData url: getApp ()。主机+路径,//获取应用。js全局ip 数据:requestParams, 方法:“文章”, 标题:obj.header, 成功:函数(res) { console.log (res) isShowLoading,,wx。hideLoading,,wx.hideLoading ()//缺少登录失效的处理方法 如果(res.statusCode==200,,res.data。代码==200){ 如果(isEmpty (res.data.data) | | res.data。数据=https://www.yisu.com/zixun/=true) { 解决(真正的) 返回 } 如果(res.data.data) { 解决(res.data.data); 如果(res.data}其他。https://www.yisu.com/zixun/=data=0) { 解决(res.data.data); 其他}{ 解决(真正的) } }else if (res.statusCode==200,,res.data。代码==401){//令牌过期 登录(); 解决(假); 返回; 其他}{//需要再判断码代码//errorShow (res.data。味精、返回类型); errorShow (res.data.msg); 解决(假);//拒绝(res.data.res); } }, 失败:函数(err) { console.log (err)//因为隐藏会让showToast隐藏 isShowLoading,,wx。hideLoading,,wx.hideLoading () errorShow(“网络请求失败”); 拒绝(新的错误(“网络请求失败”))//把新的错误(“网络请求失败”) }, 完成:函数(){} }) }) }捕捉(err) { console.log (err) errorShow(“网络请求失败”); 返回错误; } }
<强> 2。签名签名强>
//生成签名 函数签名(params) { 让keyArr=[] (让关键参数){ keyArr.push(关键) } 让arr=keyArr.sort (); 让结果=" "; 加勒比海盗。地图((项目、索引)=比;{ 如果(params[项目]==null | | params[项目]==定义){ 删除params[项目]; 加勒比海盗。拼接(指数(1); } }) console.log(“加勒比海盗”) console.log (arr) 加勒比海盗。地图((项目、索引)=比;{ 如果(Array.isArray (params[项目])==true) { 让res=" 让arr=params[项目] 加勒比海盗。地图(obj=比;{ console.log (typeof (obj)) 如果(typeof (obj) !='对象'){ res +=obj 其他}{ (让关键在obj) { 如果(Array.isArray (obj(例子))){ 让val="; obj(关键)。地图(项=比;{ val +=项目 }) res +=+瓦尔的关键 其他}{ res +=键+ obj(例子) } } } }) 结果+=" +项目+ " + res 其他}{ 结果+=" +项目+ " + params[项目] } }) console.log(“结果”) console.log(结果) 让pos; 如果(isEmpty (getToken ())) { pos=结果 其他}{ pos=结果+ getToken () } console.log (pos) console.log(“签名”) 让签名=sha256.hmac.create (pos_secret) .update (pos) .hex () .toLowerCase ();//需要引入sha256.min.js console.log(签名) 让obj={ 签名:签名 } 返回对象。分配(params, obj); }微信小程序请求请求封装,验签代码实例