微信小程序 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代码
Jan 28 Javascript
jQuery.Autocomplete实现自动完成功能(详解)
Jul 13 Javascript
打造基于jQuery的高性能TreeView(asp.net)
Feb 23 Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
Jul 27 Javascript
jQuery中append()方法用法实例
Jan 08 Javascript
jQuery聚合函数实例
May 21 Javascript
jquery.validate使用时遇到的问题
May 25 Javascript
jQuery 调用WebService 实例讲解
Jun 28 Javascript
深入浅析javascript中的作用域(推荐)
Jul 19 Javascript
微信小程序 progress组件详解及实例代码
Oct 25 Javascript
vue 解决form表单提交但不跳转页面的问题
Oct 30 Javascript
canvas 中如何实现物体的框选
Aug 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运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
探讨Hessian在PHP中的使用分析
2013/06/13 PHP
PHP ob缓存以及ob函数原理实例解析
2020/11/13 PHP
javascript RadioButtonList获取选中值
2009/04/09 Javascript
javascript iframe编程相关代码
2009/12/28 Javascript
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
2011/09/26 Javascript
用box固定长宽实现图片自动轮播js代码
2014/06/09 Javascript
JS实现跟随鼠标闪烁转动色块的方法
2015/02/26 Javascript
javascript图片切换综合实例(循环切换、顺序切换)
2016/01/13 Javascript
jquery实现自适应banner焦点图
2017/02/16 Javascript
解析NodeJS异步I/O的实现
2017/04/13 NodeJs
JavaScript之map reduce_动力节点Java学院整理
2017/06/29 Javascript
jQuery选择器_动力节点Java学院整理
2017/07/05 jQuery
Vue的轮播图组件实现方法
2018/03/03 Javascript
JavaScript数据结构与算法之二叉树插入节点、生成二叉树示例
2019/02/21 Javascript
微信小程序实现音乐播放页面布局
2020/12/11 Javascript
python中while循环语句用法简单实例
2015/05/07 Python
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
python 给DataFrame增加index行名和columns列名的实现方法
2018/06/08 Python
python如何用matplotlib创建三维图表
2021/01/26 Python
大学生自我鉴定
2013/12/16 职场文书
同事打架检讨书
2014/02/04 职场文书
陈欧广告词
2014/03/14 职场文书
幼儿教师暑期培训方案
2014/08/27 职场文书
慈善捐赠倡议书
2014/08/30 职场文书
献爱心大型公益活动策划方案
2014/09/15 职场文书
师德师风建设整改措施思想汇报
2014/10/11 职场文书
道路交通事故赔偿协议书
2014/10/24 职场文书
营销计划书
2015/01/17 职场文书
杭白菊导游词
2015/02/10 职场文书
公文格式,规则明细(新手收藏)
2019/07/23 职场文书
Java Shutdown Hook场景使用及源码分析
2021/06/15 Java/Android
浅谈哪个Python库才最适合做数据可视化
2021/06/28 Python
MySQL利用UNION连接2个查询排序失效详解
2021/11/20 MySQL
教你使用Jenkins集成Harbor自动发布镜像
2022/04/03 Servers