小程序
小游戏
企业微信
微信支付
扫描小程序码分享
<button open-type="getPhoneNumber" ></button>
报错:javax.crypto.BadPaddingException: pad block corrupted
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html官方文档说的注意事项:(多阅读几遍应该就能找到问题)在回调中调用 wx.login 登录,可能会刷新登录态。此时服务器使用 code 换取的 sessionKey 不是加密时使用的 sessionKey,导致解密失败。建议开发者提前进行 login;或者在回调中先使用 checkSession 进行登录态检查,避免 login 刷新登录态。
login
checkSession
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
我这也碰到了,在小程序页长时间停留(2分钟左右),然后调用wx.login,然后去授权获取用户手机号,这时服务端解密就会出错,出错后checksession也是Sucess的,很奇怪的问题
也遇到了同样得问题,有解决得吗
这个异常通常是因为sessionKey 与 iv 不匹配导致的。
建议排查一下流程步骤。
如:wx.login() 与 code换取sessionKey的流程
流程没问题 都是先wx.login() 而且我之前也验证过sessionKey有没有失效 确定是没失效的
每次getPhoneNumber之前都有调用wx.login() 吗?
没有哦 我在app.js 里面有判断过sessionKey有没有过期 如果过去了会重新去授权页面 只有授权页面才会调用wx.login()
手机号码的解码与用户信息的解码是同一套逻辑的。
出现这个异常,只能查查为什么使用的sessionKey不匹配了。
不匹配? 会不会有sessionKey没失效 但是不匹配这种可能?
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html
官方文档说的注意事项:(多阅读几遍应该就能找到问题)
在回调中调用 wx.login 登录,可能会刷新登录态。此时服务器使用 code 换取的 sessionKey 不是加密时使用的 sessionKey,导致解密失败。建议开发者提前进行
login
;或者在回调中先使用checkSession
进行登录态检查,避免login
刷新登录态。我这也碰到了,在小程序页长时间停留(2分钟左右),然后调用wx.login,然后去授权获取用户手机号,这时服务端解密就会出错,出错后checksession也是Sucess的,很奇怪的问题
也遇到了同样得问题,有解决得吗
这个异常通常是因为sessionKey 与 iv 不匹配导致的。
建议排查一下流程步骤。
如:wx.login() 与 code换取sessionKey的流程
流程没问题 都是先wx.login() 而且我之前也验证过sessionKey有没有失效 确定是没失效的
每次getPhoneNumber之前都有调用wx.login() 吗?
没有哦 我在app.js 里面有判断过sessionKey有没有过期 如果过去了会重新去授权页面 只有授权页面才会调用wx.login()
手机号码的解码与用户信息的解码是同一套逻辑的。
出现这个异常,只能查查为什么使用的sessionKey不匹配了。
不匹配? 会不会有sessionKey没失效 但是不匹配这种可能?