优化WeixinTokenSuiteCreator的构造函数

This commit is contained in:
jinyu 2015-12-05 10:21:00 +08:00
parent f2af43e46b
commit 105cf4bfe8
2 changed files with 8 additions and 10 deletions

View File

@ -108,7 +108,7 @@ public class SuiteApi extends QyApi {
* @return 企业号token * @return 企业号token
*/ */
public TokenHolder createTokenHolder(String authCorpId) { public TokenHolder createTokenHolder(String authCorpId) {
return new TokenHolder(new WeixinTokenSuiteCreator(authCorpId, return new TokenHolder(new WeixinTokenSuiteCreator(
getPerCodeHolder(authCorpId), suiteTokenHolder), getPerCodeHolder(authCorpId), suiteTokenHolder),
suiteTicketHolder.getTokenStorager()); suiteTicketHolder.getTokenStorager());
} }
@ -166,7 +166,7 @@ public class SuiteApi extends QyApi {
SuitePerCodeHolder suitePerCodeHolder = getPerCodeHolder(oInfo SuitePerCodeHolder suitePerCodeHolder = getPerCodeHolder(oInfo
.getCorpInfo().getCorpId()); .getCorpInfo().getCorpId());
// 缓存微信企业号access_token // 缓存微信企业号access_token
TokenCreator tokenCreator = new WeixinTokenSuiteCreator(null, TokenCreator tokenCreator = new WeixinTokenSuiteCreator(
suitePerCodeHolder, suiteTokenHolder); suitePerCodeHolder, suiteTokenHolder);
Token token = new Token(obj.getString("access_token")); Token token = new Token(obj.getString("access_token"));
token.setExpiresIn(obj.getIntValue("expires_in")); token.setExpiresIn(obj.getIntValue("expires_in"));

View File

@ -23,22 +23,18 @@ import com.foxinmy.weixin4j.token.TokenHolder;
public class WeixinTokenSuiteCreator implements TokenCreator { public class WeixinTokenSuiteCreator implements TokenCreator {
private final WeixinRequestExecutor weixinExecutor; private final WeixinRequestExecutor weixinExecutor;
private final String authCorpId;
private final SuitePerCodeHolder perCodeHolder; private final SuitePerCodeHolder perCodeHolder;
private final TokenHolder suiteTokenHolder; private final TokenHolder suiteTokenHolder;
/** /**
* *
* @param authCorpId
* 授权方corpid
* @param perCodeHolder * @param perCodeHolder
* 永久授权码 * 永久授权码
* @param suiteTokenHolder * @param suiteTokenHolder
* 套件token * 套件token
*/ */
public WeixinTokenSuiteCreator(String authCorpId, public WeixinTokenSuiteCreator(SuitePerCodeHolder perCodeHolder,
SuitePerCodeHolder perCodeHolder, TokenHolder suiteTokenHolder) { TokenHolder suiteTokenHolder) {
this.authCorpId = authCorpId;
this.perCodeHolder = perCodeHolder; this.perCodeHolder = perCodeHolder;
this.suiteTokenHolder = suiteTokenHolder; this.suiteTokenHolder = suiteTokenHolder;
this.weixinExecutor = new WeixinRequestExecutor(); this.weixinExecutor = new WeixinRequestExecutor();
@ -47,14 +43,16 @@ public class WeixinTokenSuiteCreator implements TokenCreator {
@Override @Override
public String getCacheKey() { public String getCacheKey() {
return String.format("qy_token_suite_%s:%s", return String.format("qy_token_suite_%s:%s",
perCodeHolder.getSuiteId(), authCorpId); perCodeHolder.getSuiteId(), perCodeHolder.getAuthCorpId()
);
} }
@Override @Override
public Token createToken() throws WeixinException { public Token createToken() throws WeixinException {
JSONObject obj = new JSONObject(); JSONObject obj = new JSONObject();
obj.put("suite_id", perCodeHolder.getSuiteId()); obj.put("suite_id", perCodeHolder.getSuiteId());
obj.put("auth_corpid", authCorpId); obj.put("auth_corpid", perCodeHolder.getAuthCorpId());
obj.put("permanent_code", perCodeHolder.getPermanentCode()); obj.put("permanent_code", perCodeHolder.getPermanentCode());
WeixinResponse response = weixinExecutor.post( WeixinResponse response = weixinExecutor.post(
String.format(URLConsts.TOKEN_SUITE_URL, String.format(URLConsts.TOKEN_SUITE_URL,