小程序
小游戏
企业微信
微信支付
扫描小程序码分享
服务端语言:php
在小程序和服务端代码没有问题的情况下,为什么有时解密用户信息的时候会报41003的错误?
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
session_key、encryptedData、iv一定要严格对应,可能是你的前端获取encryptedData、iv到后端生成session_key的方法是点击授权按钮以后再用授权接口获取,所以其实生成了两个session_key。一般情况下是可以用的,但是有时微信只同步到了第一个session_key所以你获取的session_key是无效的。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
我就是用的button 组件的 open-type="getUserInfo"去获取的用户信息,这个信息中有一个加密字符串encryptedData,也没有看到有session_key,session_key不是后端服务器在解密过程中生成的吗?
不好意思我解释一下,session_key是通过appId和appScret在后端生成的,它会和encryptedData、iv对应。如果你只生成了一次encryptedData、iv,那么对应这个事件去生成的session_key应该是可用的,所以有可能是后端生成session_key的机制并不是完全根据你的登录事件导致的。
我现在频繁的去登录进行测试,有时候几次就报一次这个错误,有时候几十次才报一次,就是有这么一个不确定因素。
我看很多博客说是iv这个参数前端生成的时候包含空格就会出现这个错误,在服务端把空格转换成+号就可以了;
我也对iv做了这个处理,所以也打印出来看了一下iv参数的差异;
LPnlKYveLLdSla9JBn0LZQ== (这个是未做处理的iv)LPnlKYveLLdSla9JBn0LZQ==---报错了 (这个是做了处理的iv)
但是,经过打印出来的iv比如发现:并非网上说的iv有空格就会报错;因为在下面的那个iv并没有出现+号
针对于这个问题你是否有什么解决方案没有?
有的,把错误抛会给前端,让前端调用登录接口,重新获取encryptedData、iv,然后给后端再重试,初次重试为半秒等待,每次重试等待时间翻倍,重试3-10次后放弃。
谢了,目前也没有看到有别的方面的解决方案,貌似也的确只能这样处理了
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
session_key、encryptedData、iv一定要严格对应,可能是你的前端获取encryptedData、iv到后端生成session_key的方法是点击授权按钮以后再用授权接口获取,所以其实生成了两个session_key。一般情况下是可以用的,但是有时微信只同步到了第一个session_key所以你获取的session_key是无效的。
我就是用的button 组件的 open-type="getUserInfo"去获取的用户信息,这个信息中有一个加密字符串encryptedData,也没有看到有session_key,session_key不是后端服务器在解密过程中生成的吗?
不好意思我解释一下,session_key是通过appId和appScret在后端生成的,它会和encryptedData、iv对应。如果你只生成了一次encryptedData、iv,那么对应这个事件去生成的session_key应该是可用的,所以有可能是后端生成session_key的机制并不是完全根据你的登录事件导致的。
我现在频繁的去登录进行测试,有时候几次就报一次这个错误,有时候几十次才报一次,就是有这么一个不确定因素。
我看很多博客说是iv这个参数前端生成的时候包含空格就会出现这个错误,在服务端把空格转换成+号就可以了;
我也对iv做了这个处理,所以也打印出来看了一下iv参数的差异;
但是,经过打印出来的iv比如发现:并非网上说的iv有空格就会报错;因为在下面的那个iv并没有出现+号
针对于这个问题你是否有什么解决方案没有?
有的,把错误抛会给前端,让前端调用登录接口,重新获取encryptedData、iv,然后给后端再重试,初次重试为半秒等待,每次重试等待时间翻倍,重试3-10次后放弃。
谢了,目前也没有看到有别的方面的解决方案,貌似也的确只能这样处理了