微信小程序获取用户信息诸如unionId的时候需要解密,如果遇到偶然的解密失败(填充无效,无法被移除),原因很有可能是session_key错误,

也是就你用作解密的session_key并不是微信用作加密的那个了,但是并不代表你的session_key已经失效.

如果这个时候你解密报出错误:填充无效,无法被移除 原因:

1. 如果一次都没有成功过,检查你的代码,或者把上面的代码拷过去

2. 偶然遇到此bug,这个是重点,你就不要去网上找什么其他方案了.也不要再去检查你的代码了.问题的原因出在微信.

加密过程是这样的:

session_key + iv = encryptedData;

由于 iv 和 encryptedData 是从wx.getUserInfo()或者是点击<button open-type='getUserInfo' >获取的,所以没有什么问题,问题出在 你获取的session_key 失效了

调用wx.login()可能会触发session_key 刷新,如果你是先获取到iv和encryptedData,再去获取session_key ,那么你获取到的session_key 就可能已经不是加密用的那个session_key 了.

我之所以用到了可能是因为我通过测试,发现先获取到iv和encryptedData,再去获取session_key这种方式并不是每次都失效,而是偶尔错误,并不知道微信如何去触发session_key,似乎也不像文档里写的那样

解决方案:

1. 如果你是老的小程序,用wx.getUserInfo()获取encryptedData只需要先wx.login(),再wx.getUserInfo()就可以了.

2. 如果你是新开发的小程序,微信已经更改的授权方式,是通过<button open-type='getUserInfo' >这种方式获取授权的,建议:

在登录页 onload 的时候调用wx.login().将openId和session_key 先缓存下来(session_key 建议缓存到后台),然后引导用户点击<button open-type='getUserInfo' >获取encryptedData,最后再去解密.

参考:https://www.cnblogs.com/fancyblogs/p/9560268.html

C# 解密微信步数 报错“填充无效,无法被移除。”相关推荐

  1. 微信小程序加密解密 C# 以及 填充无效,无法被移除错误的解决方案 Padding is invalid and cannot be removed

    微信小程序加密解密 C# 以及 填充无效,无法被移除错误的解决方案 Padding is invalid and cannot be removed 参考文章: (1)微信小程序加密解密 C# 以及 ...

  2. 微信支付报错:统一下单和拉起支付的appid不一致(原创)

    微信支付报错:统一下单和拉起支付的appid不一致 错误码:-2 提示参考: 参考统一下单的API (谦信君原创,转载请注明来源) 原因排查: 我们做的是APP微信支付 客户端向我服务端发请求,获取预 ...

  3. 企业微信登录报错:应用程序无法正常启动(0xc0000142);Win10应用程序无法正常启动0xc0000142错误的解决方法

    企业微信登录报错,有时候要点击多次才能登陆. 解决办法:创建一个文本,把下面一段复制进去,文本后缀改成.bat,启动运行一下即可. sc stop NSFFileCtl sc config NSFFi ...

  4. 微信分享报错errMsg: “updateAppMessageShareData:fail, the permission value is offline verifying“

    微信分享报错errMsg: "updateAppMessageShareData:fail, the permission value is offline verifying" ...

  5. Linux命令 rm -rf报错 mv无效选项 --‘r‘

    Linux命令 rm -rf报错 mv:无效选项 --'r' 错误原因 ​ 使用rm -rf命令删除文件夹时,报错:**"mv: invalid option – 'r' Try `mv - ...

  6. jenkins的企业微信通知报错:No appropriate protocol

    jenkins的企业微信通知报错:No appropriate protocol (protocol is disabled or cipher suites are inappropriate) 卸 ...

  7. 解决企业微信启动报错:0x0000142无法打开

    解决企业微信启动报错:0x0000142无法打开 1.问题描述 2.问题查找 3.问题解决 4.事后感悟 系统:Win10 WXWork:4.0.20.6020 1.问题描述 不知道从啥时候开始,打开 ...

  8. java ora 00911_java中 jdbc报错 ORA-00911: 无效字符

    java中 jdbc报错 ORA-00911: 无效字符 关注:196  答案:4  mip版 解决时间 2021-02-06 00:32 提问者不在服务区的爱 2021-02-05 19:37 Co ...

  9. IDEA 报错:无效的源发行版

    IDEA 报错:无效的源发行版 问题描述 从SVN拉项目代码到本地后用idea运行,发现几个报错,关键的一个是:无效的源发行版,考虑是JDK版本问题 解决方案: 1.检查本地JDK与项目的JDK版本是 ...

  10. 微信支付报错:app没有获取微信支付权限

    调试微信支付的时候报错: Array ( [return_code] => FAIL [return_msg] => 您没有APP支付权限 ) 查询了,发现自己将之前的公众号支付的APPI ...

最新文章

  1. R语言删除ggplot可视化图中的所有x轴轴标签实战:ggplot可视化默认包含所有x轴轴标签、删除ggplot可视化图中的所有x轴轴标签实战
  2. 完整SQL分页存储过程(支持多表联接)
  3. 利用gulp处理简单的前端问题
  4. 求1-100之间的奇数和、偶数和
  5. php qcloud sdk weapp_微信小程序源码+PHP后台
  6. 【jQuery】学习整理(一) 认识jQuery
  7. erlang的cpu调优
  8. oracle设置保存时间为12或是24小时格式
  9. UCanCode Visio 2022发布--专业--免费-绿色
  10. 为你写诗(LSTM 诗歌生成器)
  11. mpa和pis_有关压力单位pis-bar-mpa的换算
  12. 自动机器学习简述(AutoML)
  13. springBoot 文件压缩加密
  14. Back Channel笔记
  15. Java通过freemaker实现健康报告生成(包含列表、列表合并列)
  16. 【SAP Abap】记录一次增强开发之销售交货开票VF04增强
  17. Java经典300例-基础篇-001:Hello Kitty
  18. 面向对象划分--ERP销售订单、生产工单、料号
  19. html+js+css 调用jquery 工人信息管理功能(增删改查)前端实现,以及调用实现鼠标拖尾粒子效果的js库
  20. 微软 Edge 浏览器怎样安装插件

热门文章

  1. 计算一路话音消耗的带宽
  2. 全国自然保护区生态功能区分布数据
  3. 优先队列+哈夫曼树(Fence Repair)
  4. SparkStreaming kafka zookeeper本地环境调试安装
  5. C++小游戏——小岛战争
  6. 导入php插件_微信公众号吸粉的方法(将网站100%的流量导入到公众号中)
  7. idea 2019最新版无法打开报错问题,Error occurred during initialization of VM Initial heap size set to a larger va
  8. python什么时候用进程什么时候用线程_[译] Python 的多线程与多进程
  9. koa2+html模板,Koa2 路由
  10. python进程join会让程序线性执行_python 多进程没有并发执行是怎么回事?