getPhoneNumber获取用户手机号有失败的概率
发布于 5 年前 作者 majun 12213 次浏览 来自 问答

线上环境。

5个用户测试,其中一个用户(iphone8p)连续4次获取手机号失败之后才成功了。

不知道是什么原因?

//登录,获取手机号
login: function (e) {
console.log(e.detail.errMsg);
   // 如果用户授权且微信已绑定手机号
   if (e.detail.iv) {
app.showLogin();
       const sys=wx.getSystemInfoSync();//获取手机和型号
       const brand=sys.brand || '';
       const model=sys.model || '';
       wx.login({
success: res => {
console.log('发code到后台换取 openid, sessionKey');
               if (res.code) {
wx.request({
url: app.globalData.appUrl + 'login',
                       method: 'POST',
                       data: {
code: res.code,
                           iv: e.detail.iv,
                           encryptedData: e.detail.encryptedData,
                           brand:brand,
                           model:model
},
                       success: (res) => {
if (res.data.openid) {
console.log(res.data);
                               wx.hideLoading();
                               wx.setStorageSync('openid', res.data.openid);      //拿到openid存本地
                               this.setData({
isLogin: true,
                               });
                               this.getData(res.data);//调用共用方法--得出所有数据
                               wx.hideLoading();
                               // this.stickyTop();//再次算出固定栏距离顶部的距离
                           } else {//解密手机号失败等
                               console.log(res.data.errCode);
                               app.loginFail();
                           }
},
                       fail: () => {//wx.request失败--情况很少
                           app.loginFail();
                       }
})
} else {//没有获取到code--情况很少
                   app.loginFail();
               }
},
           fail: () => {//wx.login失败--情况很少
               app.loginFail();
           }
})
} else if (e.detail.errMsg.indexOf('10000') !== -1) {
//用户未绑定手机号
       console.log('未绑定手机');
       this.setData({
showHint: true
       })
}
// else 用户拒绝授权--不管了
},
3 回复

遇到过但是一直没法解决,因为这东西你都不知道哪里错了,返回结果是填充无效,要是我们写的有问题为什么有的可以,没找到过官方建议,之前我们获取unionId也是这种错误,后来反馈了一下,把获取code和iv的先后顺序换了一下就再没出过问题,正常来说这两个都是新获取的跟先后顺序应该没关系,解决了都不知道为啥

确实是这样的,死循环。 什么时间获取code都不合适

恐怖的回调地狱,微信改善一下吧

回到顶部