线上的是可以的,就开发版和体验版有这样的情况
在测试时,发现在点击授权的时候,经常不会弹出授权弹框,而且能拿到加密数据,然后到后台去解析的时候就报解析失败。
就从下午开始一直出现这样的问题。
具体代码是这样的:
<button open-type="getUserInfo" bindgetuserinfo="getUserInfo">
// 全局获取用户信息
getUserInfo: function (res, type, callback) {
let _this = this;
// console.log('---获取用户信息---');
// console.log(res);
// console.log('----------');
if (res.detail.errMsg == 'getUserInfo:fail auth deny') {
wx.showModal({
title: '用户授权',
content: '本小程序需用户授权,请重新点击按钮授权。',
mask: true,
confirmColor: '#F45C43',
success: function (res) {
}
})
} else if (res.detail.errMsg == 'getUserInfo:ok') {
let userInfo = res.detail.userInfo;
_this.globalData.userInfo = userInfo;
wx.setStorageSync('userinfo', userInfo);
callback({
hasUserInfo: true,
userInfo: userInfo
});
_this.wxLogin(res.detail.encryptedData, res.detail.iv, type)
}
},
//授权登录,拿token
wxLogin: function (encryptedData, iv, type) {
wx.setStorageSync('userType', type);//user登录方式,sell,buy
// body...
wx.login({
success: function (res) {
"use strict";
if (res.code) {
let params = {
appid: API.APP_ID,
code: res.code,
encryptedData: encryptedData,
iv: iv
};
if (type === 'sell') {
wxRequest.fetch(API.authLogin + '?_iscreateUser=false', null, params, "POST").then(res => {
"use strict";
// console.log()
if (res.data.resultCode === '100') {
console.log(res.data.resultContent);
wx.setStorageSync('unionid', res.data.resultContent.unionId);
wx.setStorageSync('openid', res.data.resultContent.openId);
util.pageGo('/pages/sell/apply/index', 1)
// AuthProvider.onLogin(type, res => {
// console.log(res, '获取token')
// })
} else {
console.log('error')
}
})
} else if (type === 'buy') {
wxRequest.fetch(API.authLogin, null, params, "POST").then(res => {
"use strict";
// console.log()
if (res.data.resultCode === '100') {
console.log(res.data.resultContent);
wx.setStorageSync('unionid', res.data.resultContent.unionId);
wx.setStorageSync('openid', res.data.resultContent.openId);
AuthProvider.onLogin(type, null, res => {
console.log(res, '获取token')
})
} else {
console.log('error')
}
})
}
}
}
});
},
https://developers.weixin.qq.com/blogdetail?action=get_post_info&lang=zh_CN&token=48800756&docid=0008847a6240582c30c6fd81b56800
e是button按钮的事件,两个框框里面的数据虽然看一起都一样,但是实际上不一样哦,这是我的解决方案,完美解决
下面这段代码是index.js的授权按钮点击绑定的事件