binarywang / weixin-java-miniapp-demo

基于Spring Boot 和 WxJava 实现的微信小程序Java后端Demo
1.32k stars 669 forks source link

微信accesstoken是不是会过期 #63

Open gp2852 opened 1 year ago

gp2852 commented 1 year ago

你好,我用的版本是 `

com.github.binarywang
        <artifactId>weixin-java-miniapp</artifactId>
        <version>4.4.4.B</version>
    </dependency>`
    目前是将accesstoken存储在redis中,过期时间是7200秒;但是请求微信接口的时候时不时会报accesstoken过期,但是redis中accesstoken未过期(有时候还剩6000多秒),一天会出现两三次这种情况,每次都必须手动删除redis数据

` @Data @Configuration @ConfigurationProperties(prefix = "wx.login") public class WxMiniAppConfig {

private String appId;
private String appSecret;

private static final String keyPrefix = "miniapp:wx";

@Resource
private RedissonClient redissonClient;

/**
 *  单机版
 * @return
 */
//@Bean
//public WxMaConfig wxMaConfig() {
//    WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
//    config.setAppid(appId);
//    config.setSecret(appSecret);
//    return config;
//}

/**
 * 分布式版
 *
 * @return
 */
@Bean
public WxMaConfig wxMaConfig() {
    WxMaDefaultConfigImpl config = new WxMaRedissonConfigImpl(redissonClient, keyPrefix);
    config.setAppid(appId);
    config.setSecret(appSecret);
    config.setExpiresTime(60*60);
    return config;
}

@Bean
public WxMaService wxMaService(WxMaConfig maConfig) {
    WxMaService service = new WxMaServiceImpl();
    service.setWxMaConfig(maConfig);
    return service;
}

} ` 我在配置文件中设置redis过期时间为1小时,但是这个设置没有起作用,目前已排除了其他程序同时在请求小程序的accesstoken;