继续优化代码

This commit is contained in:
jinyu 2016-03-07 14:03:41 +08:00
parent fe51ab7813
commit 26ddb8eb32
10 changed files with 26 additions and 21 deletions

View File

@ -662,6 +662,10 @@
<code>45022</code> <code>45022</code>
<text>应用名字长度不合法合法长度为2-16个字</text> <text>应用名字长度不合法合法长度为2-16个字</text>
</error> </error>
<error>
<code>45047</code>
<text>客服接口下行条数超过上限</text>
</error>
<error> <error>
<code>45024</code> <code>45024</code>
<text>账号数量超过上限</text> <text>账号数量超过上限</text>

View File

@ -154,7 +154,7 @@ public class WeixinPayProxy {
* @see com.foxinmy.weixin4j.payment.mch.JSAPIPayRequest JS支付 * @see com.foxinmy.weixin4j.payment.mch.JSAPIPayRequest JS支付
* @see com.foxinmy.weixin4j.payment.mch.NATIVEPayRequest 扫码支付 * @see com.foxinmy.weixin4j.payment.mch.NATIVEPayRequest 扫码支付
* @see com.foxinmy.weixin4j.payment.mch.APPPayRequest APP支付 * @see com.foxinmy.weixin4j.payment.mch.APPPayRequest APP支付
* @see com.foxinmy.weixin4j.payment.mch.WAPPayRequest WAP支付t * @see com.foxinmy.weixin4j.payment.mch.WAPPayRequest WAP支付
* @throws WeixinPayException * @throws WeixinPayException
*/ */
public MchPayRequest createPayRequest(TradeType tradeType, String openId, public MchPayRequest createPayRequest(TradeType tradeType, String openId,

View File

@ -74,8 +74,4 @@ public class TokenHolder {
tokenStorager.caching(cacheKey, token); tokenStorager.caching(cacheKey, token);
return token; return token;
} }
public TokenStorager getTokenStorager() {
return tokenStorager;
}
} }

View File

@ -151,7 +151,7 @@ public class WeixinProxy {
public TokenHolder getTicketHolder(TicketType ticketType) { public TokenHolder getTicketHolder(TicketType ticketType) {
return new TokenHolder(new WeixinTicketCreator(getWeixinAccount() return new TokenHolder(new WeixinTicketCreator(getWeixinAccount()
.getId(), ticketType, this.tokenHolder), .getId(), ticketType, this.tokenHolder),
this.tokenHolder.getTokenStorager()); this.settings.getTokenStorager0());
} }
/** /**

View File

@ -113,7 +113,7 @@ public class WeixinProxy {
public WeixinProxy(SuitePerCodeHolder perCodeHolder, public WeixinProxy(SuitePerCodeHolder perCodeHolder,
TokenHolder suiteTokenHolder) { TokenHolder suiteTokenHolder) {
this(new TokenHolder(new WeixinTokenSuiteCreator(perCodeHolder, this(new TokenHolder(new WeixinTokenSuiteCreator(perCodeHolder,
suiteTokenHolder), suiteTokenHolder.getTokenStorager())); suiteTokenHolder), perCodeHolder.getTokenStorager()));
this.settings = new Weixin4jSettings(new WeixinAccount( this.settings = new Weixin4jSettings(new WeixinAccount(
perCodeHolder.getAuthCorpId(), null)); perCodeHolder.getAuthCorpId(), null));
} }
@ -167,7 +167,7 @@ public class WeixinProxy {
public TokenHolder getTicketHolder(TicketType ticketType) { public TokenHolder getTicketHolder(TicketType ticketType) {
return new TokenHolder(new WeixinTicketCreator(getWeixinAccount() return new TokenHolder(new WeixinTicketCreator(getWeixinAccount()
.getId(), ticketType, this.tokenHolder), .getId(), ticketType, this.tokenHolder),
this.tokenHolder.getTokenStorager()); this.settings.getTokenStorager0());
} }
/** /**

View File

@ -65,7 +65,8 @@ public class WeixinSuiteProxy {
new WeixinProviderTokenCreator(suiteSettings new WeixinProviderTokenCreator(suiteSettings
.getWeixinAccount().getId(), suiteSettings .getWeixinAccount().getId(), suiteSettings
.getWeixinAccount().getProviderSecret()), .getWeixinAccount().getProviderSecret()),
suiteSettings.getTokenStorager0())); suiteSettings.getTokenStorager0()),
suiteSettings.getTokenStorager0());
} }
} }

View File

@ -8,6 +8,7 @@ import com.foxinmy.weixin4j.model.Token;
import com.foxinmy.weixin4j.qy.model.OUserInfo; import com.foxinmy.weixin4j.qy.model.OUserInfo;
import com.foxinmy.weixin4j.qy.type.LoginTargetType; import com.foxinmy.weixin4j.qy.type.LoginTargetType;
import com.foxinmy.weixin4j.token.TokenHolder; import com.foxinmy.weixin4j.token.TokenHolder;
import com.foxinmy.weixin4j.token.TokenStorager;
import com.foxinmy.weixin4j.util.StringUtil; import com.foxinmy.weixin4j.util.StringUtil;
/** /**
@ -22,9 +23,12 @@ import com.foxinmy.weixin4j.util.StringUtil;
*/ */
public class ProviderApi extends QyApi { public class ProviderApi extends QyApi {
private final TokenHolder providerTokenHolder; private final TokenHolder providerTokenHolder;
private final TokenStorager tokenStorager;
public ProviderApi(TokenHolder providerTokenHolder) { public ProviderApi(TokenHolder providerTokenHolder,
TokenStorager tokenStorager) {
this.providerTokenHolder = providerTokenHolder; this.providerTokenHolder = providerTokenHolder;
this.tokenStorager = tokenStorager;
} }
/** /**
@ -49,14 +53,13 @@ public class ProviderApi extends QyApi {
oUser.getRedirectLoginInfo().setAccessToken( oUser.getRedirectLoginInfo().setAccessToken(
obj.getJSONObject("redirect_login_info").getString( obj.getJSONObject("redirect_login_info").getString(
"login_ticket")); "login_ticket"));
providerTokenHolder.getTokenStorager().caching( tokenStorager.caching(getLoginTicketCacheKey(oUser.getCorpInfo()
getLoginTicketCacheKey(oUser.getCorpInfo().getCorpId()), .getCorpId()), oUser.getRedirectLoginInfo());
oUser.getRedirectLoginInfo());
return oUser; return oUser;
} }
private String getLoginTicketCacheKey(String coprId) { private String getLoginTicketCacheKey(String coprId) {
return String.format("wx_qy_provider_login_ticket_%s", coprId); return String.format("weixin4j_qy_provider_ticket_%s", coprId);
} }
/** /**
@ -75,8 +78,7 @@ public class ProviderApi extends QyApi {
*/ */
public String getLoginUrl(String corpId, LoginTargetType targetType, public String getLoginUrl(String corpId, LoginTargetType targetType,
int agentId) throws WeixinException { int agentId) throws WeixinException {
Token token = providerTokenHolder.getTokenStorager().lookup( Token token = tokenStorager.lookup(getLoginTicketCacheKey(corpId));
getLoginTicketCacheKey(corpId));
if (token == null || StringUtil.isBlank(token.getAccessToken())) { if (token == null || StringUtil.isBlank(token.getAccessToken())) {
throw new WeixinException("maybe oauth first?"); throw new WeixinException("maybe oauth first?");
} }

View File

@ -45,7 +45,8 @@ public class SuitePerCodeHolder {
* @return * @return
*/ */
public String getCacheKey() { public String getCacheKey() {
return String.format("qy_suite_percode_%s:%s", suiteId, authCorpId); return String.format("weixin4j_qy_suite_percode_%s:%s", suiteId,
authCorpId);
} }
/** /**
@ -65,4 +66,8 @@ public class SuitePerCodeHolder {
public String getAuthCorpId() { public String getAuthCorpId() {
return this.authCorpId; return this.authCorpId;
} }
public TokenStorager getTokenStorager() {
return this.tokenStorager;
}
} }

View File

@ -9,7 +9,6 @@ import io.netty.handler.codec.http.HttpServerCodec;
import java.util.Map; import java.util.Map;
import com.foxinmy.weixin4j.dispatcher.WeixinMessageDispatcher; import com.foxinmy.weixin4j.dispatcher.WeixinMessageDispatcher;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.util.AesToken; import com.foxinmy.weixin4j.util.AesToken;
/** /**
@ -27,7 +26,7 @@ public class WeixinServerInitializer extends ChannelInitializer<SocketChannel> {
private final WeixinMessageDispatcher messageDispatcher; private final WeixinMessageDispatcher messageDispatcher;
public WeixinServerInitializer(Map<String, AesToken> aesTokenMap, public WeixinServerInitializer(Map<String, AesToken> aesTokenMap,
WeixinMessageDispatcher messageDispatcher) throws WeixinException { WeixinMessageDispatcher messageDispatcher) {
this.aesTokenMap = aesTokenMap; this.aesTokenMap = aesTokenMap;
this.messageDispatcher = messageDispatcher; this.messageDispatcher = messageDispatcher;
} }

View File

@ -216,8 +216,6 @@ public final class WeixinServerBootstrap {
} }
}).sync().channel(); }).sync().channel();
ch.closeFuture().sync(); ch.closeFuture().sync();
} catch (WeixinException e) {
throw e;
} catch (InterruptedException e) { } catch (InterruptedException e) {
throw new WeixinException(e); throw new WeixinException(e);
} finally { } finally {