收藏
回答

wx.checkSession通过但是获取手机号后的数据拿去解密总是失败?

在授权获取手机号并发给后端解密的时候总是解密失败!!!

但我认为我的代码流程是没有问题的。

我先wx.checkSession查看用户session_key是否过期,过期则执行wx.login重新登录刷新session。但是某个用户在checkSession时我得到的总是seccess,然后数据发给后端却解密失败!!(然而我认为用户登录态实际已经过期了,但checkSession总是给我错误的指引!)

后来我改进,在后端返回解密失败后我再执行一次wx.login登录并刷新session_key后并给用户抛出提示:请在此点击重试!。用户再次点击授权后就解密成功了!!!

ps:难道微信官方对这个惊天大bug没有一点发现?? 真是让人头痛啊

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

3 个回答

  • 喵zZZ~
    喵zZZ~
    2021-11-01

    我跟你一样的逻辑,wx.checkSession成功了就直接用上一次的session_key解密,失败则通过调用wx.login重新刷新session_key,但是经常会出现解密错误,然后只能根据这个情况返回特定错误码,强制重新调用wx.login刷新session_key。这个session_key只能有效一段时间,然后又要重复这样的逻辑。

    (─.─|||


    2021-11-01
    有用
    回复
  • 小V书写
    小V书写
    2021-05-27
    按照一下示例改改,应该就可以了
    1、
    

    2、

    2021-05-27
    有用
    回复 2
    • 你的阿陈哥
      你的阿陈哥
      2021-05-27
      这个流程好像有问题,先getPhone再login?getPhone回调给你的数据已经是加密了,而在login之后你所得到的session_key是不是就会有问题呢!
      2021-05-27
      1
      回复
    • 彭世瑜
      彭世瑜
      2022-01-21
      这个逻辑有问题,应该先login,再getPhonenumber, 这样才能保证加密和解密的session是一个。不能在getPhonenumber中login!
      2022-01-21
      回复
  • ㅤ
    2021-05-27

    你是不是用的easywechat

    2021-05-27
    有用
    回复 3
登录 后发表内容