你的浏览器不支持canvas

做你害怕做的事情,然后你会发现,不过如此。

微信小程序获取用户信息报错pad block corrupted

时间: 作者: 黄运鑫

本文章属原创文章,未经作者许可,禁止转载,复制,下载,以及用作商业用途。原作者保留所有解释权。


业务流程

  • 1.前端调用wx.login官方文档获取code,调用wx.getUserInfo官方文档获取encryptedDataiv,将获取到的参数传给后台
  • 2.后台使用code调用auth.code2Session官方文档接口获取session_key
  • 3.后台通过session_keyiv解密encryptedData获取用户信息

报错原因

  • 在第3步解密encryptedData时,后台报错javax.crypto.BadPaddingException: pad block corrupted
  • 原因是第1步前端调用wx.loginwx.getUserInfo接口的顺序不对;如果先调用wx.getUserInfo再调用wx.login,可能会刷新小程序登录态。此时服务器使用code换取的session_key不是加密时使用的session_key,导致解密失败

对于本文内容有问题或建议的小伙伴,欢迎在文章底部留言交流讨论。