diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/message/WxCpMessage.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/message/WxCpMessage.java index 6a02ef1fd..244e7fed0 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/message/WxCpMessage.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/message/WxCpMessage.java @@ -52,12 +52,12 @@ public class WxCpMessage implements Serializable { * enable_id_trans * 表示是否开启id转译,0表示否,1表示是,默认0 */ - private Boolean enableIdTrans; + private Boolean enableIdTrans = false; /** * enable_duplicate_check * 表示是否开启重复消息检查,0表示否,1表示是,默认0 */ - private Boolean enableDuplicateCheck; + private Boolean enableDuplicateCheck = false; /** * duplicate_check_interval * 表示是否重复消息检查的时间间隔,默认1800s,最大不超过4小时 diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpTpDefaultConfigImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpTpDefaultConfigImpl.java index 0395c6ef9..d7ed173be 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpTpDefaultConfigImpl.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpTpDefaultConfigImpl.java @@ -244,13 +244,15 @@ public class WxCpTpDefaultConfigImpl implements WxCpTpConfigStorage, Serializabl Long expire = authCorpAccessTokenExpireTimeMap.getOrDefault(authCorpId, 0L); WxAccessToken accessTokenEntity = new WxAccessToken(); accessTokenEntity.setAccessToken(accessToken); - accessTokenEntity.setExpiresIn(Math.toIntExact(expire)); + accessTokenEntity.setExpiresIn((int)((expire - System.currentTimeMillis()) / 1000 + 200)); return accessTokenEntity; } @Override public boolean isAccessTokenExpired(String authCorpId) { - return System.currentTimeMillis() > authCorpAccessTokenExpireTimeMap.get(authCorpId); + //不存在或者过期 + return authCorpAccessTokenExpireTimeMap.get(authCorpId) == null + || System.currentTimeMillis() > authCorpAccessTokenExpireTimeMap.get(authCorpId); } @Override diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpTpRedissonConfigImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpTpRedissonConfigImpl.java index 72a0784be..28997827b 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpTpRedissonConfigImpl.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpTpRedissonConfigImpl.java @@ -220,7 +220,7 @@ public class WxCpTpRedissonConfigImpl implements WxCpTpConfigStorage, Serializab WxAccessToken accessTokenEntity = new WxAccessToken(); accessTokenEntity.setAccessToken(accessToken); - accessTokenEntity.setExpiresIn(Math.max(Math.toIntExact(expire), 0)); + accessTokenEntity.setExpiresIn((int)((expire - System.currentTimeMillis()) / 1000 + 200)); return accessTokenEntity; }