收藏
回答

关于openid再编译后获取问题

问题模块 框架类型 问题类型 操作系统 工具版本
开发者工具 小程序 Bug Windows 1.02.1812271

在授权之后可以获取openid,但是再次编译之后openid显示未定义,但是userInfo可以正常获取

难道每次取openid 都要走一遍 获取流程?

目前我把openid保持在全局,其他页面可以正常获取

就是在写完代码 编译之后openid就获取不到

需要重新清理授权,再次授权才可以获取


我是把获取openid 写在了授权里面

index.wxml

<button wx:if="{{!hasUserInfo && canIUse}}" open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像昵称 </button>


index.js

getUserInfo: function(e) {

    if (e.detail.errMsg=="getUserInfo:ok")

    {

        console.log('授权成功')

        app.globalData.userInfo = e.detail.userInfo

        this.setData({

            userInfo: e.detail.userInfo,

            hasUserInfo: true

    })

    //获取code

    wx.login({

        success: function (res) {

        wx.request({

        url: 'https://api.weixin.qq.com/sns/jscode2session?appid=*******&secret=*******&js_code=' + res.code + '&grant_type=authorization_code',

        data: {},

        header: {'content-type': 'application/json'},

        //getOpenID

        success: function (res) {

            console.log(res.data.openid)

            console.log(res.data.session_key)

            //openid = res.data.openid //返回openid

            app.globalData.openid = res.data.openid

            app.globalData.sessionKey = res.data.session_key

}

})

}

})

}

}



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

2 个回答

  • จุ๊บ
    จุ๊บ
    02-13

    你这样写再次编译 肯定未定义,因为没走这里面啊;可以直接调用wx.login 获取openid,不需要用户点击,获取之后存在缓存中就行了

    02-13
    赞同 1
    回复
  • 拾忆
    拾忆
    02-13

    如果只是openid是不需要授权就能直接获取的,获取后可以放在缓存里

    02-13
    赞同 1
    回复