Skip to content

Commit 8b280f4

Browse files
committed
🎨 #1381 企业微信模块配置类增加autoRefreshToken参数配置,方便控制是否自动刷新access_token
1 parent 2e2d5ff commit 8b280f4

File tree

6 files changed

+28
-2
lines changed

6 files changed

+28
-2
lines changed

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/BaseWxCpServiceImpl.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,9 @@ protected <T, E> T executeInternal(RequestExecutor<T, E> executor, String uri, E
281281
if (error.getErrorCode() == 42001 || error.getErrorCode() == 40001 || error.getErrorCode() == 40014) {
282282
// 强制设置wxCpConfigStorage它的access token过期了,这样在下一次请求里就会刷新access token
283283
this.configStorage.expireAccessToken();
284-
return execute(executor, uri, data);
284+
if (this.getWxCpConfigStorage().autoRefreshToken()) {
285+
return this.execute(executor, uri, data);
286+
}
285287
}
286288

287289
if (error.getErrorCode() != 0) {

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/BaseWxCpTpServiceImpl.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,9 @@ protected <T, E> T executeInternal(RequestExecutor<T, E> executor, String uri, E
194194
if (error.getErrorCode() == 42009) {
195195
// 强制设置wxCpTpConfigStorage它的suite access token过期了,这样在下一次请求里就会刷新suite access token
196196
this.configStorage.expireSuiteAccessToken();
197-
return execute(executor, uri, data);
197+
if (this.getWxCpTpConfigStorage().autoRefreshToken()) {
198+
return this.execute(executor, uri, data);
199+
}
198200
}
199201

200202
if (error.getErrorCode() != 0) {

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpConfigStorage.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,4 +97,10 @@ public interface WxCpConfigStorage {
9797
* @return ApacheHttpClientBuilder
9898
*/
9999
ApacheHttpClientBuilder getApacheHttpClientBuilder();
100+
101+
/**
102+
* 是否自动刷新token
103+
* @return .
104+
*/
105+
boolean autoRefreshToken();
100106
}

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/WxCpTpConfigStorage.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,4 +83,10 @@ public interface WxCpTpConfigStorage {
8383
* @return ApacheHttpClientBuilder
8484
*/
8585
ApacheHttpClientBuilder getApacheHttpClientBuilder();
86+
87+
/**
88+
* 是否自动刷新token
89+
* @return .
90+
*/
91+
boolean autoRefreshToken();
8692
}

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpDefaultConfigImpl.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,11 @@ public ApacheHttpClientBuilder getApacheHttpClientBuilder() {
262262
return this.apacheHttpClientBuilder;
263263
}
264264

265+
@Override
266+
public boolean autoRefreshToken() {
267+
return true;
268+
}
269+
265270
public void setApacheHttpClientBuilder(ApacheHttpClientBuilder apacheHttpClientBuilder) {
266271
this.apacheHttpClientBuilder = apacheHttpClientBuilder;
267272
}

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpTpDefaultConfigImpl.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,11 @@ public ApacheHttpClientBuilder getApacheHttpClientBuilder() {
242242
return this.apacheHttpClientBuilder;
243243
}
244244

245+
@Override
246+
public boolean autoRefreshToken() {
247+
return true;
248+
}
249+
245250
public void setApacheHttpClientBuilder(ApacheHttpClientBuilder apacheHttpClientBuilder) {
246251
this.apacheHttpClientBuilder = apacheHttpClientBuilder;
247252
}

0 commit comments

Comments
 (0)