解决了,各位。 先说结论:确实是自身代码的问题,并非微信的问题(最开始工程中使用的一个通用的工具类中使用静态变量,因为静态的变量只有一份,是共用的,并且在使用中又对其进行了修改!!! 并发上来的时候都不知道谁拿到的谁的了,服了这个写代码的老六了) 帖子里都是说个人代码问题啥的,没用,需要的是解决问题的思路,而不是谁对错的问题 解决思路: 之前最大的疑问点是不知道微信颁发的这个code是谁的,到底应该得到哪个openId。后来找到可以通过微信提供的(wx.getRealtimeLogManager)实时日志功能,把你想打印的日志推送到微信中,这个微信实时日志最大的好处是你可以只打印你的报文,他是知道这个报文是通过哪个openId上来的,这样我们就能确定某个code到底属于谁,然后根据code 在去查微信得到的openId对不对应(应该都是对的上的,那就借助这个日志打印工具看看自己在哪里出现的问题,慢慢缩小范围,定位问题) 微信日志分析入口 https://wedata.weixin.qq.com/mp2/login 排查问题的示例图 [图片] [图片]
根据code异常获取到了不属于他的openId根据小程序获取到的code获取微信用户的openId, 在2023-12-25 14:33分左右,通过code:0e1mtbGa161BCG0EkYGa1EkhV82mtbGl,得到了一个OpenId:ohhbO5V-_RhNn2pFvCleqi0d0wGo 在当天16:49 左右,通过code:0d1CmW0w3e3sX13JmK0w3gL1eO3CmW09,同样也得到了上面的OpenId 但是这应该是分别两个不同的人进行发起的,不应该得到同一个OpenId才对,我查看了一下两个发起者的信息,分别属于不同的UA与IP地址(因为code 是微信提供的我无法确定发起者的微信真实身份,但是按照我们的逻辑与应用场景来说,肯定是两个不同的人) 这是一个偶发性的,概率很低,请管理员进行核实一下,是否存在上面描述的问题,感谢! appId:wx00a6d2bbd6cf9160
02-18楼主有解决方法了吗,我也遇到了,低概率出现的,代码看不出问题,一个code 传到后端直接请求微信解析,解析出来的就不对了,无解~
根据code获取顾客openid,不同顾客code 得到的openid相同,微信返回的值是否有问题?https://api.weixin.qq.com/sns/jscode2session 接口,不同顾客的code,返回的openid 存在相同的情况 会偶发的出现此状况,看代码未发现原因,不知道是什么情况造成的 附 相关日志 Dec 18, 2023 @ 11:33:19.835 code:0c1ejT0w3XMyT13EQD1w33SXzt0ejT0Z,获取的accessTokenResData.getOpenid():oLgMz5bg1PJczViZCpnRyco-xZgw Dec 18, 2023 @ 11:33:19.178 code:0b1K68ml2qZjyc4mggnl2v54jN1K68mC,获取的accessTokenResData.getOpenid():oLgMz5bg1PJczViZCpnRyco-xZgw Dec 18, 2023 @ 11:33:19.031 code:0c1yg8000yD4fR1As9300tYchV1yg804,获取的accessTokenResData.getOpenid():oLgMz5bg1PJczViZCpnRyco-xZgw Dec 18, 2023 @ 11:33:18.909 code:0c1hUmHa1RZPxG0GzzJa1Y1rLV2hUmHC,获取的accessTokenResData.getOpenid():oLgMz5bg1PJczViZCpnRyco-xZgw
01-02请问解决了吗
jscode2session同一微信用户在同一个小程序下返回了不同的openid?使用wx.login()获取code然后调用auth.code2Session拿到openid,unionid,session_key。发现同一用户返回了不用的openId,这边是在微信一键授权后调用服务端api解密手机号时发现的。 [图片] 然后根据openid找到了相应的jscode2session日志(app secret替换成xxxx) INFO 2022-07-12 11:37:12,817 [qtp1221840893-1955] wxLogger - 菠菜+小程序获取SessionKey URL: https://api.weixin.qq.com/sns/jscode2session?appid=wx2fe2b278af60777f&secret=xxxx&js_code=0317uIll29fkw94GDTnl2HGEM217uIlL&grant_type=authorization_code INFO 2022-07-12 11:37:12,818 [qtp1221840893-1955] wxLogger - 菠菜+小程序获取SessionKey结果: {"session_key":"f4iL9rLZq4tNJH+XJfRwvw==","expires_in":7200,"openid":"oKUfx0MUBwQRIz0XA6L0VajeJyic","unionid":"oY0ywsyeA9qb1NVolKGUVM8bzxqo"} INFO 2022-07-12 11:37:36,512 [qtp1221840893-88] wxLogger - 菠菜+小程序获取SessionKey URL: https://api.weixin.qq.com/sns/jscode2session?appid=wx2fe2b278af60777f&secret=xxxx&js_code=001aRi1w3gC5PY22hA1w3gEl0k4aRi1T&grant_type=authorization_code INFO 2022-07-12 11:37:36,512 [qtp1221840893-88] wxLogger - 菠菜+小程序获取SessionKey结果: {"session_key":"SYuSooXq8pn7Fam2oSyhRw==","expires_in":7200,"openid":"oKUfx0DnujKq7wiVTZ3kRDGysvkU","unionid":"oY0yws_Dhxt-VQwwkObj8ryM41j8"} 请帮忙查看下是什么情况?
01-02楼主解决这个问题了吗,请解答
/sns/component/jscode2session 获取的openid不正确开放平台第三方平台帮小程序获取openid的时候,出现了问题,有偶然性的出现获取openid 一样的情况。查了很多天,应该不是我们自己代码的问题。因为发起请求的时候,每个请求客户端的ip不一样,说明不是一个设备上的请求。比如下面这几个接口,返回的内容一样的。 https://api.weixin.qq.com/sns/component/jscode2session?appid=wx6e4a6b9beaad81ad&js_code=021NzKkl2gbWN54fdvml2X8P6e1NzKk6&grant_type=authorization_code&component_appid=wxa2ec950ad1539de4&component_access_token=38_iKDts5X7GkRUs6QopMKOYA2LnHsg2-rgXq9ZisS1YlHhb6xZI3JCEVnBdUs-Ps50iVwVJle2TcnkOMzmRUkE0BgmJNpwz9DlrtKG4FYl8U9hNm25LYgwJZ-gKrRL5aXX5I_VXCoom1pBAh7SMUJbAIAAIX 返回值:{"session_key":"GH2YJYUETA\/cgWzi6WD5\/w==","openid":"or5cK4wJD5kT153a_9S0sS-biMa4"} https://api.weixin.qq.com/sns/component/jscode2session?appid=wx6e4a6b9beaad81ad&js_code=001aWk0w3owm8V2WQZ1w3Saypx1aWk0v&grant_type=authorization_code&component_appid=wxa2ec950ad1539de4&component_access_token=38_iKDts5X7GkRUs6QopMKOYA2LnHsg2-rgXq9ZisS1YlHhb6xZI3JCEVnBdUs-Ps50iVwVJle2TcnkOMzmRUkE0BgmJNpwz9DlrtKG4FYl8U9hNm25LYgwJZ-gKrRL5aXX5I_VXCoom1pBAh7SMUJbAIAAIX 返回值:{"session_key":"GH2YJYUETA\/cgWzi6WD5\/w==","openid":"or5cK4wJD5kT153a_9S0sS-biMa4"}; https://api.weixin.qq.com/sns/component/jscode2session?appid=wx6e4a6b9beaad81ad&js_code=051gE1ll2SPFN54tp5ml2k0Rye2gE1lk&grant_type=authorization_code&component_appid=wxa2ec950ad1539de4&component_access_token=38_iKDts5X7GkRUs6QopMKOYA2LnHsg2-rgXq9ZisS1YlHhb6xZI3JCEVnBdUs-Ps50iVwVJle2TcnkOMzmRUkE0BgmJNpwz9DlrtKG4FYl8U9hNm25LYgwJZ-gKrRL5aXX5I_VXCoom1pBAh7SMUJbAIAAIX 返回值:{"session_key":"GH2YJYUETA\/cgWzi6WD5\/w==","openid":"or5cK4wJD5kT153a_9S0sS-biMa4"}; https://api.weixin.qq.com/sns/component/jscode2session?appid=wx6e4a6b9beaad81ad&js_code=051W3p000Tc3tK1gME100cydoH3W3p0g&grant_type=authorization_code&component_appid=wxa2ec950ad1539de4&component_access_token=38_iKDts5X7GkRUs6QopMKOYA2LnHsg2-rgXq9ZisS1YlHhb6xZI3JCEVnBdUs-Ps50iVwVJle2TcnkOMzmRUkE0BgmJNpwz9DlrtKG4FYl8U9hNm25LYgwJZ-gKrRL5aXX5I_VXCoom1pBAh7SMUJbAIAAIX 返回值 {"session_key":"GH2YJYUETA\/cgWzi6WD5\/w==","openid":"or5cK4wJD5kT153a_9S0sS-biMa4"}; 这几个接口不是同一个人发起的,但是结果完全一样。能确定的是每个请求的用户实际上都是不一样的。 通过客户端ip判断的。
01-02