|
|
|
@@ -11,6 +11,7 @@ import me.chanjar.weixin.open.bean.WxOpenAuthorizerAccessToken; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.slf4j.Logger; |
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
import org.springframework.scheduling.annotation.Async; |
|
|
|
import redis.clients.jedis.Jedis; |
|
|
|
import redis.clients.jedis.JedisPool; |
|
|
|
import redis.clients.util.Pool; |
|
|
|
@@ -76,7 +77,28 @@ public class FmOpenInRedisDBConfigStorage extends WxOpenInMemoryConfigStorage { |
|
|
|
@Override |
|
|
|
public String getComponentVerifyTicket() { |
|
|
|
try (Jedis jedis = this.jedisPool.getResource()) { |
|
|
|
return jedis.get(this.componentVerifyTicketKey); |
|
|
|
logger.info("getComponentVerifyTicket " + this.componentVerifyTicketKey); |
|
|
|
String ticket = jedis.get(this.componentVerifyTicketKey); |
|
|
|
if(StringUtils.isBlank(ticket)) { |
|
|
|
String appId; |
|
|
|
String [] keys = componentAccessTokenKey.split(":"); |
|
|
|
if(StringUtils.isBlank(keyPrefix)) { |
|
|
|
appId = keys[1]; |
|
|
|
} else { |
|
|
|
appId = keys[2]; |
|
|
|
} |
|
|
|
WxComponentVerifyTicket wxComponentVerifyTicket = new WxComponentVerifyTicket(); |
|
|
|
wxComponentVerifyTicket.setComponentAppid(getComponentAppId()); |
|
|
|
try { |
|
|
|
wxComponentVerifyTicket = wxComponentVerifyTicketMapper.selectOne(wxComponentVerifyTicket); |
|
|
|
if(wxComponentVerifyTicket != null) { |
|
|
|
ticket = wxComponentVerifyTicket.getComponentVerifyTicket(); |
|
|
|
} |
|
|
|
}catch (Exception e) { |
|
|
|
logger.error(e.getMessage()); |
|
|
|
} |
|
|
|
} |
|
|
|
return ticket; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@@ -84,6 +106,7 @@ public class FmOpenInRedisDBConfigStorage extends WxOpenInMemoryConfigStorage { |
|
|
|
public void setComponentVerifyTicket(String componentVerifyTicket) { |
|
|
|
try (Jedis jedis = this.jedisPool.getResource()) { |
|
|
|
jedis.set(this.componentVerifyTicketKey, componentVerifyTicket); |
|
|
|
logger.info("setComponentVerifyTicket " + componentVerifyTicket); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@@ -112,16 +135,22 @@ public class FmOpenInRedisDBConfigStorage extends WxOpenInMemoryConfigStorage { |
|
|
|
public void updateComponentAccessTokent(String componentAccessToken, int expiresInSeconds) { |
|
|
|
try (Jedis jedis = this.jedisPool.getResource()) { |
|
|
|
jedis.setex(this.componentAccessTokenKey, expiresInSeconds - 200, componentAccessToken); |
|
|
|
logger.info("updateComponentVerifyTicketAccessToken " + componentAccessToken); |
|
|
|
|
|
|
|
WxComponentVerifyTicket ticket = new WxComponentVerifyTicket(); |
|
|
|
ticket.setComponentAppid(getComponentAppId()); |
|
|
|
ticket.setAccessToken(componentAccessToken); |
|
|
|
ticket.setAccessTokenExpire(new Date(Long.valueOf(System.currentTimeMillis() + (expiresInSeconds * 1000)))); |
|
|
|
int num = wxComponentVerifyTicketMapper.updateAccessToken(ticket); |
|
|
|
logger.info("updateComponentVerifyTicketAccessToken rows: " + num); |
|
|
|
saveComponentVerifyTicket(componentAccessToken, expiresInSeconds); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Async |
|
|
|
public void saveComponentVerifyTicket(String componentAccessToken, int expiresInSeconds) { |
|
|
|
WxComponentVerifyTicket ticket = new WxComponentVerifyTicket(); |
|
|
|
ticket.setComponentAppid(getComponentAppId()); |
|
|
|
ticket.setAccessToken(componentAccessToken); |
|
|
|
ticket.setAccessTokenExpire(new Date(Long.valueOf(System.currentTimeMillis() + (expiresInSeconds * 1000)))); |
|
|
|
int num = wxComponentVerifyTicketMapper.updateAccessToken(ticket); |
|
|
|
logger.info("updateComponentVerifyTicketAccessToken rows: " + num); |
|
|
|
} |
|
|
|
|
|
|
|
private String getKey(String prefix, String appId) { |
|
|
|
return prefix.endsWith(":") ? prefix.concat(appId) : prefix.concat(":").concat(appId); |
|
|
|
} |
|
|
|
@@ -137,15 +166,20 @@ public class FmOpenInRedisDBConfigStorage extends WxOpenInMemoryConfigStorage { |
|
|
|
public void setAuthorizerRefreshToken(String appId, String authorizerRefreshToken) { |
|
|
|
try (Jedis jedis = this.jedisPool.getResource()) { |
|
|
|
jedis.set(this.getKey(this.authorizerRefreshTokenKey, appId), authorizerRefreshToken); |
|
|
|
logger.info("setAuthorizerRefreshToken " + appId); |
|
|
|
|
|
|
|
WxAuthorizerInfo authorizerInfo = new WxAuthorizerInfo(); |
|
|
|
authorizerInfo.setAuthorizerAppid(appId); |
|
|
|
authorizerInfo.setRefreshToken(authorizerRefreshToken); |
|
|
|
int num = wxAuthorizerInfoMapper.updateRefreshToken(authorizerInfo); |
|
|
|
logger.info("setAuthorizerRefreshToken " + appId + " rows: " + num); |
|
|
|
saveAuthorizerRefreshToken(appId, authorizerRefreshToken); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Async |
|
|
|
public void saveAuthorizerRefreshToken(String appId, String authorizerRefreshToken) { |
|
|
|
WxAuthorizerInfo authorizerInfo = new WxAuthorizerInfo(); |
|
|
|
authorizerInfo.setAuthorizerAppid(appId); |
|
|
|
authorizerInfo.setRefreshToken(authorizerRefreshToken); |
|
|
|
int num = wxAuthorizerInfoMapper.updateRefreshToken(authorizerInfo); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public String getAuthorizerAccessToken(String appId) { |
|
|
|
try (Jedis jedis = this.jedisPool.getResource()) { |
|
|
|
@@ -171,6 +205,13 @@ public class FmOpenInRedisDBConfigStorage extends WxOpenInMemoryConfigStorage { |
|
|
|
public void updateAuthorizerAccessToken(String appId, WxOpenAuthorizerAccessToken authorizerAccessToken) { |
|
|
|
this.updateAuthorizerAccessToken(appId, authorizerAccessToken.getAuthorizerAccessToken(), authorizerAccessToken.getExpiresIn()); |
|
|
|
|
|
|
|
logger.info("updateAuthorizerAccessToken " + appId); |
|
|
|
|
|
|
|
dbUpdateAccessToken(appId, authorizerAccessToken); |
|
|
|
} |
|
|
|
|
|
|
|
@Async |
|
|
|
public void dbUpdateAccessToken(String appId, WxOpenAuthorizerAccessToken authorizerAccessToken) { |
|
|
|
WxAuthorizerInfo authorizerInfo = new WxAuthorizerInfo(); |
|
|
|
authorizerInfo.setAuthorizerAppid(appId); |
|
|
|
authorizerInfo.setAccessToken(authorizerAccessToken.getAuthorizerAccessToken()); |
|
|
|
|