|
|
@@ -31,7 +31,8 @@ public class DDImplClient implements DDClient {
|
|
|
@Synchronized
|
|
|
@Override
|
|
|
public String getAccessToken() {
|
|
|
- String accessToken = UtilToken.get("invalid-token-dingtalk");
|
|
|
+ String key = "appToken:" + ddConf.getAppKey();
|
|
|
+ String accessToken = UtilToken.get(DDConf.NS, key);
|
|
|
if (StringUtils.isNotBlank(accessToken)) return accessToken;
|
|
|
Map param = new HashMap();
|
|
|
param.put("appkey", ddConf.getAppKey());
|
|
|
@@ -40,7 +41,7 @@ public class DDImplClient implements DDClient {
|
|
|
log.info("响应token, {}", r.getAccessToken());
|
|
|
accessToken = r.getAccessToken();
|
|
|
// token失效自动重置: DD重新调用会重置过期时间
|
|
|
- UtilToken.put("invalid-token-dingtalk", accessToken, r.getExpiresIn() * 1000L);
|
|
|
+ UtilToken.put(DDConf.NS, key, accessToken, r.getExpiresIn() * 1000L);
|
|
|
return accessToken;
|
|
|
}
|
|
|
|
|
|
@@ -61,7 +62,8 @@ public class DDImplClient implements DDClient {
|
|
|
@Synchronized
|
|
|
@Override
|
|
|
public String getUserAccessToken(boolean isRefresh, String code_refreshToken) {
|
|
|
- String accessToken = UtilToken.get("invalid-user-token-dingtalk");
|
|
|
+ String key = "userToken:" + ddConf.getAppKey();
|
|
|
+ String accessToken = UtilToken.get(DDConf.NS, key);
|
|
|
if (StringUtils.isNotBlank(accessToken)) return accessToken;
|
|
|
Map boyd = UtilMap.map("clientId, clientSecret", ddConf.getAppKey(), ddConf.getAppSecret());
|
|
|
if (isRefresh) {
|
|
|
@@ -75,7 +77,7 @@ public class DDImplClient implements DDClient {
|
|
|
log.info("用户token, {}", r.getAccessToken());
|
|
|
accessToken = r.getAccessToken();
|
|
|
// token失效自动重置: DD重新调用会重置过期时间
|
|
|
- UtilToken.put("invalid-user-token-dingtalk", accessToken, r.getExpiresIn() * 1000L);
|
|
|
+ UtilToken.put(DDConf.NS, key, accessToken, r.getExpiresIn() * 1000L);
|
|
|
return accessToken;
|
|
|
}
|
|
|
|
|
|
@@ -103,13 +105,15 @@ public class DDImplClient implements DDClient {
|
|
|
@Synchronized
|
|
|
@Override
|
|
|
public String getJsApiTicket(String accessToken) {
|
|
|
- String ticket = UtilToken.get("invalid-ticket-dingtalk");
|
|
|
+ // ppExt: jsapi ticket 是 corp/app 级别(用 appKey 区分),不绑特定 accessToken
|
|
|
+ String key = "jsapiTicket:" + ddConf.getAppKey();
|
|
|
+ String ticket = UtilToken.get(DDConf.NS, key);
|
|
|
if (StringUtils.isNotBlank(ticket)) return ticket;
|
|
|
DDR r = DDR.doGet("https://oapi.dingtalk.com/get_jsapi_ticket", null, UtilMap.map("access_token", accessToken));
|
|
|
log.info("响应ticket, {}", r.getAccessToken());
|
|
|
ticket = r.getTicket();
|
|
|
// token失效自动重置: DD重新调用会重置过期时间
|
|
|
- UtilToken.put("invalid-ticket-dingtalk", ticket, r.getExpiresIn() * 1000L);
|
|
|
+ UtilToken.put(DDConf.NS, key, ticket, r.getExpiresIn() * 1000L);
|
|
|
return ticket;
|
|
|
}
|
|
|
|