articles) {
- this.articles = articles;
- }
-
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- for (Article article : articles) {
- sb.append("{title=").append(article.getTitle());
- sb.append(" ,description=").append(article.getDesc());
- sb.append(" ,picUrl=").append(article.getPicUrl());
- sb.append(" ,url=").append(article.getUrl()).append("}");
- }
- return sb.toString();
- }
- }
-
- @Override
- public String toString() {
- return String.format(
- "[ArticleNotify touser=%s ,msgtype=%s ,articles=%s]",
- super.getTouser(), super.getMsgtype().name(),
- this.news.toString());
- }
-}
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/BaseNotify.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/BaseNotify.java
deleted file mode 100644
index 1c2e1ce8..00000000
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/BaseNotify.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package com.foxinmy.weixin4j.mp.msg.notify;
-
-import java.io.Serializable;
-import java.io.Writer;
-
-import com.foxinmy.weixin4j.mp.type.ResponseType;
-import com.foxinmy.weixin4j.util.ClassUtil;
-import com.foxinmy.weixin4j.xml.XStream;
-import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
-import com.thoughtworks.xstream.io.json.JsonHierarchicalStreamDriver;
-import com.thoughtworks.xstream.io.json.JsonWriter;
-
-/**
- * 客服消息基类(48小时内不限制发送次数)
- *
- * @author jy.hu
- * @date 2014年4月4日
- * @since JDK 1.7
- * @see 发送客服消息
- */
-public class BaseNotify implements Serializable {
-
- private static final long serialVersionUID = 7190233634431087729L;
-
- private final static XStream jsonStream = new XStream(
- new JsonHierarchicalStreamDriver() {
- public HierarchicalStreamWriter createWriter(Writer writer) {
- return new JsonWriter(writer, JsonWriter.DROP_ROOT_MODE);
- }
- });
- static {
- Class>[] classes = ClassUtil
- .getClasses(BaseNotify.class.getPackage())
- .toArray(new Class[0]);
-
- jsonStream.setMode(XStream.NO_REFERENCES);
- jsonStream.autodetectAnnotations(true);
- jsonStream.processAnnotations(classes);
- }
- private String touser;
- private ResponseType msgtype;
-
- public BaseNotify(ResponseType msgtype) {
- this.msgtype = msgtype;
- }
-
- public BaseNotify(String touser, ResponseType msgtype) {
- this.touser = touser;
- this.msgtype = msgtype;
- }
-
- public String getTouser() {
- return touser;
- }
-
- public void setTouser(String touser) {
- this.touser = touser;
- }
-
- public ResponseType getMsgtype() {
- return msgtype;
- }
-
- public void setMsgtype(ResponseType msgtype) {
- this.msgtype = msgtype;
- }
-
- /**
- * 客服消息json化
- *
- * @return {"touser": "to","msgtype": "text","text": {"content": "123"}}
- */
- public String toJson() {
- return jsonStream.toXML(this);
- }
-
- @Override
- public String toString() {
- return String.format("[BaseNotify touser=%s ,msgtype=%s]", touser,
- msgtype.name());
- }
-}
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/ImageNotify.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/ImageNotify.java
deleted file mode 100644
index 01157aef..00000000
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/ImageNotify.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.foxinmy.weixin4j.mp.msg.notify;
-
-import com.foxinmy.weixin4j.mp.msg.model.Image;
-import com.foxinmy.weixin4j.mp.type.ResponseType;
-
-/**
- * 客服图片消息
- *
- * @author jy.hu
- * @date 2014年4月4日
- * @since JDK 1.7
- * @see 客服图片消息
- * @see com.foxinmy.weixin4j.mp.msg.model.Image
- * @see com.foxinmy.weixin4j.mp.msg.notify.BaseNotify
- * @see com.foxinmy.weixin4j.mp.msg.notify.BaseNotify#toJson()
- */
-public class ImageNotify extends BaseNotify {
-
- private static final long serialVersionUID = -7698823863398518425L;
-
- public ImageNotify() {
- this(null, null);
- }
-
- public ImageNotify(String touser) {
- this(null, touser);
- }
-
- public ImageNotify(String mediaId, String touser) {
- super(touser, ResponseType.image);
- this.pushMediaId(mediaId);
- }
-
- public void pushMediaId(String mediaId) {
- this.image = new Image(mediaId);
- }
-
- private Image image;
-
- @Override
- public String toString() {
- return String.format("[ImageNotify touser=%s ,msgtype=%s ,mediaId=%s]",
- super.getTouser(), super.getMsgtype().name(),
- this.image.getMediaId());
- }
-}
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/MusicNotify.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/MusicNotify.java
deleted file mode 100644
index 09087886..00000000
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/MusicNotify.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.foxinmy.weixin4j.mp.msg.notify;
-
-import com.foxinmy.weixin4j.mp.msg.model.Music;
-import com.foxinmy.weixin4j.mp.type.ResponseType;
-
-/**
- * 客服音乐消息
- *
- * @author jy.hu
- * @date 2014年4月4日
- * @since JDK 1.7
- * @see 客服音乐消息
- * @see com.foxinmy.weixin4j.mp.msg.model.Music
- * @see com.foxinmy.weixin4j.mp.msg.notify.BaseNotify
- * @see com.foxinmy.weixin4j.mp.msg.notify.BaseNotify#toJson()
- */
-public class MusicNotify extends BaseNotify {
-
- private static final long serialVersionUID = -7698823863398518425L;
-
- public MusicNotify() {
- this(null);
- }
-
- public MusicNotify(String touser) {
- super(touser, ResponseType.music);
- }
-
- public void pushMusic(String musicurl, String hqUrl, String mediaId) {
- this.music = new Music(null, null, musicurl, hqUrl, mediaId);
- }
-
- private Music music;
-
- public void setMusic(Music music) {
- this.music = music;
- }
-
- @Override
- public String toString() {
- return String.format("[MusicNotify touser=%s ,msgtype=%s ,music=%s]",
- super.getTouser(), super.getMsgtype().name(),
- this.music.toString());
- }
-}
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/README.md b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/README.md
deleted file mode 100644
index f6831d23..00000000
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/README.md
+++ /dev/null
@@ -1 +0,0 @@
-客服消息
\ No newline at end of file
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/TextNotify.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/TextNotify.java
deleted file mode 100644
index bbd43edf..00000000
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/TextNotify.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.foxinmy.weixin4j.mp.msg.notify;
-
-import com.foxinmy.weixin4j.mp.msg.model.Text;
-import com.foxinmy.weixin4j.mp.type.ResponseType;
-
-/**
- * 客服文本消息
- *
- * @author jy.hu
- * @date 2014年4月4日
- * @since JDK 1.7
- * @see 客服文本消息
- * @see com.foxinmy.weixin.msg.model.Text
- * @see com.foxinmy.weixin4j.mp.msg.notify.BaseNotify
- * @see com.foxinmy.weixin4j.mp.msg.notify.BaseNotify#toJson()
- */
-public class TextNotify extends BaseNotify {
-
- private static final long serialVersionUID = -7698823863398518425L;
-
- public TextNotify() {
- this(null, null);
- }
-
- public TextNotify(String content) {
- this(content,null);
- }
-
- public TextNotify(String content, String touser) {
- super(touser, ResponseType.text);
- this.text = new Text(content);
- }
-
- public void setContent(String content) {
- this.text = new Text(content);
- }
-
- private Text text;
-
- @Override
- public String toString() {
- return String.format("[TextNotify touser=%s ,msgtype=%s ,content=%s]",
- super.getTouser(), super.getMsgtype().name(),
- this.text.getContent());
- }
-}
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/VideoNotify.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/VideoNotify.java
deleted file mode 100644
index 92755cec..00000000
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/VideoNotify.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.foxinmy.weixin4j.mp.msg.notify;
-
-import com.foxinmy.weixin4j.mp.msg.model.Video;
-import com.foxinmy.weixin4j.mp.type.ResponseType;
-
-/**
- * 客服视频消息
- *
- * @author jy.hu
- * @date 2014年4月4日
- * @since JDK 1.7
- * @see 客服视频消息
- * @see com.foxinmy.weixin4j.mp.msg.model.Video
- * @see com.foxinmy.weixin4j.mp.msg.notify.BaseNotify
- * @see com.foxinmy.weixin4j.mp.msg.notify.BaseNotify#toJson()
- */
-public class VideoNotify extends BaseNotify {
-
- private static final long serialVersionUID = -7698823863398518425L;
-
- public VideoNotify() {
- this(null);
- }
-
- public VideoNotify(String touser) {
- super(touser, ResponseType.video);
- }
-
- public void pushVideo(String mediaId, String thumbMediaId) {
- this.video = new Video(mediaId, thumbMediaId);
- }
-
- private Video video;
-
- public void setVideo(Video video) {
- this.video = video;
- }
-
- @Override
- public String toString() {
- return String.format("[VideoNotify touser=%s ,msgtype=%s ,video=%s]",
- super.getTouser(), super.getMsgtype().name(),
- this.video.toString());
- }
-}
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/VoiceNotify.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/VoiceNotify.java
deleted file mode 100644
index a3ab1177..00000000
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/VoiceNotify.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.foxinmy.weixin4j.mp.msg.notify;
-
-import com.foxinmy.weixin4j.mp.msg.model.Voice;
-import com.foxinmy.weixin4j.mp.type.ResponseType;
-
-/**
- * 客服语音消息
- *
- * @author jy.hu
- * @date 2014年4月4日
- * @since JDK 1.7
- * @see 客服语音消息
- * @see com.foxinmy.weixin4j.mp.msg.model.Voice
- * @see com.foxinmy.weixin4j.mp.msg.notify.BaseNotify
- * @see com.foxinmy.weixin4j.mp.msg.notify.BaseNotify#toJson()
- */
-public class VoiceNotify extends BaseNotify {
-
- private static final long serialVersionUID = -7698823863398518425L;
-
- public VoiceNotify() {
- this(null, null);
- }
-
- public VoiceNotify(String touser) {
- this(null, touser);
- }
-
- public VoiceNotify(String mediaId, String touser) {
- super(touser, ResponseType.voice);
- this.pushMediaId(mediaId);
- }
-
- public void pushMediaId(String mediaId) {
- this.voice = new Voice(mediaId);
- }
-
- private Voice voice;
-
- @Override
- public String toString() {
- return String.format("[VoiceNotify touser=%s ,msgtype=%s ,mediaId=%s]",
- super.getTouser(), super.getMsgtype().name(),
- this.voice.getMediaId());
- }
-}
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 7d9b9f52..5aa2d60c 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,16 @@ public class PayAction {
/**
* JSAPI(V2)支付成功(前端)时的回调通知
- * <xml>
- * <OpenId><![CDATA[111222]]></OpenId>
- * <AppId><![CDATA[wwwwb4f85f3a797777]]></AppId>
- * <IsSubscribe>1</IsSubscribe>
- * <TimeStamp>1369743511</TimeStamp>
- * <NonceStr><![CDATA[jALldRTHAFd5Tgs5]]></NonceStr>
+ * <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>
+ * </AppSignature>
+ * <SignMethod><![CDATA[sha1]]></SignMethod>
+ * </xml>
* 参与签名的字段为: appid、appkey、timestamp、noncestr、openid、issubscribe
*
* @param 订单信息
@@ -165,17 +165,17 @@ public class PayAction {
/**
* V2.x版本Native支付时POST数据
- * <xml>
- * <OpenId><![CDATA[111222]]></OpenId>
- * <AppId><![CDATA[wwwwb4f85f3a797777]]></AppId>
- * <IsSubscribe>1</IsSubscribe>
- * <ProductId>[CDATA[000000]]</ProductId>
- * <TimeStamp>1369743511</TimeStamp>
- * <NonceStr><![CDATA[jALldRTHAFd5Tgs5]]></NonceStr>
+ * <xml>
+ * <OpenId><![CDATA[111222]]></OpenId>
+ * <AppId><![CDATA[wwwwb4f85f3a797777]]></AppId>
+ * <IsSubscribe>1</IsSubscribe>
+ * <ProductId>[CDATA[000000]]</ProductId>
+ * <TimeStamp>1369743511</TimeStamp>
+ * <NonceStr><![CDATA[jALldRTHAFd5Tgs5]]></NonceStr>
* <AppSignature><![CDATA[bafe07f060f22dcda0bfdb4b5ff756f973aecffa]]>
- * </AppSignature>
- * <SignMethod><![CDATA[sha1]]></SignMethod>
- * </xml>
+ * </AppSignature>
+ * <SignMethod><![CDATA[sha1]]></SignMethod>
+ * </xml>
* 参与签名的字段为: appid、appkey、timestamp、noncestr、openid、issubscribe、productId
*
* @param inputStream
@@ -208,16 +208,16 @@ public class PayAction {
/**
* V3.x版本native回调
- * <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>
+ * <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,17 +251,17 @@ public class PayAction {
}
/**
- * 告警通知 需要成功返回 success
- * <xml>
- * <AppId><![CDATA[wxf8b4f85f3a794e77]]></AppId>
- * <ErrorType>1001</ErrorType>
- * <Description><![CDATA[错误描述]]></Description>
- * <AlarmContent><![CDATA[错误详情]]></AlarmContent>
- * <TimeStamp>1393860740</TimeStamp>
+ * 告警通知 需要成功返回 success
+ * <xml>
+ * <AppId><![CDATA[wxf8b4f85f3a794e77]]></AppId>
+ * <ErrorType>1001</ErrorType>
+ * <Description><![CDATA[错误描述]]></Description>
+ * <AlarmContent><![CDATA[错误详情]]></AlarmContent>
+ * <TimeStamp>1393860740</TimeStamp>
* <AppSignature><![CDATA[签名方式跟JsPayRequest中的paySign一样]]></
- * AppSignature>
- * <SignMethod><![CDATA[sha1]]></SignMethod>
- * </xml>
+ * AppSignature>
+ * <SignMethod><![CDATA[sha1]]></SignMethod>
+ * </xml>
* 参与签名字段:alarmcontent、appid、appkey、description、errortype、timestamp
*
* @param inputStream
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/PayUtil.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/PayUtil.java
index 092ef016..ab4b80ec 100644
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/PayUtil.java
+++ b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/PayUtil.java
@@ -211,16 +211,16 @@ public class PayUtil {
* 生成编辑地址请求
*
*
- * err_msg edit_address:ok获取编辑收货地址成功
- * edit_address:fail获取编辑收货地址失败
- * userName 收货人姓名
- * telNumber 收货人电话
- * addressPostalCode 邮编
- * proviceFirstStageName 国标收货地址第一级地址
- * addressCitySecondStageName 国标收货地址第二级地址
- * addressCountiesThirdStageName 国标收货地址第三级地址
- * addressDetailInfo 详细收货地址信息
- * nationalCode 收货地址国家码
+ * err_msg edit_address:ok获取编辑收货地址成功
+ * edit_address:fail获取编辑收货地址失败
+ * userName 收货人姓名
+ * telNumber 收货人电话
+ * addressPostalCode 邮编
+ * proviceFirstStageName 国标收货地址第一级地址
+ * addressCitySecondStageName 国标收货地址第二级地址
+ * addressCountiesThirdStageName 国标收货地址第三级地址
+ * addressDetailInfo 详细收货地址信息
+ * nationalCode 收货地址国家码
*
* @param appId
* 公众号的ID
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/v2/JsPayRequestV2.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/v2/JsPayRequestV2.java
index 774aeb56..407d5d88 100644
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/v2/JsPayRequestV2.java
+++ b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/v2/JsPayRequestV2.java
@@ -10,7 +10,7 @@ import com.foxinmy.weixin4j.mp.payment.PayRequest;
import com.foxinmy.weixin4j.util.MapUtil;
/**
- * 微信JS支付:get_brand_wcpay_request
+ * 微信JS支付:get_brand_wcpay_request
* 所列参数均为非空字符串
*
* get_brand_wcpay_request:ok 支付成功
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/v3/PayPackageV3.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/v3/PayPackageV3.java
index 349098ac..b74498f1 100644
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/v3/PayPackageV3.java
+++ b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/v3/PayPackageV3.java
@@ -11,7 +11,7 @@ import com.foxinmy.weixin4j.util.RandomUtil;
import com.thoughtworks.xstream.annotations.XStreamAlias;
/**
- * V3支付的订单详情
+ * V3支付的订单详情
* 注意: total_fee字段传入时单位为元,创建支付时会转换为分
*
* @className PayPackageV3
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/v3/PayRequestV3.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/v3/PayRequestV3.java
index e185a266..4be9860e 100644
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/v3/PayRequestV3.java
+++ b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/v3/PayRequestV3.java
@@ -7,7 +7,7 @@ import com.foxinmy.weixin4j.mp.payment.PayRequest;
import com.thoughtworks.xstream.annotations.XStreamOmitField;
/**
- * JS支付:get_brand_wcpay_request
+ * JS支付:get_brand_wcpay_request
*
* get_brand_wcpay_request:ok 支付成功
* get_brand_wcpay_request:cancel 支付过程中用户取消
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/ArticleResponse.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/ArticleResponse.java
deleted file mode 100644
index 271d750b..00000000
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/ArticleResponse.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package com.foxinmy.weixin4j.mp.response;
-
-import java.util.LinkedList;
-
-import com.foxinmy.weixin4j.mp.msg.model.Article;
-import com.foxinmy.weixin4j.mp.type.ResponseType;
-import com.foxinmy.weixin4j.msg.BaseMessage;
-import com.thoughtworks.xstream.annotations.XStreamAlias;
-
-/**
- * 回复图文消息
- *
- * @className ArticleResponse
- * @author jy.hu
- * @date 2014年3月23日
- * @since JDK 1.7
- * @see 回复图文消息
- * @see com.foxinmy.weixin.msg.model.Article
- * @see com.foxinmy.weixin4j.mp.response.BaseResponse
- * @see com.foxinmy.weixin4j.mp.response.BaseResponse#toXml()
- */
-@XStreamAlias("xml")
-public class ArticleResponse extends BaseResponse {
- private static final int MAX_ARTICLE_COUNT = 10;
- private static final long serialVersionUID = -7331603018352309317L;
-
- public ArticleResponse(BaseMessage inMessage) {
- super(ResponseType.news, inMessage);
- }
-
- @XStreamAlias("ArticleCount")
- private int count; // 图文消息个数,限制为10条以内
- @XStreamAlias("Articles")
- private LinkedList articles;
-
- public void pushArticle(String title, String desc, String picUrl, String url) {
- if (this.articles == null) {
- this.articles = new LinkedList();
- }
- if ((articles.size() + 1) > MAX_ARTICLE_COUNT) {
- return;
- }
- this.articles.add(new Article(title, desc, picUrl, url));
- }
-
- public void pushFirstArticle(String title, String desc, String picUrl,
- String url) {
- if (this.articles == null) {
- this.articles = new LinkedList();
- }
- this.articles.addFirst(new Article(title, desc, picUrl, url));
- }
-
- public void pushLastArticle(String title, String desc, String picUrl,
- String url) {
- if (this.articles == null) {
- this.articles = new LinkedList();
- }
- this.articles.addLast(new Article(title, desc, picUrl, url));
- }
-
- public Article removeLastArticle() {
- Article article = null;
- if (this.articles != null) {
- article = this.articles.removeLast();
- }
- return article;
- }
-
- public Article removeFirstArticle() {
- if (this.articles != null) {
- return this.articles.removeFirst();
- }
- return null;
- }
-
- public boolean isMaxCount() {
- return this.articles.size() == MAX_ARTICLE_COUNT;
- }
-
- @Override
- public String toXml() {
- this.count = articles.size();
- xmlStream.alias("item", Article.class);
- xmlStream.aliasField("Title", Article.class, "title");
- xmlStream.aliasField("Description", Article.class, "desc");
- xmlStream.aliasField("PicUrl", Article.class, "picUrl");
- xmlStream.aliasField("Url", Article.class, "url");
- return xmlStream.toXML(this);
- }
-
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append("[BaseResponse ,toUserName=").append(super.getToUserName());
- sb.append(" ,fromUserName=").append(super.getFromUserName());
- sb.append(" ,msgType=").append(super.getMsgType().name());
- sb.append(" ,articles=").append(this.articles.toString());
- sb.append(" ,createTime=").append(super.getCreateTime()).append("]");
- return sb.toString();
- }
-}
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/BaseResponse.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/BaseResponse.java
deleted file mode 100644
index e219ead2..00000000
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/BaseResponse.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.foxinmy.weixin4j.mp.response;
-
-import com.foxinmy.weixin4j.model.BaseMsg;
-import com.foxinmy.weixin4j.mp.type.ResponseType;
-import com.foxinmy.weixin4j.msg.BaseMessage;
-import com.foxinmy.weixin4j.util.ClassUtil;
-import com.foxinmy.weixin4j.xml.XStream;
-import com.thoughtworks.xstream.annotations.XStreamAlias;
-
-/**
- * 响应消息基类
- *
- * 回复图片等多媒体消息时需要预先上传多媒体文件到微信服务器,
- * 假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试
- *
- *
- * @className BaseResponse
- * @author jy.hu
- * @date 2014年4月6日
- * @since JDK 1.7
- */
-public class BaseResponse extends BaseMsg {
-
- private static final long serialVersionUID = 7761192742840031607L;
- protected final static XStream xmlStream = XStream.get();
- static {
- Class>[] classes = ClassUtil.getClasses(
- BaseResponse.class.getPackage()).toArray(new Class[0]);
-
- xmlStream.autodetectAnnotations(true);
- xmlStream.processAnnotations(classes);
- }
- @XStreamAlias("MsgType")
- private ResponseType msgType; // 消息类型
-
- public BaseResponse(ResponseType msgType) {
- this.msgType = msgType;
- }
-
- public BaseResponse(ResponseType msgType, BaseMessage inMessage) {
- this(msgType, inMessage.getFromUserName(), inMessage.getToUserName());
- }
-
- public BaseResponse(ResponseType msgType, String toUserName,
- String fromUserName) {
- super(toUserName, fromUserName);
- this.msgType = msgType;
-
- }
-
- public ResponseType getMsgType() {
- return msgType;
- }
-
- public void setMsgType(ResponseType msgType) {
- this.msgType = msgType;
- }
-
- /**
- * 消息对象转换为微信服务器接受的xml格式消息
- *
- * @return xml字符串
- */
- public String toXml() {
- return xmlStream.toXML(this);
- }
-}
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/ImageResponse.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/ImageResponse.java
deleted file mode 100644
index 05b56156..00000000
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/ImageResponse.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.foxinmy.weixin4j.mp.response;
-
-import com.foxinmy.weixin4j.mp.msg.model.Image;
-import com.foxinmy.weixin4j.mp.type.ResponseType;
-import com.foxinmy.weixin4j.msg.BaseMessage;
-import com.thoughtworks.xstream.annotations.XStreamAlias;
-
-/**
- * 回复图片消息
- *
- * @className ImageResponse
- * @author jy.hu
- * @date 2014年3月23日
- * @since JDK 1.7
- * @see 回复图片消息
- * @see com.foxinmy.weixin4j.mp.msg.model.Image
- * @see com.foxinmy.weixin4j.msg.BaseMessage
- * @see com.foxinmy.weixin4j.mp.response.BaseResponse
- * @see com.foxinmy.weixin4j.mp.response.BaseResponse#toXml()
- */
-@XStreamAlias("xml")
-public class ImageResponse extends BaseResponse {
- private static final long serialVersionUID = 6998255203997554731L;
-
- public ImageResponse(BaseMessage inMessage) {
- this(null, inMessage);
- }
-
- public ImageResponse(String mediaId, BaseMessage inMessage) {
- super(ResponseType.image, inMessage);
- super.getMsgType().setMessageClass(ImageResponse.class);
- this.pushMediaId(mediaId);
- }
-
- @XStreamAlias("Image")
- private Image image;
-
- public void pushMediaId(String mediaId) {
- this.image = new Image(mediaId);
- }
-
- @Override
- public String toXml() {
- xmlStream.aliasField("MediaId", Image.class, "mediaId");
- return xmlStream.toXML(this);
- }
-
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append("[ImageResponse ,toUserName=").append(super.getToUserName());
- sb.append(" ,fromUserName=").append(super.getFromUserName());
- sb.append(" ,msgType=").append(super.getMsgType().name());
- sb.append(" ,mediaId=").append(this.image.getMediaId());
- sb.append(" ,createTime=").append(super.getCreateTime()).append("]");
- return sb.toString();
- }
-}
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/MusicResponse.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/MusicResponse.java
deleted file mode 100644
index b40b2872..00000000
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/MusicResponse.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package com.foxinmy.weixin4j.mp.response;
-
-import com.foxinmy.weixin4j.mp.msg.model.Music;
-import com.foxinmy.weixin4j.mp.type.ResponseType;
-import com.foxinmy.weixin4j.msg.BaseMessage;
-import com.thoughtworks.xstream.annotations.XStreamAlias;
-
-/**
- * 回复音乐消息
- *
- * @className MusicResponse
- * @author jy.hu
- * @date 2014年3月23日
- * @since JDK 1.7
- * @see 回复音乐消息
- * @see com.foxinmy.weixin4j.mp.msg.model.Music
- * @see com.foxinmy.weixin4j.mp.response.BaseResponse
- * @see com.foxinmy.weixin4j.mp.response.BaseResponse#toXml()
- */
-@XStreamAlias("xml")
-public class MusicResponse extends BaseResponse {
-
- private static final long serialVersionUID = 4384403772658796395L;
-
- public MusicResponse(BaseMessage inMessage) {
- super(ResponseType.music, inMessage);
- }
-
- @XStreamAlias("Music")
- private Music music;
-
- public void pushMusic(String mediaId) {
- this.music = new Music(mediaId);
- }
-
- public void setMusic(Music music) {
- this.music = music;
- }
-
- @Override
- public String toXml() {
- xmlStream.aliasField("MediaId", Music.class, "musicUrl");
- xmlStream.aliasField("Title", Music.class, "title");
- xmlStream.aliasField("Description", Music.class, "desc");
- xmlStream.aliasField("HQMusicUrl", Music.class, "hqMusicUrl");
- xmlStream.aliasField("ThumbMediaId", Music.class, "thumbMediaId");
- return xmlStream.toXML(this);
- }
-
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append("[MusicResponse ,toUserName=").append(super.getToUserName());
- sb.append(" ,fromUserName=").append(super.getFromUserName());
- sb.append(" ,msgType=").append(super.getMsgType().name());
- sb.append(" ,music=").append(music.toString());
- sb.append(" ,createTime=").append(super.getCreateTime()).append("]");
- return sb.toString();
- }
-}
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/README.md b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/README.md
deleted file mode 100644
index 639691ac..00000000
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/README.md
+++ /dev/null
@@ -1 +0,0 @@
-被动响应消息
\ No newline at end of file
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/TextResponse.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/TextResponse.java
deleted file mode 100644
index d170d682..00000000
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/TextResponse.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package com.foxinmy.weixin4j.mp.response;
-
-import com.foxinmy.weixin4j.mp.type.ResponseType;
-import com.foxinmy.weixin4j.msg.BaseMessage;
-import com.thoughtworks.xstream.annotations.XStreamAlias;
-
-/**
- * 回复文本消息
- *
- * @className TextResponse
- * @author jy.hu
- * @date 2014年4月6日
- * @since JDK 1.7
- * @see 接收文本消息
- * @see 回复文本消息
- * @see com.foxinmy.weixin4j.msg.BaseMessage
- * @see com.foxinmy.weixin4j.mp.response.BaseResponse
- * @see com.foxinmy.weixin4j.mp.response.BaseResponse#toXml()
- */
-@XStreamAlias("xml")
-public class TextResponse extends BaseResponse {
-
- private static final long serialVersionUID = -7018053906644190260L;
-
- public TextResponse() {
- super(ResponseType.text);
- }
-
- public TextResponse(String content, BaseMessage inMessage) {
- super(ResponseType.text, inMessage);
- this.content = content;
- }
-
- @XStreamAlias("Content")
- private String content; // 消息内容
-
- public String getContent() {
- return content;
- }
-
- public void setContent(String content) {
- this.content = content;
- }
-
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append("[TextResponse ,toUserName=").append(super.getToUserName());
- sb.append(" ,fromUserName=").append(super.getFromUserName());
- sb.append(" ,msgType=").append(super.getMsgType().name());
- sb.append(" ,content=").append(content);
- sb.append(" ,createTime=").append(super.getCreateTime()).append("]");
- return sb.toString();
- }
-}
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/TransferResponse.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/TransferResponse.java
deleted file mode 100644
index 108fa65e..00000000
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/TransferResponse.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package com.foxinmy.weixin4j.mp.response;
-
-import com.foxinmy.weixin4j.mp.type.ResponseType;
-import com.foxinmy.weixin4j.msg.BaseMessage;
-import com.thoughtworks.xstream.annotations.XStreamAlias;
-
-/**
- * 转移消息到多客服端消息
- *
- * @className TransferResponse
- * @author jy.hu
- * @date 2014年6月28日
- * @since JDK 1.7
- * @see 多客服转移消息
- * @see 将消息转发到多客服
- * @see com.foxinmy.weixin4j.mp.response.BaseResponse
- * @see com.foxinmy.weixin4j.mp.response.BaseResponse#toXml()
- */
-@XStreamAlias("xml")
-public class TransferResponse extends BaseResponse {
-
- private static final long serialVersionUID = -5479496746108594940L;
-
- public TransferResponse(BaseMessage inMessage) {
- super(ResponseType.transfer_customer_service, inMessage);
- }
-
- /**
- * 需如果指定的客服没有接入能力(不在线、没有开启自动接入或者自动接入已满) 该用户会一直等待指定客服有接入能力后才会被接入 而不会被其他客服接待
- *
- * @param inMessage
- * @param kfAccount
- * 转移客服的账号
- */
- public TransferResponse(BaseMessage inMessage, String kfAccount) {
- super(ResponseType.transfer_customer_service, inMessage);
- this.transInfo = new TransInfo(kfAccount);
- }
-
- @XStreamAlias("TransInfo")
- private TransInfo transInfo;
-
- public String getTransAccount() {
- if (transInfo != null) {
- return transInfo.getKfAccount();
- }
- return null;
- }
-
- public void setTransAccount(String kfAccount) {
- this.transInfo = new TransInfo(kfAccount);
- }
-
- private static class TransInfo {
- // 指定会话接入的客服账号
- @XStreamAlias("KfAccount")
- private String kfAccount;
-
- public TransInfo(String kfAccount) {
- this.kfAccount = kfAccount;
- }
-
- public String getKfAccount() {
- return kfAccount;
- }
-
- @Override
- public String toString() {
- return "TransInfo [kfAccount=" + kfAccount + "]";
- }
- }
-}
\ No newline at end of file
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/VideoResponse.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/VideoResponse.java
deleted file mode 100644
index 918ccd48..00000000
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/VideoResponse.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package com.foxinmy.weixin4j.mp.response;
-
-import com.foxinmy.weixin4j.mp.msg.model.Video;
-import com.foxinmy.weixin4j.mp.type.ResponseType;
-import com.foxinmy.weixin4j.msg.BaseMessage;
-import com.thoughtworks.xstream.annotations.XStreamAlias;
-
-/**
- * 回复视频消息
- *
- * @className VideoResponse
- * @author jy.hu
- * @date 2014年4月6日
- * @since JDK 1.7
- * @see 回复视频消息
- * @see com.foxinmy.weixin4j.mp.msg.model.Video
- * @see com.foxinmy.weixin4j.mp.response.BaseResponse
- * @see com.foxinmy.weixin4j.mp.response.BaseResponse#toXml()
- */
-@XStreamAlias("xml")
-public class VideoResponse extends BaseResponse {
-
- private static final long serialVersionUID = -1013075358679078381L;
-
- public VideoResponse(BaseMessage inMessage) {
- super(ResponseType.video, inMessage);
- super.getMsgType().setMessageClass(VideoResponse.class);
- }
-
- @XStreamAlias("Video")
- private Video video;
-
- public void pushVideo(String mediaId) {
- this.video = new Video(mediaId);
- }
-
- public void setVideo(Video video) {
- this.video = video;
- }
-
- @Override
- public String toXml() {
- xmlStream.aliasField("MediaId", Video.class, "mediaId");
- xmlStream.aliasField("Title", Video.class, "title");
- xmlStream.aliasField("Description", Video.class, "desc");
- xmlStream.omitField(Video.class, "thumbMediaId");
- return xmlStream.toXML(this);
- }
-
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append("[VideoResponse ,toUserName=").append(super.getToUserName());
- sb.append(" ,fromUserName=").append(super.getFromUserName());
- sb.append(" ,msgType=").append(super.getMsgType().name());
- sb.append(" ,video=").append(video.toString());
- sb.append(" ,createTime=").append(super.getCreateTime()).append("]");
- return sb.toString();
- }
-}
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/VoiceResponse.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/VoiceResponse.java
deleted file mode 100644
index 33c9b6fd..00000000
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/response/VoiceResponse.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.foxinmy.weixin4j.mp.response;
-
-import com.foxinmy.weixin4j.mp.msg.model.Voice;
-import com.foxinmy.weixin4j.mp.type.ResponseType;
-import com.foxinmy.weixin4j.msg.BaseMessage;
-import com.thoughtworks.xstream.annotations.XStreamAlias;
-
-/**
- * 回复语音消息
- *
- * @className VoiceResponse
- * @author jy.hu
- * @date 2014年3月23日
- * @since JDK 1.7
- * @see 回复语音消息
- * @see com.foxinmy.weixin4j.mp.msg.model.Voice
- * @see com.foxinmy.weixin4j.mp.response.BaseResponse
- * @see com.foxinmy.weixin4j.mp.response.BaseResponse#toXml()
- */
-@XStreamAlias("xml")
-public class VoiceResponse extends BaseResponse {
-
- private static final long serialVersionUID = -7944926238652243793L;
-
- public VoiceResponse(BaseMessage inMessage) {
- this(null, inMessage);
- }
-
- public VoiceResponse(String mediaId, BaseMessage inMessage) {
- super(ResponseType.voice, inMessage);
- super.getMsgType().setMessageClass(VoiceResponse.class);
- this.pushMediaId(mediaId);
- }
-
- @XStreamAlias("Voice")
- private Voice voice;
-
- public void pushMediaId(String mediaId) {
- this.voice = new Voice(mediaId);
- }
-
- @Override
- public String toXml() {
- xmlStream.aliasField("MediaId", Voice.class, "mediaId");
- return xmlStream.toXML(this);
- }
-
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append("[VoiceResponse ,toUserName=").append(super.getToUserName());
- sb.append(" ,fromUserName=").append(super.getFromUserName());
- sb.append(" ,msgType=").append(super.getMsgType().name());
- sb.append(" ,mediaId=").append(voice.getMediaId());
- sb.append(" ,createTime=").append(super.getCreateTime()).append("]");
- return sb.toString();
- }
-}
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/type/CustomRecordOperCode.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/type/CustomRecordOperCode.java
index 09de5e7c..7fda7a1a 100644
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/type/CustomRecordOperCode.java
+++ b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/type/CustomRecordOperCode.java
@@ -1,7 +1,11 @@
package com.foxinmy.weixin4j.mp.type;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* 客服消息记录中的回话状态
+ *
* @className CustomRecordOperCode
* @author jy
* @date 2014年11月16日
@@ -14,6 +18,17 @@ public enum CustomRecordOperCode {
2002, "客服发送消息"), RECEIVE2(2003, "客服收到消息");
private int code;
private String desc;
+ private static Map customRecordOperCodeMap;
+ static {
+ customRecordOperCodeMap = new HashMap();
+ for (CustomRecordOperCode operCode : CustomRecordOperCode.values()) {
+ customRecordOperCodeMap.put(operCode.getCode(), operCode);
+ }
+ }
+
+ public static CustomRecordOperCode getOper(int code) {
+ return customRecordOperCodeMap.get(code);
+ }
CustomRecordOperCode(int code, String desc) {
this.code = code;
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/type/ResponseType.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/type/ResponseType.java
deleted file mode 100644
index 07b583fb..00000000
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/type/ResponseType.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.foxinmy.weixin4j.mp.type;
-
-import com.foxinmy.weixin4j.mp.response.ArticleResponse;
-import com.foxinmy.weixin4j.mp.response.BaseResponse;
-import com.foxinmy.weixin4j.mp.response.ImageResponse;
-import com.foxinmy.weixin4j.mp.response.MusicResponse;
-import com.foxinmy.weixin4j.mp.response.TextResponse;
-import com.foxinmy.weixin4j.mp.response.TransferResponse;
-import com.foxinmy.weixin4j.mp.response.VideoResponse;
-import com.foxinmy.weixin4j.mp.response.VoiceResponse;
-
-/**
- * 被动响应类型
- * @className ResponseType
- * @author jy
- * @date 2014年11月5日
- * @since JDK 1.7
- * @see
- */
-public enum ResponseType {
- text(TextResponse.class), image(ImageResponse.class), voice(
- VoiceResponse.class), video(VideoResponse.class), music(
- MusicResponse.class), news(ArticleResponse.class), transfer_customer_service(
- TransferResponse.class);
- private Class extends BaseResponse> messageClass;
-
- ResponseType(Class extends BaseResponse> messageClass) {
- this.messageClass = messageClass;
- }
-
- public void setMessageClass(Class extends BaseResponse> messageClass) {
- this.messageClass = messageClass;
- }
-
- public Class extends BaseResponse> getMessageClass() {
- return messageClass;
- }
-}
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/util/EntityUtil.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/util/EntityUtil.java
deleted file mode 100644
index 1b1a5718..00000000
--- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/util/EntityUtil.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.foxinmy.weixin4j.mp.util;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.foxinmy.weixin4j.mp.type.CustomRecordOperCode;
-
-/**
- * 实体帮助类
- *
- * @className EntityUtil
- * @author jy
- * @date 2014年11月16日
- * @since JDK 1.7
- * @see
- */
-public class EntityUtil {
- private static Map customRecordOperCodeMap;
- static {
- customRecordOperCodeMap = new HashMap();
- for (CustomRecordOperCode operCode : CustomRecordOperCode.values()) {
- customRecordOperCodeMap.put(operCode.getCode(), operCode);
- }
- }
-
- public static CustomRecordOperCode getCustomRecordOperCode(int code) {
- return customRecordOperCodeMap.get(code);
- }
-}
diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/resources/weixin.properties b/weixin4j-mp/weixin4j-mp-api/src/main/resources/weixin.properties
index 8e3edf72..c0e3ae29 100644
--- a/weixin4j-mp/weixin4j-mp-api/src/main/resources/weixin.properties
+++ b/weixin4j-mp/weixin4j-mp-api/src/main/resources/weixin.properties
@@ -1,12 +1,12 @@
# \u6d4b\u8bd5\u4e4b\u7528 \u6b63\u5f0f\u73af\u5883\u4e0bcopy\u4e00\u4efd\u5230classpath
# \u516c\u4f17\u53f7\u4fe1\u606f
account={"id":"wx4ab8f8de58159a57","secret":"1d4eb0f4bf556aaed539f30ed05ca795",\
-"token":"\u5f00\u653e\u8005\u7684token \u975e\u5fc5\u987b","openId":"\u516c\u4f17\u53f7\u7684openid \u975e\u5fc5\u987b",\
+"token":"\u5f00\u653e\u8005\u7684token \u5fc5\u987b","openId":"\u516c\u4f17\u53f7\u7684openid \u975e\u5fc5\u987b",\
"encodingAesKey":"\u516c\u4f17\u53f7\u8bbe\u7f6e\u4e86\u52a0\u5bc6\u65b9\u5f0f\u4e14\u4e3a\u300c\u5b89\u5168\u6a21\u5f0f\u300d\u65f6\u9700\u8981\u586b\u5165",\
-"mchId":"V3.x\u7248\u672c\u4e0b\u7684\u5fae\u4fe1\u5546\u6237\u53f7",\
-"version":3,\
-"partnerId":"\u8d22\u4ed8\u901a\u7684\u5546\u6237\u53f7","partnerKey":"\u8d22\u4ed8\u901a\u5546\u6237\u6743\u9650\u5bc6\u94a5Key",\
-"paySignKey":"\u5fae\u4fe1\u652f\u4ed8\u4e2d\u8c03\u7528API\u7684\u5bc6\u94a5"}
+"mchId":"V3.x\u7248\u672c\u4e0b\u7684\u5fae\u4fe1\u5546\u6237\u53f7 \u670d\u52a1\u53f7\u652f\u4ed8\u65f6\u9700\u8981\u586b\u5165",\
+"version":2,\
+"partnerId":"\u8d22\u4ed8\u901a\u7684\u5546\u6237\u53f7 \u670d\u52a1\u53f7\u652f\u4ed8\u65f6\u9700\u8981\u586b\u5165","partnerKey":"\u8d22\u4ed8\u901a\u5546\u6237\u6743\u9650\u5bc6\u94a5Key \u670d\u52a1\u53f7\u652f\u4ed8\u65f6\u9700\u8981\u586b\u5165",\
+"paySignKey":"\u5fae\u4fe1\u652f\u4ed8\u4e2d\u8c03\u7528API\u7684\u5bc6\u94a5 \u670d\u52a1\u53f7\u652f\u4ed8\u65f6\u9700\u8981\u586b\u5165"}
# \u4f7f\u7528FileTokenHolder\u65f6token\u7684\u5b58\u653e\u8def\u5f84
token_path=/tmp/weixin/token
@@ -17,4 +17,4 @@ media_path=/tmp/weixin/media
# \u5bf9\u8d26\u5355\u4fdd\u5b58\u8def\u5f84
bill_path=/tmp/weixin/bill
# ca\u8bc1\u4e66\u5b58\u653e\u7684\u5b8c\u6574\u8def\u5f84
-ca_file=/tmp/weixin/xxxxxx.p12
\ No newline at end of file
+ca_file=/tmp/weixin/xxxxx.p12 | xxxxx.pfx
\ No newline at end of file
diff --git a/weixin4j-mp/weixin4j-mp-api/src/test/java/com/foxinmy/weixin4j/mp/test/MenuTest.java b/weixin4j-mp/weixin4j-mp-api/src/test/java/com/foxinmy/weixin4j/mp/test/MenuTest.java
index 4c9c8a10..73181156 100644
--- a/weixin4j-mp/weixin4j-mp-api/src/test/java/com/foxinmy/weixin4j/mp/test/MenuTest.java
+++ b/weixin4j-mp/weixin4j-mp-api/src/test/java/com/foxinmy/weixin4j/mp/test/MenuTest.java
@@ -9,8 +9,8 @@ import org.junit.Test;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.JsonResult;
+import com.foxinmy.weixin4j.model.Button;
import com.foxinmy.weixin4j.mp.api.MenuApi;
-import com.foxinmy.weixin4j.mp.model.Button;
import com.foxinmy.weixin4j.type.ButtonType;
/**
diff --git a/weixin4j-mp/weixin4j-mp-api/src/test/java/com/foxinmy/weixin4j/mp/test/msg/MassMsgTest.java b/weixin4j-mp/weixin4j-mp-api/src/test/java/com/foxinmy/weixin4j/mp/test/msg/MassMsgTest.java
index 8847f64b..e8eb28b8 100644
--- a/weixin4j-mp/weixin4j-mp-api/src/test/java/com/foxinmy/weixin4j/mp/test/msg/MassMsgTest.java
+++ b/weixin4j-mp/weixin4j-mp-api/src/test/java/com/foxinmy/weixin4j/mp/test/msg/MassMsgTest.java
@@ -13,8 +13,10 @@ import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.JsonResult;
import com.foxinmy.weixin4j.mp.api.MassApi;
import com.foxinmy.weixin4j.mp.api.MediaApi;
-import com.foxinmy.weixin4j.mp.model.MpArticle;
import com.foxinmy.weixin4j.mp.test.TokenTest;
+import com.foxinmy.weixin4j.msg.model.Image;
+import com.foxinmy.weixin4j.msg.model.MpArticle;
+import com.foxinmy.weixin4j.msg.model.Video;
import com.foxinmy.weixin4j.type.MediaType;
/**
@@ -47,20 +49,20 @@ public class MassMsgTest extends TokenTest {
@Test
public void uploadVideo() throws WeixinException {
- String massId = massApi.uploadVideo("mediaId", "title", "desc");
+ Video video = new Video("mediaId", "title", "desc");
+ String massId = massApi.uploadVideo(video);
Assert.assertTrue(massId != null);
}
@Test
public void massByGroup() throws WeixinException {
- String massId = massApi.massByGroup("123", MediaType.image, "groupId");
+ String massId = massApi.massByGroupId(new Image("mediaId"), 0);
Assert.assertTrue(massId != null);
}
@Test
public void massByOpenIds() throws WeixinException {
- String massId = massApi
- .massByOpenIds("123", MediaType.image, "openIds");
+ String massId = massApi.massByOpenIds(new Image("mediaId"), "openIds");
Assert.assertTrue(massId != null);
}
@@ -70,7 +72,7 @@ public class MassMsgTest extends TokenTest {
String thumbMediaId = mediaApi.uploadMedia(new File("/tmp/test.jpg"),
MediaType.image);
articles.add(new MpArticle(thumbMediaId, "title", "content"));
- String massId = massApi.massArticleByGroup(articles, "0");
+ String massId = massApi.massArticleByGroupId(articles, 0);
Assert.assertTrue(massId != null);
}
diff --git a/weixin4j-mp/weixin4j-mp-api/src/test/java/com/foxinmy/weixin4j/mp/test/msg/NotifyMsgTest.java b/weixin4j-mp/weixin4j-mp-api/src/test/java/com/foxinmy/weixin4j/mp/test/msg/NotifyMsgTest.java
index 28f08909..bab2a231 100644
--- a/weixin4j-mp/weixin4j-mp-api/src/test/java/com/foxinmy/weixin4j/mp/test/msg/NotifyMsgTest.java
+++ b/weixin4j-mp/weixin4j-mp-api/src/test/java/com/foxinmy/weixin4j/mp/test/msg/NotifyMsgTest.java
@@ -11,14 +11,14 @@ import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.JsonResult;
import com.foxinmy.weixin4j.mp.api.MediaApi;
import com.foxinmy.weixin4j.mp.api.NotifyApi;
-import com.foxinmy.weixin4j.mp.msg.notify.ArticleNotify;
-import com.foxinmy.weixin4j.mp.msg.notify.BaseNotify;
-import com.foxinmy.weixin4j.mp.msg.notify.ImageNotify;
-import com.foxinmy.weixin4j.mp.msg.notify.MusicNotify;
-import com.foxinmy.weixin4j.mp.msg.notify.TextNotify;
-import com.foxinmy.weixin4j.mp.msg.notify.VideoNotify;
-import com.foxinmy.weixin4j.mp.msg.notify.VoiceNotify;
+import com.foxinmy.weixin4j.mp.message.NotifyMessage;
import com.foxinmy.weixin4j.mp.test.TokenTest;
+import com.foxinmy.weixin4j.msg.model.Image;
+import com.foxinmy.weixin4j.msg.model.Music;
+import com.foxinmy.weixin4j.msg.model.News;
+import com.foxinmy.weixin4j.msg.model.Text;
+import com.foxinmy.weixin4j.msg.model.Video;
+import com.foxinmy.weixin4j.msg.model.Voice;
import com.foxinmy.weixin4j.type.MediaType;
/**
@@ -43,50 +43,48 @@ public class NotifyMsgTest extends TokenTest {
@Test
public void text() {
- TextNotify notify = new TextNotify("123", "to");
+ NotifyMessage notify = new NotifyMessage("to", new Text("ttt"));
System.out.println(notify.toJson());
}
@Test
public void image() {
- ImageNotify notify = new ImageNotify("to");
- notify.pushMediaId("123");
+ NotifyMessage notify = new NotifyMessage("to", new Image("image"));
System.out.println(notify.toJson());
}
@Test
public void voice() {
- VoiceNotify notify = new VoiceNotify("to");
- notify.pushMediaId("123");
+ NotifyMessage notify = new NotifyMessage("to", new Voice("voice"));
System.out.println(notify.toJson());
}
@Test
public void video() {
- VideoNotify notify = new VideoNotify("to");
- notify.pushVideo("123", "m123");
+ NotifyMessage notify = new NotifyMessage("to", new Video("video"));
System.out.println(notify.toJson());
}
@Test
public void music() {
- MusicNotify notify = new MusicNotify("to");
- notify.pushMusic("url", "hqUrl", "mediaId");
+ NotifyMessage notify = new NotifyMessage("to", new Music("music"));
System.out.println(notify.toJson());
}
@Test
- public void article() {
- ArticleNotify notify = new ArticleNotify("to");
- notify.pushArticle("title1", "desc1", "picUrl1", "url1");
- notify.pushArticle("title2", "desc2", "picUrl2", "url2");
+ public void news() {
+ News news = new News();
+ NotifyMessage notify = new NotifyMessage("to", news);
+ news.pushArticle("title1", "desc1", "picUrl1", "url1");
+ news.pushArticle("title2", "desc2", "picUrl2", "url2");
System.out.println(notify.toJson());
}
@Test
public void send1() throws IOException, WeixinException {
- BaseNotify notify = new TextNotify("this is a notify message!",
- "owGBft_vbBbOaQOmpEUE4xDLeRSU");
+ NotifyMessage notify = new NotifyMessage(
+ "owGBft_vbBbOaQOmpEUE4xDLeRSU", new Text(
+ "this is a notify message!"));
JsonResult result = notifyApi.sendNotify(notify);
Assert.assertEquals(0, result.getCode());
}
@@ -95,9 +93,8 @@ public class NotifyMsgTest extends TokenTest {
public void send2() throws WeixinException, IOException {
String mediaId = mediaApi.uploadMedia(new File("/tmp/test.jpg"),
MediaType.image);
- ImageNotify imageNotify = new ImageNotify(
- "owGBft_vbBbOaQOmpEUE4xDLeRSU");
- imageNotify.pushMediaId(mediaId);
+ NotifyMessage imageNotify = new NotifyMessage(
+ "owGBft_vbBbOaQOmpEUE4xDLeRSU", new Image(mediaId));
JsonResult result = notifyApi.sendNotify(imageNotify);
Assert.assertEquals(0, result.getCode());
}
diff --git a/weixin4j-mp/weixin4j-mp-api/src/test/java/com/foxinmy/weixin4j/mp/test/msg/OutMsgTest.java b/weixin4j-mp/weixin4j-mp-api/src/test/java/com/foxinmy/weixin4j/mp/test/msg/OutMsgTest.java
index 8c1d6e4a..dff3f554 100644
--- a/weixin4j-mp/weixin4j-mp-api/src/test/java/com/foxinmy/weixin4j/mp/test/msg/OutMsgTest.java
+++ b/weixin4j-mp/weixin4j-mp-api/src/test/java/com/foxinmy/weixin4j/mp/test/msg/OutMsgTest.java
@@ -4,14 +4,16 @@ import org.dom4j.DocumentException;
import org.junit.Before;
import org.junit.Test;
-import com.foxinmy.weixin4j.mp.response.ArticleResponse;
-import com.foxinmy.weixin4j.mp.response.ImageResponse;
-import com.foxinmy.weixin4j.mp.response.MusicResponse;
-import com.foxinmy.weixin4j.mp.response.TextResponse;
-import com.foxinmy.weixin4j.mp.response.VideoResponse;
-import com.foxinmy.weixin4j.mp.response.VoiceResponse;
-import com.foxinmy.weixin4j.msg.BaseMessage;
+import com.foxinmy.weixin4j.model.BaseMsg;
+import com.foxinmy.weixin4j.mp.message.ResponseMessage;
import com.foxinmy.weixin4j.msg.TextMessage;
+import com.foxinmy.weixin4j.msg.model.Image;
+import com.foxinmy.weixin4j.msg.model.Music;
+import com.foxinmy.weixin4j.msg.model.News;
+import com.foxinmy.weixin4j.msg.model.Text;
+import com.foxinmy.weixin4j.msg.model.Trans;
+import com.foxinmy.weixin4j.msg.model.Video;
+import com.foxinmy.weixin4j.msg.model.Voice;
/**
* 发送消息格式测试
@@ -21,7 +23,7 @@ import com.foxinmy.weixin4j.msg.TextMessage;
* @since JDK 1.7
*/
public class OutMsgTest {
- private BaseMessage inMessage;
+ private BaseMsg inMessage;
@Before
public void init() {
@@ -32,43 +34,51 @@ public class OutMsgTest {
@Test
public void text() throws DocumentException {
- TextResponse message = new TextResponse("text", inMessage);
+ ResponseMessage message = new ResponseMessage(new Text("text"), inMessage);
System.out.println(message.toXml());
}
@Test
public void image() {
- ImageResponse message = new ImageResponse(inMessage);
- message.pushMediaId("mediaId");
+ ResponseMessage message = new ResponseMessage(new Image("image"), inMessage);
System.out.println(message.toXml());
}
@Test
public void voice() {
- VoiceResponse message = new VoiceResponse(inMessage);
- message.pushMediaId("mediaId");
+ ResponseMessage message = new ResponseMessage(new Voice("voice"), inMessage);
System.out.println(message.toXml());
}
@Test
public void video() {
- VideoResponse message = new VideoResponse(inMessage);
- message.pushVideo("mediaId");
+ Video video = new Video("video");
+ video.setDesc("desc");
+ ResponseMessage message = new ResponseMessage(video, inMessage);
System.out.println(message.toXml());
}
@Test
public void music() {
- MusicResponse message = new MusicResponse(inMessage);
- message.pushMusic("mediaId");
+ Music music = new Music("title", "desc", "musicUrl", "hqMusicUrl",
+ "thumbMediaId");
+ ResponseMessage message = new ResponseMessage(music, inMessage);
System.out.println(message.toXml());
}
@Test
public void article() {
- ArticleResponse message = new ArticleResponse(inMessage);
- message.pushArticle("title1", "desc1", "picUrl1", "url1");
- message.pushArticle("title2", "desc2", "picUrl2", "url2");
+ News news = new News();
+ ResponseMessage message = new ResponseMessage(news, inMessage);
+ news.pushArticle("title1", "desc1", "picUrl1", "url1");
+ news.pushArticle("title2", "desc2", "picUrl2", "url2");
+ System.out.println(message.toXml());
+ }
+ @Test
+ public void trans(){
+ ResponseMessage message = new ResponseMessage(new Trans(),inMessage);
+ System.out.println(message.toXml());
+ message = new ResponseMessage(new Trans("accountid"),inMessage);
System.out.println(message.toXml());
}
}
diff --git a/weixin4j-mp/weixin4j-mp-api/src/test/java/com/foxinmy/weixin4j/mp/test/msg/TemplateMsgTest.java b/weixin4j-mp/weixin4j-mp-api/src/test/java/com/foxinmy/weixin4j/mp/test/msg/TemplateMsgTest.java
index 495483b8..aec75632 100644
--- a/weixin4j-mp/weixin4j-mp-api/src/test/java/com/foxinmy/weixin4j/mp/test/msg/TemplateMsgTest.java
+++ b/weixin4j-mp/weixin4j-mp-api/src/test/java/com/foxinmy/weixin4j/mp/test/msg/TemplateMsgTest.java
@@ -7,7 +7,7 @@ import org.junit.Test;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.JsonResult;
import com.foxinmy.weixin4j.mp.api.TmplApi;
-import com.foxinmy.weixin4j.mp.response.TemplateMessage;
+import com.foxinmy.weixin4j.mp.message.TemplateMessage;
import com.foxinmy.weixin4j.mp.test.TokenTest;
public class TemplateMsgTest extends TokenTest {
diff --git a/weixin4j-mp/weixin4j-mp-server/README.md b/weixin4j-mp/weixin4j-mp-server/README.md
index a1a47270..b14b1961 100644
--- a/weixin4j-mp/weixin4j-mp-server/README.md
+++ b/weixin4j-mp/weixin4j-mp-server/README.md
@@ -27,21 +27,21 @@ weixin4j-mp-server
示例(properties中换行用右斜杆\\)
> account={"id":"appId","secret":"appSecret",
-> "token":"开放者的token 非必须","openId":"公众号的openid 非必须",
+> "token":"开放者的token 必须","openId":"公众号的openid 非必须",
> "encodingAesKey":"公众号设置了加密方式且为「安全模式」时需要填入",
> "mchId":"V3.x版本下的微信商户号",
> "partnerId":"财付通的商户号","partnerKey":"财付通商户权限密钥Key",
> "version":"针对微信支付的版本号(目前可能为2,3),如果不填则按照mchId非空与否来做判断",
-> "paySignKey":"微信支付中调用API的密钥"}
-> token_path=/tmp/weixin/token
-> qr_path=/tmp/weixin/qr
-> media_path=/tmp/weixin/media
-> bill_path=/tmp/weixin/bill
-> ca_file=/tmp/weixin/xxxxx.p12 | xxxxx.pfx
+> "paySignKey":"微信支付中调用API的密钥"}
+> token_path=/tmp/weixin/token
+> qr_path=/tmp/weixin/qr
+> media_path=/tmp/weixin/media
+> bill_path=/tmp/weixin/bill
+> ca_file=/tmp/weixin/xxxxx.p12 | xxxxx.pfx
2.mvn package,得到一个zip的压缩包,解压到启动目录(见`src/main/startup.sh/APP_HOME`)
-3.启动netty服务(`com.foxinmy.weixin4j.mp.startup.WeixinServerBootstrap`)
+3.启动netty服务(`com.foxinmy.weixin4j.mp.startup.WeixinMpServerBootstrap`)
sh startup.sh start
@@ -55,4 +55,8 @@ weixin4j-mp-server
+ 解决`server工程`打包后不能运行问题(`ClassUtil`无法获取jar包里面的类)
- + 新增被动消息的`加密`以及回复消息的`解密`
\ No newline at end of file
+ + 新增被动消息的`加密`以及回复消息的`解密`
+
+* 2014-11-23
+
+ + `WeixinServerBootstrap`重命名为`WeixinMpServerBootstrap`
\ No newline at end of file
diff --git a/weixin4j-mp/weixin4j-mp-server/pom.xml b/weixin4j-mp/weixin4j-mp-server/pom.xml
index 0c1c43f4..a6c3965c 100644
--- a/weixin4j-mp/weixin4j-mp-server/pom.xml
+++ b/weixin4j-mp/weixin4j-mp-server/pom.xml
@@ -11,13 +11,15 @@
weixin4j-mp-server
weixin4j-mp-server
https://github.com/foxinmy/weixin4j/tree/master/weixin4j-mp/weixin4j-mp-server
- 微信公众号服务
+ 微信公众平台netty服务
- weixin-mp-server
org.apache.maven.plugins
maven-assembly-plugin
+
+ weixin-mp-server
+
diff --git a/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/AbstractAction.java b/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/AbstractAction.java
index 22b41619..c6f8475e 100644
--- a/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/AbstractAction.java
+++ b/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/AbstractAction.java
@@ -5,8 +5,8 @@ import java.lang.reflect.Type;
import org.dom4j.DocumentException;
-import com.foxinmy.weixin4j.mp.response.BaseResponse;
-import com.foxinmy.weixin4j.msg.BaseMessage;
+import com.foxinmy.weixin4j.model.BaseMsg;
+import com.foxinmy.weixin4j.mp.message.ResponseMessage;
import com.foxinmy.weixin4j.util.MessageUtil;
import com.foxinmy.weixin4j.xml.XStream;
@@ -20,14 +20,14 @@ import com.foxinmy.weixin4j.xml.XStream;
* @see com.foxinmy.weixin4j.mp.action.WeixinAction
*/
@SuppressWarnings("unchecked")
-public abstract class AbstractAction implements
+public abstract class AbstractAction implements
WeixinAction {
- public abstract BaseResponse execute(M inMessage);
+ public abstract ResponseMessage execute(M inMessage);
@Override
- public BaseResponse execute(String msg) throws DocumentException {
- BaseMessage message = MessageUtil.xml2msg(msg);
+ public ResponseMessage execute(String msg) throws DocumentException {
+ BaseMsg message = MessageUtil.xml2msg(msg);
if (message == null) {
Class messageClass = getGenericType();
XStream xstream = XStream.get();
diff --git a/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/BlankAction.java b/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/BlankAction.java
index f64e8eb2..64291e50 100644
--- a/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/BlankAction.java
+++ b/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/BlankAction.java
@@ -1,7 +1,7 @@
package com.foxinmy.weixin4j.mp.action;
-import com.foxinmy.weixin4j.mp.response.BaseResponse;
-import com.foxinmy.weixin4j.msg.BaseMessage;
+import com.foxinmy.weixin4j.model.BaseMsg;
+import com.foxinmy.weixin4j.mp.message.ResponseMessage;
/**
* 回复一个空字符串 而不是一个XML结构体中content字段的内容为空
@@ -12,10 +12,10 @@ import com.foxinmy.weixin4j.msg.BaseMessage;
* @since JDK 1.7
* @see com.foxinmy.weixin4j.mp.action.AbstractAction
*/
-public class BlankAction extends AbstractAction {
+public class BlankAction extends AbstractAction {
@Override
- public BaseResponse execute(M inMessage) {
+ public ResponseMessage execute(M inMessage) {
return null;
}
}
diff --git a/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/DebugAction.java b/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/DebugAction.java
index 4c3aa59e..9c7bedd9 100644
--- a/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/DebugAction.java
+++ b/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/DebugAction.java
@@ -1,7 +1,8 @@
package com.foxinmy.weixin4j.mp.action;
-import com.foxinmy.weixin4j.mp.response.TextResponse;
-import com.foxinmy.weixin4j.msg.BaseMessage;
+import com.foxinmy.weixin4j.model.BaseMsg;
+import com.foxinmy.weixin4j.mp.message.ResponseMessage;
+import com.foxinmy.weixin4j.msg.model.Text;
/**
* 调试输出用户消息
@@ -12,11 +13,10 @@ import com.foxinmy.weixin4j.msg.BaseMessage;
* @since JDK 1.7
* @see
*/
-public abstract class DebugAction extends
- AbstractAction {
+public abstract class DebugAction extends AbstractAction {
@Override
- public TextResponse execute(M message) {
- return new TextResponse(message.toString(), message);
+ public ResponseMessage execute(M message) {
+ return new ResponseMessage(new Text(message.toString()), message);
}
}
diff --git a/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/TextAction.java b/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/TextAction.java
index b67e2df4..b566efef 100644
--- a/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/TextAction.java
+++ b/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/TextAction.java
@@ -1,8 +1,9 @@
package com.foxinmy.weixin4j.mp.action;
import com.foxinmy.weixin4j.mp.mapping.Action;
-import com.foxinmy.weixin4j.mp.response.TextResponse;
+import com.foxinmy.weixin4j.mp.message.ResponseMessage;
import com.foxinmy.weixin4j.msg.TextMessage;
+import com.foxinmy.weixin4j.msg.model.Text;
import com.foxinmy.weixin4j.type.MessageType;
/**
@@ -18,7 +19,7 @@ import com.foxinmy.weixin4j.type.MessageType;
public class TextAction extends AbstractAction {
@Override
- public TextResponse execute(TextMessage inMessage) {
- return new TextResponse("Hello World!", inMessage);
+ public ResponseMessage execute(TextMessage inMessage) {
+ return new ResponseMessage(new Text("Hello World!"), inMessage);
}
}
diff --git a/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/WeixinAction.java b/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/WeixinAction.java
index d6509bc2..62e69369 100644
--- a/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/WeixinAction.java
+++ b/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/WeixinAction.java
@@ -2,7 +2,7 @@ package com.foxinmy.weixin4j.mp.action;
import org.dom4j.DocumentException;
-import com.foxinmy.weixin4j.mp.response.BaseResponse;
+import com.foxinmy.weixin4j.mp.message.ResponseMessage;
/**
* 消息处理接口
@@ -16,5 +16,5 @@ import com.foxinmy.weixin4j.mp.response.BaseResponse;
* @see com.foxinmy.weixin4j.mp.action.DebugAction
*/
public interface WeixinAction {
- public BaseResponse execute(String msg) throws DocumentException;
+ public ResponseMessage execute(String inMsg) throws DocumentException;
}
diff --git a/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/server/WeixinMessageEncoder.java b/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/server/WeixinMessageEncoder.java
index 1d2c10d2..30c09f1f 100644
--- a/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/server/WeixinMessageEncoder.java
+++ b/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/server/WeixinMessageEncoder.java
@@ -12,7 +12,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.foxinmy.weixin4j.model.WeixinMpAccount;
-import com.foxinmy.weixin4j.mp.response.BaseResponse;
+import com.foxinmy.weixin4j.mp.message.ResponseMessage;
import com.foxinmy.weixin4j.mp.util.HttpUtil;
import com.foxinmy.weixin4j.util.ConfigUtil;
import com.foxinmy.weixin4j.util.DateUtil;
@@ -33,7 +33,7 @@ import com.thoughtworks.xstream.mapper.DefaultMapper;
* @see 加密接入指引
*/
-public class WeixinMessageEncoder extends MessageToMessageEncoder {
+public class WeixinMessageEncoder extends MessageToMessageEncoder {
private final Logger log = LoggerFactory.getLogger(getClass());
protected final static XStream mapXstream = XStream.get();
static {
@@ -43,7 +43,7 @@ public class WeixinMessageEncoder extends MessageToMessageEncoder
}
@Override
- protected void encode(ChannelHandlerContext ctx, BaseResponse response,
+ protected void encode(ChannelHandlerContext ctx, ResponseMessage response,
List