JeffreySu / WeiXinMPSDK

微信全平台 .NET SDK, Senparc.Weixin for C#,支持 .NET Framework 及 .NET Core、.NET 8.0。已支持微信公众号、小程序、小游戏、微信支付、企业微信/企业号、开放平台、JSSDK、微信周边等全平台。 WeChat SDK for C#.
https://weixin.senparc.com
Apache License 2.0
8.47k stars 4.36k forks source link

关于UserApi.Info的问题 #399

Closed justwezzz closed 7 years ago

justwezzz commented 7 years ago

你好,我现在在调用UserApi.Info的时候发现一个问题,就是在我初始化程序后第一次调用UserApi.Info与后面再次调用UserApi.Info拿到的结果不一样,后来调试了一下发现是微信的服务器返回的结果好像就有点问题。

具体问题的截图如下: 1. 1 2. 2 3. 3

重现步骤如下: 1.重启iis 2.第一次调用UserApi.Info,返回access_token信息 3.第二次调用UserApi.Info,返回userInfo信息

JeffreySu commented 7 years ago

你仔细看一下,第一次应该是执行了2次接口,第一次调用accesstoken,第二次常规的info,这个是SDK的AccessTokenContainer机制,发现你还没有缓存accesstoken,会自动帮你获取,获取之后下次就自动使用缓存了。

你应该使用的是本机缓存吧?如果是分布式的一般不会受IIS重启影响。

谢谢。

justwezzz commented 7 years ago

@JeffreySu 你看看第二张截图,那是iis重启后第一次执行接口触发了SDK的AccessTokenContainer机制,第一个请求是获取accesstoken的这个我理解,但是获取完accesstoken紧接着会调用user/info接口,但是从图二可以看出user/info接口的返回值明显是accesstoken接口的返回值。

justwezzz commented 7 years ago

@JeffreySu 好吧,突然发现这个现象跟我本机装的一个叫adbyby的屏蔽广告的软件有关,它缓存了accesstoken接口的结果,并在第一次调用user/info接口的时候把缓存的结果直接返回过来了。这个问题是我本机的环境问题,sorry。