调整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

View File

@ -20,13 +20,8 @@ public abstract class AbstractTokenHolder implements TokenHolder {
protected final WeixinAccount weixinAccount; protected final WeixinAccount weixinAccount;
public AbstractTokenHolder(AccountType accountType) { public AbstractTokenHolder(AccountType accountType) {
if (accountType == AccountType.MP) { this.weixinAccount = ConfigUtil
this.weixinAccount = ConfigUtil.getWeixinMpAccount(); .getWeixinAccount(accountType.getClazz());
} else if (accountType == AccountType.QY) {
this.weixinAccount = ConfigUtil.getWeixinQyAccount();
} else {
this.weixinAccount = null;
}
} }
public AbstractTokenHolder(WeixinAccount weixinAccount) { public AbstractTokenHolder(WeixinAccount weixinAccount) {

View File

@ -1,5 +1,9 @@
package com.foxinmy.weixin4j.type; 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 * @see
*/ */
public enum AccountType { 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;
}
} }

View File

@ -41,7 +41,7 @@ public enum ButtonType {
/** /**
* 弹出拍照或者相册发图用户点击按钮后微信客户端将弹出选择器供用户选择拍照或者从手机相册选择用户选择后即走其他两种流程 * 弹出拍照或者相册发图用户点击按钮后微信客户端将弹出选择器供用户选择拍照或者从手机相册选择用户选择后即走其他两种流程
*/ */
pic_photo_or_albu, pic_photo_or_album,
/** /**
* 弹出微信相册发图器用户点击按钮后微信客户端将调起微信相册完成选择操作后将选择的相片发送给开发者的服务器并推送事件给开发者同时收起相册 * 弹出微信相册发图器用户点击按钮后微信客户端将调起微信相册完成选择操作后将选择的相片发送给开发者的服务器并推送事件给开发者同时收起相册
* 随后可能会收到开发者下发的消息 * 随后可能会收到开发者下发的消息

View File

@ -5,6 +5,7 @@ import java.util.ResourceBundle;
import java.util.Set; import java.util.Set;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.foxinmy.weixin4j.model.WeixinAccount;
import com.foxinmy.weixin4j.model.WeixinMpAccount; import com.foxinmy.weixin4j.model.WeixinMpAccount;
import com.foxinmy.weixin4j.model.WeixinQyAccount; import com.foxinmy.weixin4j.model.WeixinQyAccount;
@ -34,13 +35,16 @@ public class ConfigUtil {
return weixinBundle.getString(key); return weixinBundle.getString(key);
} }
public static WeixinMpAccount getWeixinMpAccount() { public static <T extends WeixinAccount> T getWeixinAccount(Class<T> clazz) {
String text = getValue("account"); 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() { public static WeixinQyAccount getWeixinQyAccount() {
String text = getValue("account"); return getWeixinAccount(WeixinQyAccount.class);
return JSON.parseObject(text, WeixinQyAccount.class);
} }
} }

View File

@ -79,16 +79,14 @@ public class PayAction {
/** /**
* JSAPI(V2)支付成功(前端)时的回调通知<br> * JSAPI(V2)支付成功(前端)时的回调通知<br>
* &ltxml&gt</br> * &ltxml&gt</br> &ltOpenId&gt&lt![CDATA[111222]]&gt&lt/OpenId&gt</br>
* &ltOpenId&gt&lt![CDATA[111222]]&gt&lt/OpenId&gt</br>
* &ltAppId&gt&lt![CDATA[wwwwb4f85f3a797777]]&gt&lt/AppId&gt</br> * &ltAppId&gt&lt![CDATA[wwwwb4f85f3a797777]]&gt&lt/AppId&gt</br>
* &ltIsSubscribe&gt1&lt/IsSubscribe&gt</br> * &ltIsSubscribe&gt1&lt/IsSubscribe&gt</br>
* &ltTimeStamp&gt1369743511&lt/TimeStamp&gt</br> * &ltTimeStamp&gt1369743511&lt/TimeStamp&gt</br>
* &ltNonceStr&gt&lt![CDATA[jALldRTHAFd5Tgs5]]&gt&lt/NonceStr&gt</br> * &ltNonceStr&gt&lt![CDATA[jALldRTHAFd5Tgs5]]&gt&lt/NonceStr&gt</br>
* &ltAppSignature>&lt![CDATA[bafe07f060f22dcda0bfdb4b5ff756f973aecffa]]&gt * &ltAppSignature>&lt![CDATA[bafe07f060f22dcda0bfdb4b5ff756f973aecffa]]&gt
* &lt/AppSignature&gt</br> * &lt/AppSignature&gt</br>
* &ltSignMethod>&lt![CDATA[sha1]]&gt&lt/SignMethod&gt</br> * &ltSignMethod>&lt![CDATA[sha1]]&gt&lt/SignMethod&gt</br> &lt/xml&gt</br>
* &lt/xml&gt</br>
* 参与签名的字段为: appidappkeytimestampnoncestropenidissubscribe * 参与签名的字段为: appidappkeytimestampnoncestropenidissubscribe
* *
* @param 订单信息 * @param 订单信息
@ -103,9 +101,12 @@ public class PayAction {
/* /*
* 收集url中携带的参数 /pay/notify/back?attach=8&bank_billno=201410293351060& * 收集url中携带的参数 /pay/notify/back?attach=8&bank_billno=201410293351060&
* bank_type=2032&discount=0&fee_type=1&input_charset=UTF-8& * bank_type=2032&discount=0&fee_type=1&input_charset=UTF-8&
* notify_id=9fKbVf_qg6y-wSjtSMV0PLXeEn2oGfTM1s9dWSvR2B9U6iFQRTzmjrMWKUxvh9mpBLvnh8aqFbC_OFk1pTvFnFUO00Lln4fh& * notify_id=9fKbVf_qg6y-
* out_trade_no=D14102900031&partner=1221928801&product_fee=1&sign=B9D6E772C271C9B86B8436FC9F5DFC1A& * wSjtSMV0PLXeEn2oGfTM1s9dWSvR2B9U6iFQRTzmjrMWKUxvh9mpBLvnh8aqFbC_OFk1pTvFnFUO00Lln4fh
* sign_type=MD5&time_end=20141029183707&total_fee=1&trade_mode=1&trade_state=0& * & out_trade_no=D14102900031&partner=1221928801&product_fee=1&sign=
* B9D6E772C271C9B86B8436FC9F5DFC1A&
* sign_type=MD5&time_end=20141029183707
* &total_fee=1&trade_mode=1&trade_state=0&
* transaction_id=1221928801201410296039230054&transport_fee=0 * transaction_id=1221928801201410296039230054&transport_fee=0
*/ */
log.info("jspay_notify_orderinfo,{}", objMap); log.info("jspay_notify_orderinfo,{}", objMap);
@ -165,8 +166,7 @@ public class PayAction {
/** /**
* V2.x版本Native支付时POST数据<br> * V2.x版本Native支付时POST数据<br>
* &ltxml&gt</br> * &ltxml&gt</br> &ltOpenId&gt&lt![CDATA[111222]]&gt&lt/OpenId&gt</br>
* &ltOpenId&gt&lt![CDATA[111222]]&gt&lt/OpenId&gt</br>
* &ltAppId&gt&lt![CDATA[wwwwb4f85f3a797777]]&gt&lt/AppId&gt</br> * &ltAppId&gt&lt![CDATA[wwwwb4f85f3a797777]]&gt&lt/AppId&gt</br>
* &ltIsSubscribe&gt1&lt/IsSubscribe&gt</br> * &ltIsSubscribe&gt1&lt/IsSubscribe&gt</br>
* &ltProductId&gt[CDATA[000000]]&lt/ProductId&gt</br> * &ltProductId&gt[CDATA[000000]]&lt/ProductId&gt</br>
@ -174,8 +174,7 @@ public class PayAction {
* &ltNonceStr&gt&lt![CDATA[jALldRTHAFd5Tgs5]]&gt&lt/NonceStr&gt</br> * &ltNonceStr&gt&lt![CDATA[jALldRTHAFd5Tgs5]]&gt&lt/NonceStr&gt</br>
* &ltAppSignature>&lt![CDATA[bafe07f060f22dcda0bfdb4b5ff756f973aecffa]]&gt * &ltAppSignature>&lt![CDATA[bafe07f060f22dcda0bfdb4b5ff756f973aecffa]]&gt
* &lt/AppSignature&gt</br> * &lt/AppSignature&gt</br>
* &ltSignMethod>&lt![CDATA[sha1]]&gt&lt/SignMethod&gt</br> * &ltSignMethod>&lt![CDATA[sha1]]&gt&lt/SignMethod&gt</br> &lt/xml&gt</br>
* &lt/xml&gt</br>
* 参与签名的字段为: appidappkeytimestampnoncestropenidissubscribeproductId * 参与签名的字段为: appidappkeytimestampnoncestropenidissubscribeproductId
* *
* @param inputStream * @param inputStream
@ -208,16 +207,14 @@ public class PayAction {
/** /**
* V3.x版本native回调<br> * V3.x版本native回调<br>
* &ltxml&gt</br> * &ltxml&gt</br> &ltopenid&gt&lt![CDATA[111222]]&gt&lt/openid&gt</br>
* &ltopenid&gt&lt![CDATA[111222]]&gt&lt/openid&gt</br>
* &ltappid&gt&lt![CDATA[wwwwb4f85f3a797777]]&gt&lt/appid&gt</br> * &ltappid&gt&lt![CDATA[wwwwb4f85f3a797777]]&gt&lt/appid&gt</br>
* &ltmch_id&gt&lt![CDATA[1100022]]&gt&lt/mch_id&gt</br> * &ltmch_id&gt&lt![CDATA[1100022]]&gt&lt/mch_id&gt</br>
* &ltis_subscribe&gt1&lt/is_subscribe&gt</br> * &ltis_subscribe&gt1&lt/is_subscribe&gt</br>
* &ltproduct_id&gt[CDATA[000000]]&lt/product_id&gt</br> * &ltproduct_id&gt[CDATA[000000]]&lt/product_id&gt</br>
* &ltnonce_str&gt&lt![CDATA[jALldRTHAFd5Tgs5]]&gt&lt/nonce_str&gt</br> * &ltnonce_str&gt&lt![CDATA[jALldRTHAFd5Tgs5]]&gt&lt/nonce_str&gt</br>
* &ltsign>&lt![CDATA[bafe07f060f22dcda0bfdb4b5ff756f973aecffa]]&gt&lt/sign& * &ltsign>&lt![CDATA[bafe07f060f22dcda0bfdb4b5ff756f973aecffa]]&gt&lt/sign&
* gt</br> * gt</br> &lt/xml&gt</br>
* &lt/xml&gt</br>
* *
* @return * @return
* @throws PayException * @throws PayException
@ -251,8 +248,7 @@ public class PayAction {
} }
/** /**
* 告警通知 需要成功返回 success </br> * 告警通知 需要成功返回 success </br> &ltxml&gt</br>
* &ltxml&gt</br>
* &ltAppId&gt&lt![CDATA[wxf8b4f85f3a794e77]]&gt&lt/AppId&gt</br> * &ltAppId&gt&lt![CDATA[wxf8b4f85f3a794e77]]&gt&lt/AppId&gt</br>
* &ltErrorType&gt1001&lt/ErrorType&gt</br> * &ltErrorType&gt1001&lt/ErrorType&gt</br>
* &ltDescription&gt&lt![CDATA[错误描述]]>&lt/Description&gt</br> * &ltDescription&gt&lt![CDATA[错误描述]]>&lt/Description&gt</br>

View File

@ -40,7 +40,8 @@ public class MenuTest extends TokenTest {
b = new Button("qq", "http://www.qq.com", ButtonType.view); b = new Button("qq", "http://www.qq.com", ButtonType.view);
btnList.add(b); btnList.add(b);
b = new Button("photo", "photo", ButtonType.pic_photo_or_album);
btnList.add(b);
JsonResult result = menuApi.createMenu(btnList, 1); JsonResult result = menuApi.createMenu(btnList, 1);
Assert.assertEquals(0, result.getCode()); Assert.assertEquals(0, result.getCode());
} }