微信小程序 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 相关文章推荐
用ASP将SQL搜索出来的内容导出为TXT的代码
Jul 27 Javascript
lib.utf.js
Aug 21 Javascript
js 模拟实现类似c#下的hashtable的简单功能代码
Jan 24 Javascript
jQuery插件开发详细教程
Jun 06 Javascript
jquery用data方法获取某个元素上的事件
Jun 23 Javascript
JavaScript sort数组排序方法和自我实现排序方法小结
Jun 06 Javascript
原生JS实现匀速图片轮播动画
Oct 18 Javascript
jQuery zTree插件使用简单教程
Aug 16 jQuery
解决layer 关闭当前弹窗 关闭遮罩层 input值获取不到的问题
Sep 25 Javascript
vue实现移动端省市区选择
Sep 27 Javascript
vue实现配置全局访问路径头(axios)
Nov 01 Javascript
微信小程序商品详情页底部弹出框
Nov 22 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
我常用的几个类
2006/10/09 PHP
PHP连接Access数据库的方法小结
2013/06/20 PHP
YII2自动登录Cookie总是失效的解决方法
2017/06/28 PHP
Convert Seconds To Hours
2007/06/16 Javascript
javascript同步Import,同步调用外部js的方法
2008/07/08 Javascript
js保存当前路径(cookies记录)
2010/12/14 Javascript
用html5 js实现点击一个按钮达到浏览器全屏效果
2014/05/28 Javascript
a标签click和href执行顺序探讨
2014/06/23 Javascript
javascript常用方法总结
2015/05/14 Javascript
基于JS快速实现导航下拉菜单动画效果附源码下载
2016/10/27 Javascript
vue基础之事件v-onclick="函数"用法示例
2019/03/11 Javascript
微信小程序tabBar 返回tabBar不刷新页面
2019/07/25 Javascript
使用localStorage替代cookie做本地存储
2019/09/25 Javascript
解决vue-router 嵌套路由没反应的问题
2020/09/22 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
python每次处理固定个数的字符的方法总结
2013/01/29 Python
Python中获取网页状态码的两个方法
2014/11/03 Python
CentOS7.3编译安装Python3.6.2的方法
2018/01/22 Python
python2.7 json 转换日期的处理的示例
2018/03/07 Python
python 统计数组中元素出现次数并进行排序的实例
2018/07/02 Python
Django之Mode的外键自关联和引用未定义的Model方法
2018/12/15 Python
判断python对象是否可调用的三种方式及其区别详解
2019/01/31 Python
python的依赖管理的实现
2019/05/14 Python
Python的Tkinter点击按钮触发事件的例子
2019/07/19 Python
Python3进制之间的转换代码实例
2019/08/24 Python
解决tensorflow训练时内存持续增加并占满的问题
2020/01/19 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
python中常见错误及解决方法
2020/06/21 Python
你需要学会的8个Python列表技巧
2020/06/24 Python
澳大利亚设计的婴儿和女孩的衣服:Oobi
2018/12/16 全球购物
厨师岗位职责
2013/11/12 职场文书
工作表现评语
2014/01/19 职场文书
小学生感恩演讲稿
2014/04/25 职场文书
工程合作意向书范本
2015/05/09 职场文书
用人单位的规章制度,怎样制定才是有效的?
2019/07/09 职场文书
2019年XX公司的晨会制度及流程!
2019/07/23 职场文书