🆕 #1474 企业微信新增客户联系「联系我」管理接口 修正 / #1590 开放平台刷新AccessToken同步更新RefreshToken

* #1474 新增客户联系「联系我」管理接口

* fix #1590 提及的me.chanjar.weixin.open.api.impl.WxOpenComponentServiceImpl#getAuthorizerAccessToken()刷新AccessToken后没有同步对应的refreshToken

* 补充 me.chanjar.weixin.open.api.impl.WxOpenInMemoryConfigStorage#updateToken 方法对 expireInSeconds 边界判断
This commit is contained in:
爱因斯唐
2020-07-21 10:23:56 +08:00
committed by GitHub
parent 04fb35d1ba
commit 0758049ea9
12 changed files with 563 additions and 19 deletions

View File

@@ -208,6 +208,13 @@ public interface WxOpenConfigStorage {
*/
void setAuthorizerRefreshToken(String appId, String authorizerRefreshToken);
/**
* setAuthorizerRefreshToken(String appId, String authorizerRefreshToken) 方法重载方法
* @param appId the app id
* @param authorizerRefreshToken the authorizer refresh token
*/
void updateAuthorizerRefreshToken(String appId, String authorizerRefreshToken);
/**
* Gets authorizer access token.
*

View File

@@ -311,7 +311,7 @@ public class WxOpenComponentServiceImpl implements WxOpenComponentService {
authorizationInfo.getAuthorizerAccessToken(), authorizationInfo.getExpiresIn());
}
if (authorizationInfo.getAuthorizerRefreshToken() != null) {
getWxOpenConfigStorage().setAuthorizerRefreshToken(authorizationInfo.getAuthorizerAppid(), authorizationInfo.getAuthorizerRefreshToken());
getWxOpenConfigStorage().updateAuthorizerRefreshToken(authorizationInfo.getAuthorizerAppid(), authorizationInfo.getAuthorizerRefreshToken());
}
return queryAuth;
}
@@ -340,7 +340,7 @@ public class WxOpenComponentServiceImpl implements WxOpenComponentService {
String authorizerAppid = data.get("authorizer_appid");
String refreshToken = data.get("refresh_token");
if (authorizerAppid != null && refreshToken != null) {
this.getWxOpenConfigStorage().setAuthorizerRefreshToken(authorizerAppid, refreshToken);
this.getWxOpenConfigStorage().updateAuthorizerRefreshToken(authorizerAppid, refreshToken);
}
}
}
@@ -391,6 +391,7 @@ public class WxOpenComponentServiceImpl implements WxOpenComponentService {
WxOpenAuthorizerAccessToken wxOpenAuthorizerAccessToken = WxOpenAuthorizerAccessToken.fromJson(responseContent);
config.updateAuthorizerAccessToken(appId, wxOpenAuthorizerAccessToken);
config.updateAuthorizerRefreshToken(appId,wxOpenAuthorizerAccessToken.getAuthorizerRefreshToken());
return config.getAuthorizerAccessToken(appId);
} catch (InterruptedException e) {
throw new RuntimeException(e);

View File

@@ -142,7 +142,7 @@ public class WxOpenInMemoryConfigStorage implements WxOpenConfigStorage {
map.put(key, token);
}
token.token = tokenString;
if (expiresInSeconds != null) {
if (expiresInSeconds != null && expiresInSeconds != -1) {
token.expiresTime = System.currentTimeMillis() + (expiresInSeconds - 200) * 1000L;
}
}
@@ -157,6 +157,11 @@ public class WxOpenInMemoryConfigStorage implements WxOpenConfigStorage {
updateToken(authorizerRefreshTokens, appId, authorizerRefreshToken, null);
}
@Override
public void updateAuthorizerRefreshToken(String appId, String authorizerRefreshToken) {
this.setAuthorizerRefreshToken(appId, authorizerRefreshToken);
}
@Override
public String getAuthorizerAccessToken(String appId) {
return getTokenString(authorizerAccessTokens, appId);