拿到微信返回的code,iv,encryptedData,后台解密失败,有截图看
发布于 6 年前 作者 juanqin 8078 次浏览 来自 问答

这个我们后来重置消息秘钥后就恢复了,但我们确认没有改过消息秘钥,而且在大部分都报错的时候,还有部分用户是可以正常进行业务的。

所以我们希望咱们微信的技术人员帮忙查一下是什么原因

这是后台报错

3 回复

请检查逻辑    获取到加密数据后  不要调用   wx.login   以code  获取 session_key   不然有几率解密失败

在回调中调用 wx.login 登录,可能会刷新登录态。此时服务器使用 code 换取的 sessionKey 不是加密时使用的 sessionKey,导致解密失败。建议开发者提前进行 login;或者在回调中先使用 checkSession 进行登录态检查,避免 login 刷新登录态。

解密流程是这样:

  • wx.login 获取code;

  • 把code传给后台,请求微信接口拿session_key;

  • wx.getUserInfo获取加密数据;

  • 加密数据传给后台,使用第二步拿到的session_key来解密。

之前我们也遇到这问题了,按已上流程调整就再也没有出过无法解密的错误,

一般来说解密出问题,是因为第三步拿的解密数据和第二步的session_key不对应导致;

最近微信小程序的热点接口改动比较频繁,有些老逻辑就不太适用了

看着什么都已经拿到了啊,openid和session_key都打印出来了,下面的报错应该是后台自己代码出错了吧

回到顶部