小程序
小游戏
企业微信
微信支付
扫描小程序码分享
接口返回java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
原文地址:https://pengshiyu.blog.csdn.net/article/details/122616464?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-122616464-blog-131115516.235%5Ev40%5Epc_relevant_3m_sort_dl_base3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-122616464-blog-131115516.235%5Ev40%5Epc_relevant_3m_sort_dl_base3&utm_relevant_index=2
发现每次登录,第一次都会解密失败,第二次就成功了?
此时,是先点击的获取用户信息,再进行登录。
逻辑是不对的,因为获取手机号之后才进行的登录
第一次获取手机号,微信使用的是当前session_key对手机号信息进行加密,而我们的session_key还是空的,或者用户之前登录过,那么session_key就是上一次登录的状态。解密失败。
第二次获取手机号,我们通过上次登录,获取了最新的session_key,服务端也存了同样的一份session_key, 微信加密和我们服务器解密使用的是同一份数据。解密成功。
知道了登录的问题所在,当用户授权之前,应该使得服务端session_key 和 当前session_key保持一致。
服务端session_key
当前session_key
微信基础库 2.21.2 开始 提供了新的获取手机号接口,通过动态令牌code就能换取用户手机号信息,能避免使用session_key不一致的问题。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
原文地址:https://pengshiyu.blog.csdn.net/article/details/122616464?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-122616464-blog-131115516.235%5Ev40%5Epc_relevant_3m_sort_dl_base3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-122616464-blog-131115516.235%5Ev40%5Epc_relevant_3m_sort_dl_base3&utm_relevant_index=2
发现每次登录,第一次都会解密失败,第二次就成功了?
此时,是先点击的获取用户信息,再进行登录。
逻辑是不对的,因为获取手机号之后才进行的登录
第一次获取手机号,微信使用的是当前session_key对手机号信息进行加密,而我们的session_key还是空的,或者用户之前登录过,那么session_key就是上一次登录的状态。解密失败。
第二次获取手机号,我们通过上次登录,获取了最新的session_key,服务端也存了同样的一份session_key, 微信加密和我们服务器解密使用的是同一份数据。解密成功。
知道了登录的问题所在,当用户授权之前,应该使得
服务端session_key
和当前session_key
保持一致。解决方法二:
微信基础库 2.21.2 开始 提供了新的获取手机号接口,通过动态令牌code就能换取用户手机号信息,能避免使用session_key不一致的问题。