收藏
回答

小程序 wx.login fail

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.login 客户端 7.0.4 2.5.0

- 当前 Bug 的表现(可附上截图) 项目上线后,首页白屏,因为首页数据目前需要登陆后才能拿到相应数据(需要wx.login后用code去获取token)。 为了排查原因,在所有有可能错误的地方加了mta监测,发现wx.login失败。导致后续亲求中断。 mta监测到wx.login的相关错误如下图:


- 预期表现


- 复现路径


- 提供一个最简复现 Demo

demo提供不了,因为这个是偶发,不是必现。

回答关注问题邀请回答
收藏

3 个回答

  • Evolver
    Evolver
    2019-07-15

    我的情况比你还糟糕 我在 wx.login 之前 成功 失败都埋了点 偶尔会出现只有之前的点打上了 后面成功和失败都没执行。。。

    2019-07-15
    有用
    回复 5
    • 桌子凳子丫
      桌子凳子丫
      2019-07-15

      不好意思,没理解你的意思,wx.login之前指的是?或者你可以把相关代码截图出来看看?

      2019-07-15
      回复
    • Evolver
      Evolver
      2019-07-17回复桌子凳子丫
      Log({type: 'event', remarks: '开始调用 wx.login'})
              console.log('开始调用 wx.login ')
              wx.login({
                  timeout: 5000,
                  success: (res) => {
                      if (res && (res.code == undefined || res.code == null)) {
                          Log({type: 'error', remarks: 'wx.login 无 code 返回'})
                          return
                      }
                      const launchData = wx.getLaunchOptionsSync();
                      const code = res.code
                      const sceneData = {
                          p_user_id: launchData.query.p_user_id == undefined ? null : launchData.query.p_user_id,
                          source_id: launchData.query.source_id == undefined ? 1 : launchData.query.source_id,
                          type: launchData.query.type == undefined ? 1 : launchData.query.type,
                          shop_id: launchData.query.shop_id == undefined ? 0 : launchData.query.shop_id
                      }
                      Taro.getUserInfo().then((res) => {
                          this.props.authSuccess()
                          this.startLogin(code, res, sceneData)
                      }).catch((err) => {
                          this.props.hideLoading()
                          Log({type: 'error', remarks: '调用 wx.getUserInfo 失败' + err})
                          throw (err)
                      });
                  },
                  fail: (res) => {
                      wx.showToast({
                          title: '微信内部错误,请重试',
                          icon: 'none'
                      })
                      this.getWechatAuth()
                      Log({type: 'error', remarks: '调用 wx.login 失败' + res})
                      throw (err)
                  }
              })

      Log 那个方法是封装的一个打点的方法 会往服务端发送一条记录  现在偶尔就光能收到“开始调用 wx.login” 然后后面就没反应了,界面就一直不动 后面的事件都不执行。原先用的是Taro.login  为了排除是 Taro 的锅换成了 wx.login

      2019-07-17
      回复
    • 桌子凳子丫
      桌子凳子丫
      2019-07-17
      怀疑是链接超时了,我在开发者工具上遇到过好几次了
      2019-07-17
      回复
    • Evolver
      Evolver
      2019-07-18回复桌子凳子丫
      +1 我也能在开发者工具遇到 然后也偶尔有客户反馈上来加载不出来 查日志也是这个毛病 诶...这可真让人头大
      2019-07-18
      回复
    • 桌子凳子丫
      桌子凳子丫
      2019-07-18
      是啊,这是多么关键的一步,后续很多操作都是基于这一步,结果这一步出问题了。我收集到的log中还有login:fail login no response的错误,希望官方可以重视起来
      2019-07-18
      回复
  • 吴奕群
    吴奕群
    2019-07-03

    或者是调用login多次,导致session_key被覆盖

    2019-07-03
    有用
    回复 1
    • 桌子凳子丫
      桌子凳子丫
      2019-07-03

      wx.login没有同时调用多次,是在调用失败后的回调里,再次调用发起的wx.login,并且两次失败后会间隔1s后才发起调用

      2019-07-03
      回复
  • 灵芝
    灵芝
    2019-07-02

    你好,请确认是否网络问题导致

    2019-07-02
    有用
    回复 10
    • 桌子凳子丫
      桌子凳子丫
      2019-07-02

      应该可以排除网络问题,因为mta也是需要网络的,既然能把错误信息上传到mta,那说明网络是没有问题的。

      2019-07-02
      回复
    • 桌子凳子丫
      桌子凳子丫
      2019-07-03

      @nickname 期待你的回复

      2019-07-03
      回复
    • 燚
      2019-07-03回复桌子凳子丫

      wx.login fail回调的message是?

      2019-07-03
      回复
    • 桌子凳子丫
      桌子凳子丫
      2019-07-03回复

      错误信息收集的不是很详细,因为被mta给截取了,显示不全,所以仅供参考

      2019-07-03
      回复
    • 燚
      2019-07-03回复桌子凳子丫

      appid给一下

      2019-07-03
      回复
    查看更多(5)
登录 后发表内容