介绍一下情况: 我是前端,我是先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) => {
剩下来的就是业务代码,不贴了
顺序应该就是 1、wx.login 2、wx.getUserInfo 。
如果顺序反过来 ,会出现校验解密失败的问题,比较坑的是 不是每次都出错。
您好,这个问题您解决了吗,跟login和getUserInfo的顺序有关吗?
必须先有这个wx.login 在前面吧!先通过code 得到openid 就标识用户了
至于wx.getUserInfo现在已经不支持了。
请使用 <button open-type="getUserInfo"></button> 引导用户主动进行授权操作
详细说明:https://developers.weixin.qq.com/miniprogram/dev/api/api-login.html
我的意思是这样的,如果已经拿到权限了的话是可以getUserInfo的,而且如果是按钮的话你也肯定是先getUserInfo才能login吧
不一定啊,login和getUserInfo如果同一层级,是可以并行执行的。如果想要先执行login,然后再执行getUserInfo,可以在login的success中执行。
getUserInfo还支持啊,button那个只是授权操作,第一次授权后,每次进入可以通过scope判断,直接getUserInfo的