收藏
回答

微信小程序手机号解密失败

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug wx.checkSession 微信iOS客户端 6.6.6 1.9.1

流程是这样的:初次加载app.js,调用wx.login()去获取code,将code发给自己服务器获取一个sid,缓存这个sid。在手机号授权的时候,先调用wx.checkSession()去判断微信sessionKey是否过期,过期就重新调登录流程,没有过期就获取encryptedData,iv和sid,发送给后台去解密。

但会存在这种情况,如果今天我进入小程序,然后关掉。再隔2天使用小程序,再去授权手机号,后台报解密失败!后台解密代码都一样,我以为是微信sessionKey过期了,但是,微信说sessionKey过期时间是30天,而且我检查了代码,wx.checkSession()返回success,表示登录态未过期,但还是解密失败,这是为什么啊?

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

12 个回答

  • usopp
    usopp
    2018-07-28

    楼主解决了?我也遇到这个问题

    2018-07-28
    有用
    回复
  • Initial D
    Initial D
    2018-06-25

    是否重复login了?

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

    2018-06-25
    有用
    回复 3
    • Acteur
      Acteur
      2018-06-25

      没有重复login。这就是最大的问题所在!

      2018-06-25
      回复
    • 宇航
      宇航
      2018-08-02回复Acteur

      问题解决了吗

      2018-08-02
      回复
    • 凉白开
      凉白开
      2019-07-05回复Acteur

      大佬,解决了吗

      2019-07-05
      回复

正在加载...

登录 后发表内容