微信小程序 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 新浪的一个图片播放图片轮换效果代码
Jul 15 Javascript
让alert不出现弹窗的两种方法
May 18 Javascript
win7下安装配置node.js+express开发环境
Dec 06 Javascript
深入理解Javascript中的自执行匿名函数
Jun 03 Javascript
javascript特效实现——当前时间和倒计时效果的简单实例
Jul 20 Javascript
AngularJS通过$sce输出html的方法
Sep 22 Javascript
微信小程序 闭包写法详细介绍
Dec 14 Javascript
详解Vue前端对axios的封装和使用
Apr 01 Javascript
JS原生瀑布流效果实现
Apr 26 Javascript
VUE.js实现动态设置输入框disabled属性
Oct 28 Javascript
JS实现随机点名器
Apr 12 Javascript
js实现车辆管理系统
Aug 26 Javascript
微信小程序 出现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
PHP脚本的10个技巧(1)
2006/10/09 PHP
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
PHP用mysql数据库存储session的代码
2010/03/05 PHP
php preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
微信支付开发订单查询实例
2016/07/12 PHP
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
简单实用的PHP文本缓存类实例
2019/03/22 PHP
基于JQuery的Pager分页器实现代码
2010/07/17 Javascript
Jquery插件分享之气泡形提示控件grumble.js
2014/05/20 Javascript
js判断登录与否并确定跳转页面的方法
2015/01/30 Javascript
Jquery Mobile 自定义按钮图标
2015/11/18 Javascript
Google 地图API资料整理及详细介绍
2016/08/06 Javascript
实现easyui的datagrid导出为excel的示例代码
2016/11/10 Javascript
ndm:NPM的桌面GUI应用程序
2018/10/15 Javascript
微信小程序 slot踩坑的解决
2019/04/01 Javascript
JS通过ajax + 多列布局 + 自动加载实现瀑布流效果
2019/05/30 Javascript
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
[47:53]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#2COL VS Spirit
2016/03/02 DOTA
在python中的socket模块使用代理实例
2014/05/29 Python
Python编写屏幕截图程序方法
2015/02/18 Python
python每隔N秒运行指定函数的方法
2015/03/16 Python
Python之自动获取公网IP的实例讲解
2017/10/01 Python
对Python中plt的画图函数详解
2018/11/07 Python
解决Python print输出不换行没空格的问题
2018/11/14 Python
python如何编写win程序
2020/06/08 Python
如何在mac版pycharm选择python版本
2020/07/21 Python
超30万乐谱下载:Musicnotes.com
2016/09/24 全球购物
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
伦敦剧院及景点门票:Encore Tickets
2018/07/01 全球购物
Ruby如何创建一个线程
2013/03/10 面试题
宿舍使用违章电器检讨书
2014/01/12 职场文书
酒店节能减排方案
2014/05/26 职场文书
幼儿教师自我剖析材料
2014/09/29 职场文书
党员批评与自我批评
2014/10/15 职场文书
上课说话检讨书
2015/01/27 职场文书
雷锋之歌观后感
2015/06/10 职场文书