当前位置:首页 > 日记 > 正文

微信小程序 wx.login解密出现乱码的问题解决办法

微信小程序 wx.login解密出现乱码的问题解决办法

微信小程序 wx.login解密出现乱码的问题解决办法

最近在给公司开发微信小程序,需要用到微信登录,根据文档要求需要把获取的用户信息按照AES进行解密。

我使用的是官方提供的PHP demo,拷贝到程序中,测试发现,解密之后的数据前面有一串乱码。

 

类似于这样子的,前面一段是乱码。

 经过仔细的检查,发现官方的提供的demo中的帐号和机密之后的信息是可以解密的,这就说明解密代码是没有问题的。 

后来查询微信开发者社区,找到好多解密失败。其中一个回答说是因为多次调用wx.login之后导致的问题。

终于看到解决方案,于是赶紧去看我的代码。可是查找半天发现只调用了一次,根本不是这个问题。

有一次走到了死胡同,没办法了,还是看代码吧。

根据文档,应该是先调用wx.login(),成功之后再调用wx.getUserInfo(), 于是我就想,会不会是我把wx.getUserInfo()获取到的值没有正确的传给服务器呢?

既然不确定,那就得看看。于是,打印wx.getUserInfo()的返回值,是这样子的

 看到结果之后我就跟我的请求服务器的参数挨个对照,当看到encryptData时,发现了问题,文档上写的是应该把encryptedData的值用于解密,而我则是把encryptData的值

取出来了,所以解密结果就不正确了。

至此,发现问题,把参数改成encryptedData之后解密成功。

 总结一下问题: 由于wx.getUserInfo()返回值中encryptData和encryptedData参数名称过于相似,导致我用错变量,实在是不应该。

至于为什么微信要多返回一个没用的参数(目前还没发现它的作用),我就不知到了,而且文档上根本就没提到这个。

 

  希望大家编码的时候能够细心一点,不要犯我这样的错误。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

nodejs 子进程正确的打开方式

nodejs 子进程正确的打开方式

打开方式,子进程,正确,电脑软件,nodejs,因为库太拙了,需要在 nodejs 里调用子进程来获取数据。然而看到 child_process 的文档真是头疼,这么多种启动子进程的方法直接推到人面前,也没个解释,命名也十分无用。只能一个个地查看详细说明来找到应…

node.js实现回调的方法示例

node.js实现回调的方法示例

方法,回调,示例,电脑软件,node,本文实例讲述了node.js实现回调的方法。分享给大家供大家参考,具体如下:向回调函数传递额外的参数在调用函数中,使用匿名函数中实现需传递的参数,再次匿名函数内调用回调函数。var events = require("events");…

ps如何调整的色阶

ps如何调整的色阶

调整,方法,的色,图片,电脑软件,  图层的色阶在ps中经常会调节,这样可以调出好看的图片。其实这个也不算太难,下面就让小编告诉你ps如何调整图片的色阶的方法,一起学习吧。ps调整图片的色阶的方法1.选定要调整的图层,如下图:2.图像--调整--色阶…

JS中使用gulp实现压缩文件及浏览器

JS中使用gulp实现压缩文件及浏览器

热加载,压缩文件,浏览器,功能,电脑软件,gulp类似于grunt,都是基于Node.js的前端构建工具。不过gulp压缩效率更高。一.安装gulp  首先,你要安装过nodejs,如果没有安装过的同学请自行下载。 先再命令行里输入 npm install gulp -g 下载gu…

es6的数字处理的方法(5个)

es6的数字处理的方法(5个)

方法,数字处理,电脑软件,// Math.trunc方法用于去除一个数的小数部分,返回整数部分。 Math.trunc(4.1) // 4 Math.trunc(4.9) // 4 Math.trunc(-4.1) // -4 Math.trunc(-4.9) // -4 Math.trunc(NaN); // NaN Math.trunc('foo'); // NaN Ma…

如何将word2013转成PDF

如何将word2013转成PDF

转成,如何将,电脑软件,PDF,  我们在使用Word2013编辑好Word文档资料后,需要把文档资料转换成为PDF格式的文件。那么,在这种情况下我们应该怎样做呢?那么下面就由小编给大家分享下将word2013转成PDF的技巧,希望能帮助到您。将word2013转成PDF…

简述Ajax的优点与缺点

简述Ajax的优点与缺点

缺点,优点,电脑软件,Ajax,ajax的优点Ajax的给我们带来的好处大家基本上都深有体会,在这里我只简单的讲几点:1、最大的一点是页面无刷新,在页面内与服务器通信,给用户的体验非常好。2、使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅…

微信小程序实现放大预览功能

微信小程序实现放大预览功能

功能,程序,电脑软件,微信小,需求:当点击图片时,当前图片放大预览,且可以左右滑动实现方式:使用微信小程序图片预览接口我们可以看到api需要两个参数,分别通过下面的data-list和data-src来传到js中wxml代码:<!--图片描述--> <view wx:if="{{item.…

Fireworks如制作折叠效果的菜单

Fireworks如制作折叠效果的菜单

菜单,折叠,效果,电脑软件,Fireworks,现在菜单效果越来越炫,如何实现折叠的效果呢,就几步,很简单,下面我们来看看吧!步骤:1、&ldquo;文件&rdquo;----&ldquo;新建&rdquo;一个图形,尺寸是150x350,当然可以按照需要定义。2、选中左侧的&ldquo;矩形工具&…

怎么在word2007中设置大纲的级别wo

怎么在word2007中设置大纲的级别wo

设置,级别,操作方法,步骤,大纲,  在编辑文档的时候,目录有时是必不可少的一项,但在实际情况当中,那么今天小编就教你怎么在word2007中设置大纲的级别。word2007中设置大纲的级别的步骤选择&ldquo;视图&ldquo;选项卡word2007中设置大纲的级别…

Excel表格中RANK函数怎么做成绩排

Excel表格中RANK函数怎么做成绩排

函数,成绩排名,怎么做,表格,成绩,  当你用excel时需要根据成绩或者业绩进行排序的时候,你是否还在一个一个的比照呢,那样就太没效率了。以下是小编为您带来的关于Excel中RANK函数做成绩排名,希望对您有所帮助。Excel中RANK函数做成绩排名使…

PS图层模式中叠加是什么效果?

PS图层模式中叠加是什么效果?

叠加,图层,模式,效果,电脑软件,PS图层模式中叠加是什么效果?把放置或应用到一个层上的颜色同背景色进行混 合,然而,却能得到有趣的效果,下面我们来看看吧!步骤:1、选择&ldquo;渐变工具&rdquo;,并设置渐变色;2、填充渐变色;3、在文档中,用&ldquo;文…