微信小程序 wx.login解密出现乱码的问题解决办法


Posted in Javascript onMarch 10, 2017

微信小程序 wx.login解密出现乱码的问题解决办法

最近在给公司开发微信小程序,需要用到微信登录,根据文档要求需要把获取的用户信息按照AES进行解密。

我使用的是官方提供的PHP demo,拷贝到程序中,测试发现,解密之后的数据前面有一串乱码。

 微信小程序 wx.login解密出现乱码的问题解决办法

类似于这样子的,前面一段是乱码。

 经过仔细的检查,发现官方的提供的demo中的帐号和机密之后的信息是可以解密的,这就说明解密代码是没有问题的。 

后来查询微信开发者社区,找到好多解密失败。其中一个回答说是因为多次调用wx.login之后导致的问题。

终于看到解决方案,于是赶紧去看我的代码。可是查找半天发现只调用了一次,根本不是这个问题。

有一次走到了死胡同,没办法了,还是看代码吧。

根据文档,应该是先调用wx.login(),成功之后再调用wx.getUserInfo(), 于是我就想,会不会是我把wx.getUserInfo()获取到的值没有正确的传给服务器呢?

既然不确定,那就得看看。于是,打印wx.getUserInfo()的返回值,是这样子的

微信小程序 wx.login解密出现乱码的问题解决办法

 看到结果之后我就跟我的请求服务器的参数挨个对照,当看到encryptData时,发现了问题,文档上写的是应该把encryptedData的值用于解密,而我则是把encryptData的值

取出来了,所以解密结果就不正确了。

至此,发现问题,把参数改成encryptedData之后解密成功。

 总结一下问题: 由于wx.getUserInfo()返回值中encryptData和encryptedData参数名称过于相似,导致我用错变量,实在是不应该。

至于为什么微信要多返回一个没用的参数(目前还没发现它的作用),我就不知到了,而且文档上根本就没提到这个。

 微信小程序 wx.login解密出现乱码的问题解决办法

  希望大家编码的时候能够细心一点,不要犯我这样的错误。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
js Math 对象的方法
Sep 01 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
Nov 19 Javascript
解决Extjs4中form表单提交后无法进入success函数问题
Nov 26 Javascript
ECMAScript中函数function类型
Jun 03 Javascript
javascript获取select值的方法分析
Jul 02 Javascript
基于JavaScript实现瀑布流布局(二)
Jan 26 Javascript
Bootstrap前端开发案例一
Jun 17 Javascript
使用PBFunc在Powerbuilder中支付宝当面付款功能
Oct 01 Javascript
AngularJS实现ajax请求的方法
Nov 22 Javascript
Angular.js中ng-include用法及多标签页面的实现方式详解
May 07 Javascript
浅谈Angular6的服务和依赖注入
Jun 27 Javascript
jQuery - AJAX load() 实例用法详解
Aug 27 jQuery
微信小程序 出现47001 data format error原因解决办法
Mar 10 #Javascript
BootstrapValidator实现注册校验和登录错误提示效果
Mar 10 #Javascript
Bootstrap fileinput组件封装及使用详解
Mar 10 #Javascript
Bootstrap栅格系统使用方法及页面调整变形的解决方法
Mar 10 #Javascript
Node.js中.pfx后缀文件的处理方法
Mar 10 #Javascript
Vue.js结合bootstrap实现分页控件
Mar 10 #Javascript
js获取ip和地区
Mar 10 #Javascript
You might like
mysql 搜索之简单应用
2007/04/27 PHP
使用php清除bom示例
2014/03/03 PHP
destoon整合ucenter后注册页面不跳转的解决方法
2014/06/21 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
2016/06/13 PHP
php 策略模式原理与应用深入理解
2019/09/25 PHP
Laravel 前端资源配置教程
2019/10/18 PHP
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
jquery cookie的用法总结
2013/11/18 Javascript
JavaScript获取网页表单action属性的方法
2015/04/02 Javascript
javascript实现input file上传图片预览效果
2015/12/31 Javascript
功能强大的Bootstrap效果展示(二)
2016/08/03 Javascript
AngularJs ng-change事件/指令的用法小结
2017/11/01 Javascript
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
微信公众平台获取access_token的方法步骤
2019/03/29 Javascript
小程序登录/注册页面设计的实现代码
2019/05/24 Javascript
js实现打字小游戏
2019/12/17 Javascript
python 的列表遍历删除实现代码
2020/04/12 Python
基于python requests库中的代理实例讲解
2018/05/07 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
详解pytorch 0.4.0迁移指南
2019/06/16 Python
Pytorch之卷积层的使用详解
2019/12/31 Python
解决Python中报错TypeError: must be str, not bytes问题
2020/04/07 Python
Python3使用Selenium获取session和token方法详解
2021/02/16 Python
澳大利亚排名第一的在线酒类商店:MyBottleShop
2018/04/26 全球购物
女装和独特珠宝:Sundance Catalog
2018/09/19 全球购物
Osklen官方在线商店:巴西服装品牌
2019/04/25 全球购物
毕业生教师求职信
2013/10/20 职场文书
行政部主管岗位职责
2013/12/28 职场文书
设计师个人求职信范文
2014/02/02 职场文书
中学生获奖感言
2014/02/04 职场文书
圣诞晚会主持词
2015/07/01 职场文书
庆七一活动简报
2015/07/20 职场文书
成人成长感言如何写?
2019/08/16 职场文书
范文之农村基层党建工作报告
2019/10/24 职场文书
发工资啦!教你用Python实现邮箱自动群发工资条
2021/05/10 Python
利用Java设置Word文本框中的文字旋转方向的实现方法
2021/06/28 Java/Android