收藏
回答

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

<button open-type="getPhoneNumber" ></button>


报错:javax.crypto.BadPaddingException: pad block corrupted

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

3 个回答

  • 马路边撸代码的程序员
    马路边撸代码的程序员
    2019-08-10

    https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html
    官方文档说的注意事项:(多阅读几遍应该就能找到问题)
    在回调中调用 wx.login 登录,可能会刷新登录态。此时服务器使用 code 换取的 sessionKey 不是加密时使用的 sessionKey,导致解密失败。建议开发者提前进行 login;或者在回调中先使用 checkSession 进行登录态检查,避免 login 刷新登录态。


    2019-08-10
    有用 2
    回复 3
  • 轩哥、💪
    轩哥、💪
    06-24

    也遇到了同样得问题,有解决得吗

    06-24
    有用
    回复
  • 大饼
    大饼
    2019-07-03

    这个异常通常是因为sessionKey 与 iv 不匹配导致的。

    建议排查一下流程步骤。

    如:wx.login() 与 code换取sessionKey的流程

    2019-07-03
    有用
    回复 14
    • 深圳i
      深圳i
      2019-07-03

      流程没问题  都是先wx.login()  而且我之前也验证过sessionKey有没有失效   确定是没失效的

      2019-07-03
      回复
    • 大饼
      大饼
      2019-07-03

      每次getPhoneNumber之前都有调用wx.login() 吗?

      2019-07-03
      回复
    • 深圳i
      深圳i
      2019-07-03回复大饼

      没有哦  我在app.js 里面有判断过sessionKey有没有过期  如果过去了会重新去授权页面  只有授权页面才会调用wx.login()

      2019-07-03
      回复
    • 大饼
      大饼
      2019-07-03

      手机号码的解码与用户信息的解码是同一套逻辑的。

      出现这个异常,只能查查为什么使用的sessionKey不匹配了。



      2019-07-03
      回复
    • 深圳i
      深圳i
      2019-07-03回复大饼

      不匹配?  会不会有sessionKey没失效 但是不匹配这种可能?

       

      2019-07-03
      回复
    查看更多(9)
登录 后发表内容