jfinal weixin AccessTokenApi刷新的问题

我在用jfinal weixin的时候,遇到了一个问题,周期的去取数据,会提示40001的错误,access_token错误。

我看了一下源码,文DefaultAccessTokenCache里面的remove方法没人调用,是不是意味着超时之后并没有更新缓存呢?

这是一个bug吗?手动调用AccessTokenApi.refreshAccessToken();能解决问题吗?


评论区

lyh061619

2018-01-09 23:47

这个问题,你应该是在本地access_token失效前提前去多远程服务器上获取access_token,这样就能确保你服务器的这个access_token是永久的生效,不然失效后你才去拿会造成访问access_token无效,访问中断的。

lyh061619

2018-01-09 23:50

这个需求你自己做个定时器,然后根据微信官方文档说明access_token的默认生效时间是多长,然后在这个生效时间内用自己的定时器去提前获取最新的access_token替换旧的access_token,这样就行了。

Dreamlu

2018-01-10 09:17

不需要,提示40001的错误证明在刷新老AccessToken(排除别的服务器或者本地把它刷新掉的情况)。remove方法是留着用户自行扩展的。

赵春辉

2018-01-10 09:25

@lyh061619 谢谢,我试一下。

赵春辉

2018-01-10 19:22

手动调用AccessTokenApi.refreshAccessToken()已解决此问题

lyh061619

2018-01-10 21:58

@赵春辉 记得这个过期时间,微信官方文档有说这个tokenl默认生成时间是7200秒也就是两个小时,在这两个小时能确保不过期你得自己做个定时器提交去刷新获取就成了。

热门反馈

扫码入社