收藏
回答

关于wx.login 和 wx.getUserInfo的先后顺序

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 Bug wx.login wx.getUserInfo 客户端 iOS 6.6.7 2.0.9

介绍一下情况:   我是前端,我是先getUserInfo然后再去调用wx.login,几乎每次只要调用到app.js的时候都会调用以上两个接口,然后现在的问题是: 后台拿着我给的 code iv encryptData ,解密不了session_key,解密的时候都是空的,后台说要拿到其中的union_id还是什么,总之是必须要以上这几个参数.


现在的问题是,解密不出来,跟我这边login和getUserInfo的顺序以及频率有关系么,频率差不多是两三分钟一次,同事是把code缓存了起来并没有发生这种事情

wx.getUserInfo({

            success: function (e) {

                console.log(e);

                jrWxLogin().then((res) => {

                    console.log("wxLogin" + res.code);

                    jrFetchPost(api.userLogin, {

                        code: res.code,

                        iv: e.iv,

                        encryptedData: e.encryptedData,

                    }, true).then((res) => {


剩下来的就是业务代码,不贴了


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

5 个回答

  • Jake
    Jake
    2018-06-13

    必须先有这个wx.login 在前面吧!先通过code 得到openid 就标识用户了

    至于wx.getUserInfo现在已经不支持了。

    请使用 <button open-type="getUserInfo"></button> 引导用户主动进行授权操作


    详细说明:https://developers.weixin.qq.com/miniprogram/dev/api/api-login.html

    2018-06-13
    赞同
    回复 3
    • orz~
      orz~
      2018-06-14

      我的意思是这样的,如果已经拿到权限了的话是可以getUserInfo的,而且如果是按钮的话你也肯定是先getUserInfo才能login吧

      2018-06-14
      赞同
      回复
    • 王万超
      王万超
      05-23回复orz~

      不一定啊,login和getUserInfo如果同一层级,是可以并行执行的。如果想要先执行login,然后再执行getUserInfo,可以在login的success中执行。

      05-23
      赞同
      回复
    • 王万超
      王万超
      05-23

      getUserInfo还支持啊,button那个只是授权操作,第一次授权后,每次进入可以通过scope判断,直接getUserInfo的

      05-23
      赞同
      回复
  • 一颗🍎
    一颗🍎
    2018-09-11

    顺序应该就是  1、wx.login    2、wx.getUserInfo 。


    如果顺序反过来 ,会出现校验解密失败的问题,比较坑的是 不是每次都出错。


    2018-09-11
    赞同
    回复