收藏
回答

wx.checkSession有效,但是解密数据失败

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.login wx.checkSession code2Session 工具 6.7.3 2.3.1

在实现一个微信群权限控制的功能中,主要执行了如下步骤


1. 用户从微信群打开小程序时,会获得微信给我们的加密数据,加密数据主要包括微信群的id


2. 调用wx.login获取一个code


3. 使用code换取一个session key供解密数据使用


4. 调用wx.checkSession,检查session key是否过期, 没过期时,把加密数据传输到后端服务器解密,利用上一步的session key解密数据,会出现一定概率的失败


出现上述问题主要原因是在第1步中,微信加密数据的时候使用了一个session key,但是第2步的操作导致了session key发生了改变,请在这个问题如何解决,如果不执行第2步,又无法拿到session key


回答关注问题邀请回答
收藏

4 个回答

  • 我怎么听不见你的歌。
    我怎么听不见你的歌。
    2020-06-04

    官方文档说,加密使用的session_key和解密使用的session_key必须一致,但是我第一次进小程序,不使用login,也一样拿加密数据,那谁知道加密的session_key是什么,我是真的懵.....

    就算我提前使用login获取session_key,保存下来,能够解密成功,过了一小段时间之后重新获取,check没失效,却解密失败,如果check失效的话,那他又是用的什么加密的呢

    2020-06-04
    有用
    回复
  • 2019-01-03

    我也是,很久没打开小程序,旧的session-key已经失效了,但是checkSession返回成功。后台拿session-key解密失败。

    2019-01-03
    有用
    回复
  • Kim
    Kim
    2018-12-18

    遇到同类问题,有解决方式吗,概率性失败?

    2018-12-18
    有用
    回复
  • 半寸灰
    半寸灰
    2018-10-24

    这就是个很尴尬的问题

    要是用户没用过这个小程序  那就没有code   也就是再加密前获取不了session key     加密后  调用   wx.login   有可能导致  session key更新  解密失败。

    用户用过这个小程序  还好说  


    2018-10-24
    有用
    回复
登录 后发表内容