收藏
回答

微信小程序授权手机号失败

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug 获取手机号 客户端 7.0.4 2.7.1

- 当前 Bug 的表现(可附上截图)

该用户使用华为Mate10,在点击微信授权登录的时候,要求输入验证码,该用户点击home键回到桌面之后,查看短信验证码之后再回到小程序界面,这时候,页面就提示登录失败(这个提示是我写入点击授权的方法的回调函数里面做的处理)。

请问微信这个验证用户手机号的时候,点击HOME,是否会直接验证手机号失败?


- 预期表现

希望收到验证码后,即使切出去,查看短信验证码,再切回小程序,依然可以正常输入验证码,然后再处理我写的点击授权之后的方法


- 复现路径


- 提供一个最简复现 Demo

我并不知道什么时候要求授权需要验证短信验证码,所以不好复现,不过该用户一直跟我说了这个问题


代码:

<button type='primary' class='usual-btn ' open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"> 微信用户快捷登录 </button>
getPhoneNumber: function(e) {
  let _this = this
  var encryptedData = e.detail.encryptedData;
  var iv = e.detail.iv;
  wx.showLoading({
    title: '加载中',
    duration: 1000
  });
  if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {
    _this.showUdialog({
      title: '提示',
      showCancel: false,
      content: '未授权',
      success: function(res) {}
    })
  } else {
    if ("" != encryptedData && "" != iv & "" != resCode) {
      let http = {};
      http.url = consUrl.getHttpurl("/login/encryptedData");
      http.data = {
        encryptedData: encryptedData,
        vl: iv,
        resCode: resCode
      };
      http.success = function(resultParm) {
        // console.log(resultParm);
        if (resultParm.data.result_code == '0') {
          //登录成功,进入成功处理流程
        } else {
          _this.showUdialog({
            title: '提示',
            showCancel: false,
            content: '登录失败',
            success: function(res) {}
          })
        }
      }
      app.wxRequest(http);
    }
  }
},


最后一次编辑于  06-20  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

1 个回答

  • 雯
    06-20

    home健返回桌面,建议在onHide

    onShow方法里调试一下


    06-20
    赞同
    回复 1
    • 黑猫警长
      黑猫警长
      06-20

      不是的。主要是,点击授权,微信什么时候会要你验证手机号码是不确定的。很难复现。我只能猜测,流程如下:

      1. 点击授权按钮

      2. 微信要求验证手机号

      3. 点击HOME键去外面看验证码

      4. 再次回到小程序微信验证方法就直接返回失败

      5. 再进入我写的点进授权之后的方法处理,结果肯定是有问题的


      06-20
      回复