微信小程序 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 相关文章推荐
javascript fullscreen全屏实现代码
Apr 09 Javascript
用jquery存取照片的具体实现方法
Jun 30 Javascript
使用CamanJS在Web页面上处理图像的技巧
Aug 18 Javascript
Angular2搜索和重置按钮过场动画
May 24 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
Jul 18 Javascript
Angularjs实现上传图片预览功能
Sep 01 Javascript
Node.js dgram模块实现UDP通信示例代码
Sep 26 Javascript
JavaScript基于数组实现的栈与队列操作示例
Dec 22 Javascript
JavaScript函数的4种调用方法实例分析
Mar 05 Javascript
微信小程序实现带参数的分享功能(两种方法)
May 17 Javascript
vue柱状进度条图像的完美实现方案
Aug 26 Javascript
JavaScript和TypeScript中的void的具体使用
Sep 12 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
Sony CFR 320 修复改造
2020/03/14 无线电
PHP 可阅读随机字符串代码
2010/05/26 PHP
PHP $_FILES函数详解
2011/03/09 PHP
thinkPHP实现瀑布流的方法
2014/11/29 PHP
php绘制一条弧线的方法
2015/01/24 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
2016/09/22 PHP
IE中直接运行显示当前网页中的图片 推荐
2006/08/31 Javascript
符合标准的js表单提交的代码
2007/09/13 Javascript
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
提高jQuery性能的十个诀窍
2013/11/14 Javascript
jQuery中dequeue()方法用法实例
2014/12/29 Javascript
JavaScript、jQuery与Ajax的关系
2016/01/24 Javascript
JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍
2016/05/19 Javascript
js自定义瀑布流布局插件
2017/05/16 Javascript
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
2018/10/31 Javascript
Nodejs中获取当前函数被调用的行数及文件名详解
2018/12/12 NodeJs
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
2018/12/12 Javascript
详解用Webpack与Babel配置ES6开发环境
2019/03/12 Javascript
vue 集成jTopo 处理方法
2019/08/07 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
Vue-cli 移动端布局和动画使用详解
2020/08/10 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
[04:09]2014DOTA2国际邀请赛Ti西雅图 历届冠军相继出局 BBC综述今日比赛
2014/07/20 DOTA
python获取当前用户的主目录路径方法(推荐)
2017/01/12 Python
快速实现基于Python的微信聊天机器人示例代码
2017/03/03 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
什么是规则表达式
2012/05/03 面试题
工程项目建议书范文
2014/03/12 职场文书
小学优秀班集体申报材料
2014/05/25 职场文书
反四风个人对照检查材料思想汇报
2014/09/25 职场文书
股权转让协议书
2014/12/07 职场文书
Vue3中的Refs和Ref详情
2021/11/11 Vue.js