评论

【限期整改】wx.getUserInfo 平滑修改为wx.getUserProfile

#玛卡巴卡

微信在2月24号的公告: 登陆,用户信息接口调整

最近大家在开发工具中肯定注意到了这个东西,这时候大家肯定觉得发生肾磨事了,打开公告一看,好家伙。

4月13日后发布的新版本小程序,开发者调用wx.getUserInfo或<button open-type="getUserInfo"/>将不再弹出弹窗,直接返回匿名的用户个人信息,获取加密后的openID、unionID数据的能力不做调整。 这里大家先看一下关键流程改动点,了解一下为啥这么改:

改造过程:

1、 改造后如何获取open & unionId?

1、可以通过wx.login()和auth.code2session(服务端调用)

2、服务端接口需要4个参数,appid(小程序后台查看),secret(同后台查看),js_code(为wx.login返回的code),grant_type(默认固定 ‘authorization_code’)。

3、返回的参数有openid,session_key,unionid(需满足条件),errcode,errmsg。这里有的用户会报errcode 40029,code 是否有效。请求(https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code)接口需要使用GET方法。

4、此时正常流程我们获取了session_key,  「session_key的作用  ->校验signature ,解密encryptedData)  」

5、开发者服务器需要对开放数据进行解密,具体流程参照解密文档

6、此时开发者服务器需要做一套兜底方案,如果解密成功返回真实的用户信息,如果解密失败需要返回匿名数据。

7、此时当用户主动触发获取头像昵称的方法(wx.getUserProfile),如果解密成功后,会反正用户的详细数据,否则则是匿名数据。

这样想要的数据基本就都拿到了

改动中遇到的常见问题,点这个(一直提示文章内容过大)。

最后一次编辑于  2021-04-09  
点赞 3
收藏
评论

2 个评论

  • HUMPH
    HUMPH
    2021-07-15

    Component "pages/user/user" does not have a method "bindGetUserInfo" to handle event "getuserinfo". 这个警告怎么处理啊 求解


    2021-07-15
    赞同
    回复 1
    • undefined
      undefined
      2021-07-22
      登陆按钮bindgetuserinfo方法写在page 下,不要写在Component文件夹里,可以在page 下再建个Component。
      2021-07-22
      回复
  • 尘鈢
    尘鈢
    2021-04-22

    🏊‍♀️,先收藏😊

    2021-04-22
    赞同
    回复
登录 后发表内容