收藏
回答

小程序授权异常问题

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug 按钮授权 微信iOS客户端 6.6.6 1.9.1

线上的是可以的,就开发版和体验版有这样的情况



在测试时,发现在点击授权的时候,经常不会弹出授权弹框,而且能拿到加密数据,然后到后台去解析的时候就报解析失败。

就从下午开始一直出现这样的问题。


具体代码是这样的:

<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')
}
})
}
}
}
});
},


最后一次编辑于  2018-05-31
回答关注问题邀请回答
收藏

1 个回答

  • 快点
    快点
    2018-05-31
    https://developers.weixin.qq.com/blogdetail?action=get_post_info&lang=zh_CN&token=48800756&docid=0008847a6240582c30c6fd81b56800

    e是button按钮的事件,两个框框里面的数据虽然看一起都一样,但是实际上不一样哦,这是我的解决方案,完美解决


    下面这段代码是index.js的授权按钮点击绑定的事件






    2018-05-31
    有用
    回复
登录 后发表内容