调整WeixinAccount的获取方式

This commit is contained in:
jy.hu
2014-11-25 15:36:18 +08:00
parent 29b1c212d7
commit f3ad0eb9c4
6 changed files with 40 additions and 31 deletions
@@ -20,13 +20,8 @@ public abstract class AbstractTokenHolder implements TokenHolder {
protected final WeixinAccount weixinAccount;
public AbstractTokenHolder(AccountType accountType) {
if (accountType == AccountType.MP) {
this.weixinAccount = ConfigUtil.getWeixinMpAccount();
} else if (accountType == AccountType.QY) {
this.weixinAccount = ConfigUtil.getWeixinQyAccount();
} else {
this.weixinAccount = null;
}
this.weixinAccount = ConfigUtil
.getWeixinAccount(accountType.getClazz());
}
public AbstractTokenHolder(WeixinAccount weixinAccount) {
@@ -1,5 +1,9 @@
package com.foxinmy.weixin4j.type;
import com.foxinmy.weixin4j.model.WeixinAccount;
import com.foxinmy.weixin4j.model.WeixinMpAccount;
import com.foxinmy.weixin4j.model.WeixinQyAccount;
/**
* 账号类型
*
@@ -10,5 +14,14 @@ package com.foxinmy.weixin4j.type;
* @see
*/
public enum AccountType {
MP, QY
MP(WeixinMpAccount.class), QY(WeixinQyAccount.class);
private Class<? extends WeixinAccount> clazz;
AccountType(Class<? extends WeixinAccount> clazz) {
this.clazz = clazz;
}
public Class<? extends WeixinAccount> getClazz() {
return clazz;
}
}
@@ -41,7 +41,7 @@ public enum ButtonType {
/**
* 弹出拍照或者相册发图用户点击按钮后,微信客户端将弹出选择器供用户选择“拍照”或者“从手机相册选择”。用户选择后即走其他两种流程。
*/
pic_photo_or_albu,
pic_photo_or_album,
/**
* 弹出微信相册发图器用户点击按钮后,微信客户端将调起微信相册,完成选择操作后,将选择的相片发送给开发者的服务器,并推送事件给开发者,同时收起相册,
* 随后可能会收到开发者下发的消息。
@@ -5,6 +5,7 @@ import java.util.ResourceBundle;
import java.util.Set;
import com.alibaba.fastjson.JSON;
import com.foxinmy.weixin4j.model.WeixinAccount;
import com.foxinmy.weixin4j.model.WeixinMpAccount;
import com.foxinmy.weixin4j.model.WeixinQyAccount;
@@ -34,13 +35,16 @@ public class ConfigUtil {
return weixinBundle.getString(key);
}
public static WeixinMpAccount getWeixinMpAccount() {
public static <T extends WeixinAccount> T getWeixinAccount(Class<T> clazz) {
String text = getValue("account");
return JSON.parseObject(text, WeixinMpAccount.class);
return JSON.parseObject(text, clazz);
}
public static WeixinMpAccount getWeixinMpAccount() {
return getWeixinAccount(WeixinMpAccount.class);
}
public static WeixinQyAccount getWeixinQyAccount() {
String text = getValue("account");
return JSON.parseObject(text, WeixinQyAccount.class);
return getWeixinAccount(WeixinQyAccount.class);
}
}