2020-04-28 20:05
access token 值已被 jfinal weixin 按照微信官方缓存 7200 秒,只要没有别的地方使用你当前用的这个微信公众号的 appId 去申请 access token ,就不会有问题
所有出问题的都是 "多处" 共用了同一个 appId 去申请了 access token, 而 access token 永远只有最后一个申请到的值有效,以上所说的 "多处" 多数是下面的情况:
1:两个或多个开发者使用了同一个 appId 在同一时间内在开发
2:两个或多个程序使用同一个 appId 在运行
总之你记住, 同一个 appId 获取到的 access token 永远只有最后一个申请到的有效
这种问题不要找 jfinal weixin 的麻烦,jfinal weixin 开源六七年了, access token 是最基本的东西,jfinal weixin 不可能犯这种低级错误
多处共享同一个 appId 的场景,jfinal weixin 已经给了解决方案:
https://gitee.com/jfinal/jfinal-weixin/blob/master/src/main/java/com/jfinal/weixin/demo/WeixinConfig.java
注意看上面源码中的这两行代码:
String onLineTokenUrl = "http://localhost/weixin/api/getToken";
ApiConfigKit.setAccessTokenCache(new LocalTestTokenCache(onLineTokenUrl));
上面的配置就可以在本地开发时与线上共享同一个 appId 的 access token 值
2020-04-25 12:28
@小胖 已决定将该功能添加到 jfinal undertow 2.1 中去:
https://gitee.com/jfinal/jfinal-undertow/issues/I1FIBH
2020-04-24 18:36
@zzutligang 配置不可能解决所有问题,尤其是低概率需求的事情做成配置很不划算也不现实
这已经是最正宗的解决方案,configHandler 本身就是留给扩展用的