收藏
回答

微信解密手机号码失败

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug getPhoneNumber() 客户端 7.0.4 2.7.0

- 当前 Bug 的表现

获取微信手机号加密数据成功,解密失败。


本地偶尔复现,问题描述如下


先login,换取token后,后台拿去换session_key,然后解密微信加密数据。如果解密失败,再由小程序打印userInfo的加密信息。


当解密失败以后,用一样的sessionkey去解密userinfo的加密数据,成功解密。确认sessionkey正确。


由于解密是偶尔失效,确认获取加密数据的方式正确。


猜测是某种情况下,微信放回的手机加密数据异常







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

2 个回答

  • 马
    2021-03-11

    在点击按钮获取加密数据之前调用wx.login(),再去获取session_key,这个session_key可以存起来,

    点击按钮获取加密数据时不使用wx.login(),因为wx.login()会刷新小程序的登录状态,可能导致获取的加密数据与session_key不匹配,

    2021-03-11
    有用
    回复
  • \
    \
    2019-07-08

    偶尔失败?有做session过期检查吗

    2019-07-08
    有用
    回复 3
    • 但求诸己
      但求诸己
      2019-07-08

      都是先调用login的,而且一样的sessionkey,能先解密手机密文,再解密userinfo,结果userinfo能解密,手机数据不能解密。sessionkey是没问题的

      2019-07-08
      回复
    • \
      \
      2019-07-09回复但求诸己

      你拿用户信息授权时候的iv,encryptedData等数据的和手机号授权时候的iv,encryptedData等数据注意区分别弄混

      2019-07-09
      回复
    • 但求诸己
      但求诸己
      2019-07-09回复\

      没有的,个人信息是客户端打印发给我的,手机数据是直接传到后台的

      2019-07-09
      回复
登录 后发表内容