关于openid再编译后获取问题
发布于 6 年前 作者 xxiong 5092 次浏览 来自 问答

在授权之后可以获取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

}

})

}

})

}

}

2 回复

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

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

回到顶部