看了一整天,也没找到合适的答案,现在的问题是,开发版每次登录都要登录2次,2次后重新登录都是直接登录成功,间隔一段时间后再登录又要登录2次,正式版出现这个异常情况很少。
看来数据,出现这个问题的时候session_key都是一样的,也就是说第二次也是一样的session_key能登录成功,第一次就不能,不懂为什么?
请求顺序是小程序wx.login,取到了code,iv和encryptedData,连续请求每次都是不一样的,然后使用appid和secret获取session_key、openid等信息,每次连续请求获取的session_key都是一样的。
javax.crypto.BadPaddingException: pad block corrupted
at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher$BufferedGenericBlockCipher.doFinal(Unknown Source)
at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher.engineDoFinal(Unknown Source)
at javax.crypto.Cipher.doFinal(Cipher.java:2164)
at com.xmz1.util.wx.login.WxLoginUtils.getUserInfo(WxLoginUtils.java:64)
at com.xmz1.mall.service.base.impl.UserServiceImpl.login(UserServiceImpl.java:107)
at com.xmz1.mall.controller.base.UserController.login(UserController.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)