官方发通知说,wx.getUserInfo在4月30日后,在体验版和测试版中,将不能弹出授权提示框,且该功能会被移除.
我想知道 我用button type为getUserInfo验证组件,之后再用wx.getUserInfo获取用户信息可以吗?
为什么非要用wx.getUserInfo,因为我要在button按钮点击后,wx.login一下,获取code,之后获取sessionKey,之后去解密加密的用户信息获取Unionid,请官方回答一下1。
框架类型 | 问题类型 | API/组件名称 | 终端类型 | 操作系统 | 微信版本 | 基础库版本 |
---|---|---|---|---|---|---|
小程序 | Bug | button | 客户端 | 6.6.6 | 1.9.90 |
我们这边也遇到获取unionId的问题
如果是新用户, 不满足code获取unionId的条件, 只能通过getUserInfo获取, 但是wx.login必须要在getUserInfo之前调用, 如果由官方提供的按钮来触发回调, 开发者不方便把控wx.login的调用时机
使用button的bindgetuserinfo, 和之前的wx.getUserInfo一样, 是会有弹窗确认的, 我们自己处理, button也可能是通过自定义模态框来显示, 重复弹窗, 这种交互方式不太优雅.
所以感觉目前方案还是:
提前获取code,但是code有效期是5分钟。点击button按钮有可能失效.需要重新获取code.或者控制sessionKey.
使用button getuserinfo授权,继续使用wx.getuserinfo获取私密信息.
其实一开始的时候就掉过这个坑,先调用getUserInfo 再调用 login 是解密是失败的
@尘雨雾录 现在就是这么做的,但是 点击之后再login,导致了有时候 sessionKey不一致.我怀疑是 点击按钮时的sessionKey和login之后的有时候可能不一致,所以解密数据失败.解密私密信息需要sessionKey嘛.
你想复杂了,你console.log下按钮所触发的getuserinfo所获得的e里面所包含的detail里面的值,里面所包含的值就是我们平时用wx.getuserinfo所获得的值,你说没有login的code去解密,那就在点按钮的时候去调用wx.login,然后获得code,在用request,填加密信息和iv的时候,就用按钮这边的e.detail.iv这种方式传过去
wx.login也能拿到openid,但是有条件限制.
https://developers.weixin.qq.com/miniprogram/dev/api/uinionID.html,所以要搞个 成熟的方式,还得思考下啊.
遇到了你一样情况,你现在怎么搞的,现在必须用一个button的话,操作更不好了,好坑
现在想拿到unionid真的太蛋疼了,我觉得是不是应该有避免授权的方式拿到unionid呢
对啊, 但是code有时候解不开.
楼主是需要用户的私密信息,vi,signature这些吧?点击button获取后调用 wx.login 获取code 提交到后台解密吧?