小程序
小游戏
企业微信
微信支付
扫描小程序码分享
mac 模拟器1.05.2102010 基础库2.16.0
调用wx.login获取code后,再调用wx.getUserProfile,可能会失败,触发fail函数,error msg: ''getUserProfile:fail can only be invoked by user TAP gesture"。
如果不能同时使用,那如何校验用户信息的准确性或者解密encryptedData呢?
20 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
async getUserProfile(e){ let login = () => { return new Promise( resolve =>{ wx.login( { success(res) { console.log("执行异步操作--------") resolve(res) } }) }); } let getUserInfo = () => { return new Promise(resolve => { //wx.getUserInfo({ wx.getUserProfile({ desc: '用于完善会员资料', success(res) { console.log("000000000") resolve(res) } }) }) } Promise.all([login, getUserInfo]).then((res) => { console.log(res) console.log ("-------------------") }).catch((err) => { console.log(err) }) }
我这代码不知有什么问题,执行后感觉两个promise并没有执行,res的返回的数组里是两个函数,我很困惑
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
后端如果有用Binary Wang的工具包的话,需要注意
#我当前使用weixin-java-miniapp工具包版本为3.9.0 # 用code换SessionKey WxMaJscode2SessionResult jsCode2SessionDTO = wxMaService.jsCode2SessionInfo(code); # 解析获取用户信息 WxMaUserInfo maUserInfoDTO = wxMaService.getUserService().getUserInfo(jsCode2SessionDTO.getSessionKey(), encryptedData, iv);
WxMaUserInfo对象中不存在openId了,要用WxMaJscode2SessionResult中的openid和unionId
我发现反过来调用,先执行getUserProfile再login,也能顺利解码加密内容,是不是微信在这个新api(getUserProfile)上做了兼容???
已授权条件下的自动登录是不是实现不了了
我也是在调整登录方案时,发现了这个问题
有发现什么好的方案吗
碰到同样问题,先wx.getUserProfile在成功回调里用wx.login,请求后台接口会报错。希望官方给出合适的解决方案。
遇到同样的问题,若楼主有解决方法请告知
wx.login和wx.getUserProfile现在没关系了。各玩各的吧。
是的,不能在wx.login 的callback 里用,我是页面onload 时候存了code(),更新状态管理或者globaldata 都行。
然后getUserProfile 取了就行
我是先调用的wx.getUserProfile
正在加载...
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
async getUserProfile(e){ let login = () => { return new Promise( resolve =>{ wx.login( { success(res) { console.log("执行异步操作--------") resolve(res) } }) }); } let getUserInfo = () => { return new Promise(resolve => { //wx.getUserInfo({ wx.getUserProfile({ desc: '用于完善会员资料', success(res) { console.log("000000000") resolve(res) } }) }) } Promise.all([login, getUserInfo]).then((res) => { console.log(res) console.log ("-------------------") }).catch((err) => { console.log(err) }) }
我这代码不知有什么问题,执行后感觉两个promise并没有执行,res的返回的数组里是两个函数,我很困惑
后端如果有用Binary Wang的工具包的话,需要注意
#我当前使用weixin-java-miniapp工具包版本为3.9.0 # 用code换SessionKey WxMaJscode2SessionResult jsCode2SessionDTO = wxMaService.jsCode2SessionInfo(code); # 解析获取用户信息 WxMaUserInfo maUserInfoDTO = wxMaService.getUserService().getUserInfo(jsCode2SessionDTO.getSessionKey(), encryptedData, iv);
WxMaUserInfo对象中不存在openId了,要用WxMaJscode2SessionResult中的openid和unionId
我发现反过来调用,先执行getUserProfile再login,也能顺利解码加密内容,是不是微信在这个新api(getUserProfile)上做了兼容???
已授权条件下的自动登录是不是实现不了了
我也是在调整登录方案时,发现了这个问题
有发现什么好的方案吗
碰到同样问题,先wx.getUserProfile在成功回调里用wx.login,请求后台接口会报错。希望官方给出合适的解决方案。
遇到同样的问题,若楼主有解决方法请告知
wx.login和wx.getUserProfile现在没关系了。各玩各的吧。
https://developers.weixin.qq.com/community/develop/article/doc/00062eab0508684539cba249f59413
是的,不能在wx.login 的callback 里用,我是页面onload 时候存了code(),更新状态管理或者globaldata 都行。
然后getUserProfile 取了就行
我是先调用的wx.getUserProfile