小程序获取微信绑定的手机号时遇到异常:javax.crypto.BadPaddingException: pad block corrupted
搜了很多看到一个类似的博文,突然意识到是因为自己的步骤不太对:
- 先调用的wx.login获取code。
- 然后通过getPhoneNumber获取了手机号的加密数据。
- 再通过code取到用户的session_key 。
- 最后再用session_key,手机号的加密数据和向量解密获取手机号。
正确的做法应该是:
- 先才调用的wx.login获取code
- 然后再通过code取到用户的session_key 。(判断session_key是否过期,过期则重新获取)
- 再通过getPhoneNumber获取了手机号的加密数据。
- 最后再用session_key,手机号的加密数据和向量解密获取手机号。
改完之后目前是没有问题的。