From f3ad0eb9c490c75cbf0045c29537fe02a8c9641a Mon Sep 17 00:00:00 2001 From: "jy.hu" Date: Tue, 25 Nov 2014 15:36:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4WeixinAccount=E7=9A=84?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weixin4j/token/AbstractTokenHolder.java | 9 ++---- .../foxinmy/weixin4j/type/AccountType.java | 15 +++++++++- .../com/foxinmy/weixin4j/type/ButtonType.java | 2 +- .../com/foxinmy/weixin4j/util/ConfigUtil.java | 12 +++++--- .../weixin4j/mp/payment/PayAction.java | 30 ++++++++----------- .../foxinmy/weixin4j/qy/test/MenuTest.java | 3 +- 6 files changed, 40 insertions(+), 31 deletions(-) diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/AbstractTokenHolder.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/AbstractTokenHolder.java index b0fd49f8..14d889f0 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/AbstractTokenHolder.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/AbstractTokenHolder.java @@ -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) { diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/type/AccountType.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/type/AccountType.java index 8899289f..374d3ed3 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/type/AccountType.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/type/AccountType.java @@ -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 clazz; + + AccountType(Class clazz) { + this.clazz = clazz; + } + + public Class getClazz() { + return clazz; + } } diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/type/ButtonType.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/type/ButtonType.java index f78b88d8..fa3ac00f 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/type/ButtonType.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/type/ButtonType.java @@ -41,7 +41,7 @@ public enum ButtonType { /** * 弹出拍照或者相册发图用户点击按钮后,微信客户端将弹出选择器供用户选择“拍照”或者“从手机相册选择”。用户选择后即走其他两种流程。 */ - pic_photo_or_albu, + pic_photo_or_album, /** * 弹出微信相册发图器用户点击按钮后,微信客户端将调起微信相册,完成选择操作后,将选择的相片发送给开发者的服务器,并推送事件给开发者,同时收起相册, * 随后可能会收到开发者下发的消息。 diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/util/ConfigUtil.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/util/ConfigUtil.java index e7403cf1..be37e29b 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/util/ConfigUtil.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/util/ConfigUtil.java @@ -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 getWeixinAccount(Class 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); } } diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/PayAction.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/PayAction.java index 5aa2d60c..93d972c9 100644 --- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/PayAction.java +++ b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/PayAction.java @@ -79,16 +79,14 @@ public class PayAction { /** * JSAPI(V2)支付成功(前端)时的回调通知
- * <xml>
- * <OpenId><![CDATA[111222]]></OpenId>
+ * <xml>
<OpenId><![CDATA[111222]]></OpenId>
* <AppId><![CDATA[wwwwb4f85f3a797777]]></AppId>
* <IsSubscribe>1</IsSubscribe>
* <TimeStamp>1369743511</TimeStamp>
* <NonceStr><![CDATA[jALldRTHAFd5Tgs5]]></NonceStr>
* <AppSignature><![CDATA[bafe07f060f22dcda0bfdb4b5ff756f973aecffa]]> * </AppSignature>
- * <SignMethod><![CDATA[sha1]]></SignMethod>
- * </xml>
+ * <SignMethod><![CDATA[sha1]]></SignMethod>
</xml>
* 参与签名的字段为: appid、appkey、timestamp、noncestr、openid、issubscribe * * @param 订单信息 @@ -103,9 +101,12 @@ public class PayAction { /* * 收集url中携带的参数 /pay/notify/back?attach=8&bank_billno=201410293351060& * bank_type=2032&discount=0&fee_type=1&input_charset=UTF-8& - * notify_id=9fKbVf_qg6y-wSjtSMV0PLXeEn2oGfTM1s9dWSvR2B9U6iFQRTzmjrMWKUxvh9mpBLvnh8aqFbC_OFk1pTvFnFUO00Lln4fh& - * 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& + * notify_id=9fKbVf_qg6y- + * wSjtSMV0PLXeEn2oGfTM1s9dWSvR2B9U6iFQRTzmjrMWKUxvh9mpBLvnh8aqFbC_OFk1pTvFnFUO00Lln4fh + * & 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 */ log.info("jspay_notify_orderinfo,{}", objMap); @@ -165,8 +166,7 @@ public class PayAction { /** * V2.x版本Native支付时POST数据
- * <xml>
- * <OpenId><![CDATA[111222]]></OpenId>
+ * <xml>
<OpenId><![CDATA[111222]]></OpenId>
* <AppId><![CDATA[wwwwb4f85f3a797777]]></AppId>
* <IsSubscribe>1</IsSubscribe>
* <ProductId>[CDATA[000000]]</ProductId>
@@ -174,8 +174,7 @@ public class PayAction { * <NonceStr><![CDATA[jALldRTHAFd5Tgs5]]></NonceStr>
* <AppSignature><![CDATA[bafe07f060f22dcda0bfdb4b5ff756f973aecffa]]> * </AppSignature>
- * <SignMethod><![CDATA[sha1]]></SignMethod>
- * </xml>
+ * <SignMethod><![CDATA[sha1]]></SignMethod>
</xml>
* 参与签名的字段为: appid、appkey、timestamp、noncestr、openid、issubscribe、productId * * @param inputStream @@ -208,16 +207,14 @@ public class PayAction { /** * V3.x版本native回调
- * <xml>
- * <openid><![CDATA[111222]]></openid>
+ * <xml>
<openid><![CDATA[111222]]></openid>
* <appid><![CDATA[wwwwb4f85f3a797777]]></appid>
* <mch_id><![CDATA[1100022]]></mch_id>
* <is_subscribe>1</is_subscribe>
* <product_id>[CDATA[000000]]</product_id>
* <nonce_str><![CDATA[jALldRTHAFd5Tgs5]]></nonce_str>
* <sign><![CDATA[bafe07f060f22dcda0bfdb4b5ff756f973aecffa]]></sign& - * gt
- * </xml>
+ * gt
</xml>
* * @return * @throws PayException @@ -251,8 +248,7 @@ public class PayAction { } /** - * 告警通知 需要成功返回 success
- * <xml>
+ * 告警通知 需要成功返回 success
<xml>
* <AppId><![CDATA[wxf8b4f85f3a794e77]]></AppId>
* <ErrorType>1001</ErrorType>
* <Description><![CDATA[错误描述]]></Description>
diff --git a/weixin4j-qy/weixin4j-qy-api/src/test/java/com/foxinmy/weixin4j/qy/test/MenuTest.java b/weixin4j-qy/weixin4j-qy-api/src/test/java/com/foxinmy/weixin4j/qy/test/MenuTest.java index 09964cce..e6b6ff03 100644 --- a/weixin4j-qy/weixin4j-qy-api/src/test/java/com/foxinmy/weixin4j/qy/test/MenuTest.java +++ b/weixin4j-qy/weixin4j-qy-api/src/test/java/com/foxinmy/weixin4j/qy/test/MenuTest.java @@ -40,7 +40,8 @@ public class MenuTest extends TokenTest { b = new Button("qq", "http://www.qq.com", ButtonType.view); btnList.add(b); - + b = new Button("photo", "photo", ButtonType.pic_photo_or_album); + btnList.add(b); JsonResult result = menuApi.createMenu(btnList, 1); Assert.assertEquals(0, result.getCode()); }