微信小程序 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 相关文章推荐
jQuery源码分析-01总体架构分析
Nov 14 Javascript
使用jquery解析XML示例代码
Sep 05 Javascript
JS实现仿京东淘宝竖排二级导航
Dec 08 Javascript
node.js中的fs.stat方法使用说明
Dec 16 Javascript
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
May 09 Javascript
jQuery Dialog对话框事件用法实例分析
May 10 Javascript
js仿百度音乐全选操作
Jan 13 Javascript
面试常见的js算法题
Mar 23 Javascript
js中字符型和数值型数字的互相转化方法(必看)
Apr 25 Javascript
jquery.validate表单验证插件使用详解
Jun 21 jQuery
Javascript和jquery在selenium的使用过程
Oct 31 jQuery
2分钟实现一个Vue实时直播系统的示例代码
Jun 05 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中对xml读取的相关函数的介绍一
2008/06/05 PHP
php实现将数组转换为XML的方法
2015/03/09 PHP
php实现简单的语法高亮函数实例分析
2015/04/27 PHP
PHP变量赋值、代入给JavaScript中的变量
2015/06/29 PHP
PHP+MYSQL实现读写分离简单实战
2017/03/13 PHP
JavaScript Archive Network 集合
2007/05/12 Javascript
学习ExtJS(一) 之基础前提
2009/10/07 Javascript
jQuery下的几个你可能没用过的功能
2010/08/29 Javascript
SwfUpload在IE10上不出现上传按钮的解决方法
2013/06/25 Javascript
jQuery遍历对象、数组、集合实例
2014/11/08 Javascript
原生javascript实现Tab选项卡切换功能
2015/01/12 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
vue.js事件处理器是什么
2017/03/20 Javascript
JS控件bootstrap datepicker使用方法详解
2017/03/25 Javascript
Angularjs中使用指令绑定点击事件的方法
2017/03/30 Javascript
基于javascript的异步编程实例详解
2017/04/10 Javascript
React router动态加载组件之适配器模式的应用详解
2018/09/12 Javascript
jquery html添加元素/删除元素操作实例详解
2020/05/20 jQuery
如何HttpServletRequest文件对象并储存
2020/08/14 Javascript
解决vue与node模版引擎的渲染标记{{}}(双花括号)冲突问题
2020/09/11 Javascript
python实现爬虫下载美女图片
2015/07/14 Python
python抓取并保存html页面时乱码问题的解决方法
2016/07/01 Python
对Matlab中共轭、转置和共轭装置的区别说明
2020/05/11 Python
Python 制作查询商品历史价格的小工具
2020/10/20 Python
英国历史最悠久的DJ设备供应商:DJ Finance、DJ Warehouse、The DJ Shop
2019/09/04 全球购物
幼儿园小班评语
2014/04/18 职场文书
医院党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
建议书范文
2015/02/05 职场文书
海底两万里读书笔记
2015/06/26 职场文书
信息简报范文
2015/07/21 职场文书
2016大学军训心得体会
2016/01/11 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书
《合作意向书》怎么写?
2019/08/20 职场文书
JS如何实现基于websocket的多端桥接平台
2021/05/14 Javascript
Python语言内置数据类型
2022/02/24 Python