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.43k stars 4.35k forks source link

AccessToken的过期时间好像没有刷到缓存里去 #2390

Open bestjkf opened 3 years ago

bestjkf commented 3 years ago

此版块专为反馈 bug 及提交需求服务,不负责解答开发问题,请勿发表开发问题, 如果您需要这方面的帮助,请移步问答社区https://weixin.senparc.com/QA

问题描述

image

这里计算了过期时间后,后续代码没有看到有更新到缓存中的操作,导致每次都会去获取新的token。是有其它设计考虑还是有什么我没有看到的地方做了这一步吗?

重现问题步骤(如果可以)
微信官方文档 URL
微信官方文档快照(直接复制关键内容到下方)
发现问题的模块
模块对应的 .net 版本
开发环境
缓存环境
系统环境
联系方式

Email:

(也可将问题地址及联系方式发送到 www.jeffrey.su@gmail.com)

发布问题后,请保持对 issue 的关注,有时会有需要进一步沟通的信息,很长时间内没有得到答复的 issue 将被关闭。

JeffreySu commented 3 years ago

缓存中只要是正确获取了AccessToken,是会一起记录有过期时间的,并且过期时间会自动管理,你不需要关心。。如果每次都去获取AccessToken,应该是缓存没有命中的问题,需要查一下缓存的读写是否正常。

JeffreySu commented 3 years ago

我了一下您的代码,可能不是最新的,最新的有更新的命令:

image

https://github.com/JeffreySu/WeiXinMPSDK/blob/fa4b15d52af652196d5c988c9990f6bedd78e4c5/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Containers/AccessTokenContainer.cs#L209

a157147899 commented 3 years ago

我了一下您的代码,可能不是最新的,最新的有更新的命令:

image

https://github.com/JeffreySu/WeiXinMPSDK/blob/fa4b15d52af652196d5c988c9990f6bedd78e4c5/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Containers/AccessTokenContainer.cs#L209

@JeffreySu Hi Jeffrey, 另外一个小问题。看到这里只是判断了token的过期时间,如果是微信端主动将token过期的情况下,是不是只能在调用具体API时来catch对应的error code判断是token过期继而再主动获取新的token?

JeffreySu commented 3 years ago

我了一下您的代码,可能不是最新的,最新的有更新的命令: image https://github.com/JeffreySu/WeiXinMPSDK/blob/fa4b15d52af652196d5c988c9990f6bedd78e4c5/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Containers/AccessTokenContainer.cs#L209

@JeffreySu Hi Jeffrey, 另外一个小问题。看到这里只是判断了token的过期时间,如果是微信端主动将token过期的情况下,是不是只能在调用具体API时来catch对应的error code判断是token过期继而再主动获取新的token?

对,这是一种方法,这个过程是自动的。从另外一个角度说,你不需要刻意去调用,任意一次调用API,一旦发现过期,都会自动重新获取 AccessToken,所以实际开发过程中可以不用考虑这个问题。