();
diff --git a/src/main/java/com/foxinmy/weixin4j/model/AuthResult.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/AuthResult.java
similarity index 94%
rename from src/main/java/com/foxinmy/weixin4j/model/AuthResult.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/AuthResult.java
index 799534ee..abde55c9 100644
--- a/src/main/java/com/foxinmy/weixin4j/model/AuthResult.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/AuthResult.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.model;
+package com.foxinmy.weixin4j.mp.model;
import java.io.Serializable;
diff --git a/src/main/java/com/foxinmy/weixin4j/model/Button.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/Button.java
similarity index 94%
rename from src/main/java/com/foxinmy/weixin4j/model/Button.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/Button.java
index 8c3d89cd..46c143ff 100644
--- a/src/main/java/com/foxinmy/weixin4j/model/Button.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/Button.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.model;
+package com.foxinmy.weixin4j.mp.model;
import java.io.Serializable;
import java.util.ArrayList;
diff --git a/src/main/java/com/foxinmy/weixin4j/model/CustomRecord.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/CustomRecord.java
similarity index 98%
rename from src/main/java/com/foxinmy/weixin4j/model/CustomRecord.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/CustomRecord.java
index f54e2870..a8ed2571 100644
--- a/src/main/java/com/foxinmy/weixin4j/model/CustomRecord.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/CustomRecord.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.model;
+package com.foxinmy.weixin4j.mp.model;
import java.io.Serializable;
import java.util.Date;
diff --git a/src/main/java/com/foxinmy/weixin4j/model/Following.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/Following.java
similarity index 93%
rename from src/main/java/com/foxinmy/weixin4j/model/Following.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/Following.java
index 246fb207..0efc9cf7 100644
--- a/src/main/java/com/foxinmy/weixin4j/model/Following.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/Following.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.model;
+package com.foxinmy.weixin4j.mp.model;
import java.io.Serializable;
import java.util.List;
diff --git a/src/main/java/com/foxinmy/weixin4j/model/Group.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/Group.java
similarity index 93%
rename from src/main/java/com/foxinmy/weixin4j/model/Group.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/Group.java
index d8e12977..a09b8e3b 100644
--- a/src/main/java/com/foxinmy/weixin4j/model/Group.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/Group.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.model;
+package com.foxinmy.weixin4j.mp.model;
import java.io.Serializable;
diff --git a/src/main/java/com/foxinmy/weixin4j/model/MpArticle.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/MpArticle.java
similarity index 98%
rename from src/main/java/com/foxinmy/weixin4j/model/MpArticle.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/MpArticle.java
index 2a1d4d64..af9fe50b 100644
--- a/src/main/java/com/foxinmy/weixin4j/model/MpArticle.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/MpArticle.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.model;
+package com.foxinmy.weixin4j.mp.model;
import java.io.Serializable;
diff --git a/src/main/java/com/foxinmy/weixin4j/model/QRParameter.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/QRParameter.java
similarity index 95%
rename from src/main/java/com/foxinmy/weixin4j/model/QRParameter.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/QRParameter.java
index 32bdafb3..185e93c8 100644
--- a/src/main/java/com/foxinmy/weixin4j/model/QRParameter.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/QRParameter.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.model;
+package com.foxinmy.weixin4j.mp.model;
import java.io.Serializable;
diff --git a/src/main/java/com/foxinmy/weixin4j/model/User.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/User.java
similarity index 93%
rename from src/main/java/com/foxinmy/weixin4j/model/User.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/User.java
index 9db48888..b33a7943 100644
--- a/src/main/java/com/foxinmy/weixin4j/model/User.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/User.java
@@ -1,8 +1,8 @@
-package com.foxinmy.weixin4j.model;
+package com.foxinmy.weixin4j.mp.model;
import java.io.Serializable;
-import org.jsoup.helper.StringUtil;
+import org.apache.commons.lang3.StringUtils;
/**
* 用户对象
@@ -140,7 +140,7 @@ public class User implements Serializable {
}
public String getHeadimgurl(Size size) {
- if (!StringUtil.isBlank(headimgurl)) {
+ if (StringUtils.isNoneBlank(headimgurl)) {
StringBuilder sb = new StringBuilder(headimgurl);
return sb.replace(0, (headimgurl.length() - 1), size.getInt() + "")
.toString();
diff --git a/src/main/java/com/foxinmy/weixin4j/model/UserToken.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/UserToken.java
similarity index 79%
rename from src/main/java/com/foxinmy/weixin4j/model/UserToken.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/UserToken.java
index 08827e17..f36348f1 100644
--- a/src/main/java/com/foxinmy/weixin4j/model/UserToken.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/model/UserToken.java
@@ -1,6 +1,7 @@
-package com.foxinmy.weixin4j.model;
+package com.foxinmy.weixin4j.mp.model;
import com.alibaba.fastjson.annotation.JSONField;
+import com.foxinmy.weixin4j.model.Token;
/**
* 用户token 一般通过授权页面获得
@@ -9,8 +10,8 @@ import com.alibaba.fastjson.annotation.JSONField;
* @author jy.hu
* @date 2014年4月6日
* @since JDK 1.7
- * @see com.foxinmy.weixin4j.model.AuthResult
- * @see com.foxinmy.weixin4j.model.AuthResult.AuthScope
+ * @see com.foxinmy.weixin4j.mp.model.AuthResult
+ * @see com.foxinmy.weixin4j.mp.model.AuthResult.AuthScope
*/
public class UserToken extends Token {
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/model/Article.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/Article.java
similarity index 97%
rename from src/main/java/com/foxinmy/weixin4j/msg/model/Article.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/Article.java
index 28f4c861..764a62e2 100644
--- a/src/main/java/com/foxinmy/weixin4j/msg/model/Article.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/Article.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.msg.model;
+package com.foxinmy.weixin4j.mp.msg.model;
import com.foxinmy.weixin4j.type.MediaType;
import com.thoughtworks.xstream.annotations.XStreamAlias;
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/model/BaseMsg.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/BaseMsg.java
similarity index 92%
rename from src/main/java/com/foxinmy/weixin4j/msg/model/BaseMsg.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/BaseMsg.java
index f7d35981..40b7f437 100644
--- a/src/main/java/com/foxinmy/weixin4j/msg/model/BaseMsg.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/BaseMsg.java
@@ -1,9 +1,9 @@
-package com.foxinmy.weixin4j.msg.model;
+package com.foxinmy.weixin4j.mp.msg.model;
import java.io.Serializable;
import java.io.Writer;
-import com.foxinmy.weixin4j.msg.notify.BaseNotify;
+import com.foxinmy.weixin4j.mp.msg.notify.BaseNotify;
import com.foxinmy.weixin4j.type.MediaType;
import com.foxinmy.weixin4j.util.ClassUtil;
import com.foxinmy.weixin4j.xml.XStream;
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/model/Image.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/Image.java
similarity index 93%
rename from src/main/java/com/foxinmy/weixin4j/msg/model/Image.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/Image.java
index 00197ff5..9e7f0aff 100644
--- a/src/main/java/com/foxinmy/weixin4j/msg/model/Image.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/Image.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.msg.model;
+package com.foxinmy.weixin4j.mp.msg.model;
import com.foxinmy.weixin4j.type.MediaType;
import com.thoughtworks.xstream.annotations.XStreamAlias;
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/model/Music.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/Music.java
similarity index 97%
rename from src/main/java/com/foxinmy/weixin4j/msg/model/Music.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/Music.java
index 7754c1ed..c5c91b56 100644
--- a/src/main/java/com/foxinmy/weixin4j/msg/model/Music.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/Music.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.msg.model;
+package com.foxinmy.weixin4j.mp.msg.model;
import com.foxinmy.weixin4j.type.MediaType;
import com.thoughtworks.xstream.annotations.XStreamAlias;
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/model/README.md b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/README.md
similarity index 100%
rename from src/main/java/com/foxinmy/weixin4j/msg/model/README.md
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/README.md
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/model/Text.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/Text.java
similarity index 93%
rename from src/main/java/com/foxinmy/weixin4j/msg/model/Text.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/Text.java
index 8375e59e..c6e4d4e4 100644
--- a/src/main/java/com/foxinmy/weixin4j/msg/model/Text.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/Text.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.msg.model;
+package com.foxinmy.weixin4j.mp.msg.model;
import com.foxinmy.weixin4j.type.MediaType;
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/model/Video.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/Video.java
similarity index 97%
rename from src/main/java/com/foxinmy/weixin4j/msg/model/Video.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/Video.java
index 3795b714..b53b7c4b 100644
--- a/src/main/java/com/foxinmy/weixin4j/msg/model/Video.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/Video.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.msg.model;
+package com.foxinmy.weixin4j.mp.msg.model;
import com.foxinmy.weixin4j.type.MediaType;
import com.thoughtworks.xstream.annotations.XStreamAlias;
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/model/Voice.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/Voice.java
similarity index 93%
rename from src/main/java/com/foxinmy/weixin4j/msg/model/Voice.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/Voice.java
index c99201a2..29062cd9 100644
--- a/src/main/java/com/foxinmy/weixin4j/msg/model/Voice.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/model/Voice.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.msg.model;
+package com.foxinmy.weixin4j.mp.msg.model;
import com.foxinmy.weixin4j.type.MediaType;
import com.thoughtworks.xstream.annotations.XStreamAlias;
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/notify/ArticleNotify.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/ArticleNotify.java
similarity index 85%
rename from src/main/java/com/foxinmy/weixin4j/msg/notify/ArticleNotify.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/ArticleNotify.java
index 4fb91621..c6364e24 100644
--- a/src/main/java/com/foxinmy/weixin4j/msg/notify/ArticleNotify.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/ArticleNotify.java
@@ -1,10 +1,10 @@
-package com.foxinmy.weixin4j.msg.notify;
+package com.foxinmy.weixin4j.mp.msg.notify;
import java.util.LinkedList;
import java.util.List;
-import com.foxinmy.weixin4j.msg.model.Article;
-import com.foxinmy.weixin4j.type.MessageType;
+import com.foxinmy.weixin4j.mp.msg.model.Article;
+import com.foxinmy.weixin4j.mp.type.ResponseType;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamOmitField;
@@ -18,19 +18,19 @@ import com.thoughtworks.xstream.annotations.XStreamOmitField;
* @see 客服图文消息
* @see com.foxinmy.weixin.msg.model.Article
- * @see com.foxinmy.weixin4j.msg.notify.BaseNotify
- * @see com.foxinmy.weixin4j.msg.notify.BaseNotify#toJson()
+ * @see com.foxinmy.weixin4j.mp.msg.notify.BaseNotify
+ * @see com.foxinmy.weixin4j.mp.msg.notify.BaseNotify#toJson()
*/
public class ArticleNotify extends BaseNotify {
private static final int MAX_ARTICLE_COUNT = 10;
private static final long serialVersionUID = 1740696901128709998L;
public ArticleNotify() {
- super(MessageType.news);
+ this(null);
}
public ArticleNotify(String touser) {
- super(touser, MessageType.news);
+ super(touser, ResponseType.news);
}
@XStreamAlias("news")
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/notify/BaseNotify.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/BaseNotify.java
similarity index 71%
rename from src/main/java/com/foxinmy/weixin4j/msg/notify/BaseNotify.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/BaseNotify.java
index e33483d6..6045ad98 100644
--- a/src/main/java/com/foxinmy/weixin4j/msg/notify/BaseNotify.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/BaseNotify.java
@@ -1,9 +1,9 @@
-package com.foxinmy.weixin4j.msg.notify;
+package com.foxinmy.weixin4j.mp.msg.notify;
import java.io.Serializable;
import java.io.Writer;
-import com.foxinmy.weixin4j.type.MessageType;
+import com.foxinmy.weixin4j.mp.type.ResponseType;
import com.foxinmy.weixin4j.xml.XStream;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
import com.thoughtworks.xstream.io.json.JsonHierarchicalStreamDriver;
@@ -11,23 +11,25 @@ import com.thoughtworks.xstream.io.json.JsonWriter;
/**
* 客服消息基类(48小时内不限制发送次数)
+ *
* @author jy.hu
* @date 2014年4月4日
* @since JDK 1.7
- * @see 发送客服消息
+ * @see 发送客服消息
*/
public class BaseNotify implements Serializable {
private static final long serialVersionUID = 7190233634431087729L;
private String touser;
- private MessageType msgtype;
+ private ResponseType msgtype;
- public BaseNotify(MessageType msgtype) {
+ public BaseNotify(ResponseType msgtype) {
this.msgtype = msgtype;
}
- public BaseNotify(String touser, MessageType msgtype) {
+ public BaseNotify(String touser, ResponseType msgtype) {
this.touser = touser;
this.msgtype = msgtype;
}
@@ -40,16 +42,17 @@ public class BaseNotify implements Serializable {
this.touser = touser;
}
- public MessageType getMsgtype() {
+ public ResponseType getMsgtype() {
return msgtype;
}
- public void setMsgtype(MessageType msgtype) {
+ public void setMsgtype(ResponseType msgtype) {
this.msgtype = msgtype;
}
/**
* 客服消息json化
+ *
* @return {"touser": "to","msgtype": "text","text": {"content": "123"}}
*/
public String toJson() {
@@ -66,6 +69,7 @@ public class BaseNotify implements Serializable {
@Override
public String toString() {
- return String.format("[BaseNotify touser=%s ,msgtype=%s]", touser, msgtype.name());
+ return String.format("[BaseNotify touser=%s ,msgtype=%s]", touser,
+ msgtype.name());
}
}
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/notify/ImageNotify.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/ImageNotify.java
similarity index 66%
rename from src/main/java/com/foxinmy/weixin4j/msg/notify/ImageNotify.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/ImageNotify.java
index d2e47096..01157aef 100644
--- a/src/main/java/com/foxinmy/weixin4j/msg/notify/ImageNotify.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/ImageNotify.java
@@ -1,7 +1,7 @@
-package com.foxinmy.weixin4j.msg.notify;
+package com.foxinmy.weixin4j.mp.msg.notify;
-import com.foxinmy.weixin4j.msg.model.Image;
-import com.foxinmy.weixin4j.type.MessageType;
+import com.foxinmy.weixin4j.mp.msg.model.Image;
+import com.foxinmy.weixin4j.mp.type.ResponseType;
/**
* 客服图片消息
@@ -11,24 +11,24 @@ import com.foxinmy.weixin4j.type.MessageType;
* @since JDK 1.7
* @see 客服图片消息
- * @see com.foxinmy.weixin4j.msg.model.Image
- * @see com.foxinmy.weixin4j.msg.notify.BaseNotify
- * @see com.foxinmy.weixin4j.msg.notify.BaseNotify#toJson()
+ * @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() {
- super(MessageType.image);
+ this(null, null);
}
public ImageNotify(String touser) {
- super(touser, MessageType.image);
+ this(null, touser);
}
public ImageNotify(String mediaId, String touser) {
- super(touser, MessageType.image);
+ super(touser, ResponseType.image);
this.pushMediaId(mediaId);
}
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/notify/MusicNotify.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/MusicNotify.java
similarity index 69%
rename from src/main/java/com/foxinmy/weixin4j/msg/notify/MusicNotify.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/MusicNotify.java
index 1e328677..09087886 100644
--- a/src/main/java/com/foxinmy/weixin4j/msg/notify/MusicNotify.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/MusicNotify.java
@@ -1,7 +1,7 @@
-package com.foxinmy.weixin4j.msg.notify;
+package com.foxinmy.weixin4j.mp.msg.notify;
-import com.foxinmy.weixin4j.msg.model.Music;
-import com.foxinmy.weixin4j.type.MessageType;
+import com.foxinmy.weixin4j.mp.msg.model.Music;
+import com.foxinmy.weixin4j.mp.type.ResponseType;
/**
* 客服音乐消息
@@ -11,20 +11,20 @@ import com.foxinmy.weixin4j.type.MessageType;
* @since JDK 1.7
* @see 客服音乐消息
- * @see com.foxinmy.weixin4j.msg.model.Music
- * @see com.foxinmy.weixin4j.msg.notify.BaseNotify
- * @see com.foxinmy.weixin4j.msg.notify.BaseNotify#toJson()
+ * @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() {
- super(MessageType.music);
+ this(null);
}
public MusicNotify(String touser) {
- super(touser, MessageType.music);
+ super(touser, ResponseType.music);
}
public void pushMusic(String musicurl, String hqUrl, String mediaId) {
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/notify/README.md b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/README.md
similarity index 100%
rename from src/main/java/com/foxinmy/weixin4j/msg/notify/README.md
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/README.md
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/notify/TextNotify.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/TextNotify.java
similarity index 68%
rename from src/main/java/com/foxinmy/weixin4j/msg/notify/TextNotify.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/TextNotify.java
index 6ec09a3a..bbd43edf 100644
--- a/src/main/java/com/foxinmy/weixin4j/msg/notify/TextNotify.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/TextNotify.java
@@ -1,7 +1,7 @@
-package com.foxinmy.weixin4j.msg.notify;
+package com.foxinmy.weixin4j.mp.msg.notify;
-import com.foxinmy.weixin4j.msg.model.Text;
-import com.foxinmy.weixin4j.type.MessageType;
+import com.foxinmy.weixin4j.mp.msg.model.Text;
+import com.foxinmy.weixin4j.mp.type.ResponseType;
/**
* 客服文本消息
@@ -12,24 +12,23 @@ import com.foxinmy.weixin4j.type.MessageType;
* @see 客服文本消息
* @see com.foxinmy.weixin.msg.model.Text
- * @see com.foxinmy.weixin4j.msg.notify.BaseNotify
- * @see com.foxinmy.weixin4j.msg.notify.BaseNotify#toJson()
+ * @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() {
- super(MessageType.text);
+ this(null, null);
}
public TextNotify(String content) {
- super(MessageType.text);
- this.text = new Text(content);
+ this(content,null);
}
public TextNotify(String content, String touser) {
- super(touser, MessageType.text);
+ super(touser, ResponseType.text);
this.text = new Text(content);
}
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/notify/VideoNotify.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/VideoNotify.java
similarity index 68%
rename from src/main/java/com/foxinmy/weixin4j/msg/notify/VideoNotify.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/VideoNotify.java
index 8e433c03..92755cec 100644
--- a/src/main/java/com/foxinmy/weixin4j/msg/notify/VideoNotify.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/VideoNotify.java
@@ -1,7 +1,7 @@
-package com.foxinmy.weixin4j.msg.notify;
+package com.foxinmy.weixin4j.mp.msg.notify;
-import com.foxinmy.weixin4j.msg.model.Video;
-import com.foxinmy.weixin4j.type.MessageType;
+import com.foxinmy.weixin4j.mp.msg.model.Video;
+import com.foxinmy.weixin4j.mp.type.ResponseType;
/**
* 客服视频消息
@@ -11,22 +11,22 @@ import com.foxinmy.weixin4j.type.MessageType;
* @since JDK 1.7
* @see 客服视频消息
- * @see com.foxinmy.weixin4j.msg.model.Video
- * @see com.foxinmy.weixin4j.msg.notify.BaseNotify
- * @see com.foxinmy.weixin4j.msg.notify.BaseNotify#toJson()
+ * @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() {
- super(MessageType.video);
+ this(null);
}
public VideoNotify(String touser) {
- super(touser, MessageType.video);
+ super(touser, ResponseType.video);
}
-
+
public void pushVideo(String mediaId, String thumbMediaId) {
this.video = new Video(mediaId, thumbMediaId);
}
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/notify/VoiceNotify.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/VoiceNotify.java
similarity index 66%
rename from src/main/java/com/foxinmy/weixin4j/msg/notify/VoiceNotify.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/VoiceNotify.java
index 4cfb7a7f..a3ab1177 100644
--- a/src/main/java/com/foxinmy/weixin4j/msg/notify/VoiceNotify.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/msg/notify/VoiceNotify.java
@@ -1,7 +1,7 @@
-package com.foxinmy.weixin4j.msg.notify;
+package com.foxinmy.weixin4j.mp.msg.notify;
-import com.foxinmy.weixin4j.msg.model.Voice;
-import com.foxinmy.weixin4j.type.MessageType;
+import com.foxinmy.weixin4j.mp.msg.model.Voice;
+import com.foxinmy.weixin4j.mp.type.ResponseType;
/**
* 客服语音消息
@@ -11,24 +11,24 @@ import com.foxinmy.weixin4j.type.MessageType;
* @since JDK 1.7
* @see 客服语音消息
- * @see com.foxinmy.weixin4j.msg.model.Voice
- * @see com.foxinmy.weixin4j.msg.notify.BaseNotify
- * @see com.foxinmy.weixin4j.msg.notify.BaseNotify#toJson()
+ * @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() {
- super(MessageType.voice);
+ this(null, null);
}
public VoiceNotify(String touser) {
- super(touser, MessageType.voice);
+ this(null, touser);
}
public VoiceNotify(String mediaId, String touser) {
- super(touser, MessageType.voice);
+ super(touser, ResponseType.voice);
this.pushMediaId(mediaId);
}
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/out/ArticleMessage.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/ArticleResponse.java
similarity index 79%
rename from src/main/java/com/foxinmy/weixin4j/msg/out/ArticleMessage.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/ArticleResponse.java
index aa439b54..2ef4fcc2 100644
--- a/src/main/java/com/foxinmy/weixin4j/msg/out/ArticleMessage.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/ArticleResponse.java
@@ -1,32 +1,32 @@
-package com.foxinmy.weixin4j.msg.out;
+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.foxinmy.weixin4j.msg.model.Article;
-import com.foxinmy.weixin4j.type.MessageType;
import com.foxinmy.weixin4j.xml.XStream;
import com.thoughtworks.xstream.annotations.XStreamAlias;
/**
* 回复图文消息
*
- * @className ArticleMessage
+ * @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.msg.BaseMessage
- * @see com.foxinmy.weixin4j.msg.BaseMessage#toXml()
+ * @see com.foxinmy.weixin4j.mp.response.BaseResponse
+ * @see com.foxinmy.weixin4j.mp.response.BaseResponse#toXml()
*/
-public class ArticleMessage extends BaseMessage {
+public class ArticleResponse extends BaseResponse {
private static final int MAX_ARTICLE_COUNT = 10;
private static final long serialVersionUID = -7331603018352309317L;
- public ArticleMessage(BaseMessage inMessage) {
- super(MessageType.news, inMessage);
+ public ArticleResponse(BaseMessage inMessage) {
+ super(ResponseType.news, inMessage);
}
@XStreamAlias("ArticleCount")
@@ -94,12 +94,11 @@ public class ArticleMessage extends BaseMessage {
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
- sb.append("[ArticleMessage ,toUserName=").append(super.getToUserName());
+ 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());
- sb.append(" ,msgId=").append(super.getMsgId()).append("]");
+ sb.append(" ,createTime=").append(super.getCreateTime()).append("]");
return sb.toString();
}
}
diff --git a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/BaseResponse.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/BaseResponse.java
new file mode 100644
index 00000000..997108dd
--- /dev/null
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/BaseResponse.java
@@ -0,0 +1,131 @@
+package com.foxinmy.weixin4j.mp.response;
+
+import java.io.Serializable;
+import java.io.Writer;
+
+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;
+import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
+import com.thoughtworks.xstream.io.json.JsonHierarchicalStreamDriver;
+import com.thoughtworks.xstream.io.json.JsonWriter;
+
+/**
+ * 响应消息基类
+ *
+ * 回复图片等多媒体消息时需要预先上传多媒体文件到微信服务器,
+ * 假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试
+ *
+ *
+ * @className BaseResponse
+ * @author jy.hu
+ * @date 2014年4月6日
+ * @since JDK 1.7
+ */
+public class BaseResponse implements Serializable {
+
+ private static final long serialVersionUID = 7761192742840031607L;
+ private final static XStream xmlStream = new XStream();
+ private final static XStream jsonStream = new XStream(
+ new JsonHierarchicalStreamDriver() {
+ public HierarchicalStreamWriter createWriter(Writer writer) {
+ return new JsonWriter(writer, JsonWriter.DROP_ROOT_MODE);
+ }
+ });
+
+ @XStreamAlias("ToUserName")
+ private String toUserName; // 开发者微信号
+ @XStreamAlias("FromUserName")
+ private String fromUserName; // 发送方帐号(一个OpenID)
+ @XStreamAlias("CreateTime")
+ private long createTime = System.currentTimeMillis(); // 消息创建时间 (整型)
+ @XStreamAlias("MsgType")
+ private ResponseType msgType; // 消息类型
+
+ static {
+ Class>[] classes = ClassUtil.getClasses(
+ TextResponse.class.getPackage()).toArray(new Class[0]);
+
+ xmlStream.ignoreUnknownElements();
+ xmlStream.autodetectAnnotations(true);
+ xmlStream.processAnnotations(classes);
+
+ jsonStream.setMode(XStream.NO_REFERENCES);
+ jsonStream.autodetectAnnotations(true);
+ jsonStream.processAnnotations(classes);
+ }
+
+ 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) {
+ this.msgType = msgType;
+ this.toUserName = toUserName;
+ this.fromUserName = fromUserName;
+ }
+
+ public String getToUserName() {
+ return toUserName;
+ }
+
+ public void setToUserName(String toUserName) {
+ this.toUserName = toUserName;
+ }
+
+ public String getFromUserName() {
+ return fromUserName;
+ }
+
+ public void setFromUserName(String fromUserName) {
+ this.fromUserName = fromUserName;
+ }
+
+ public long getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(long createTime) {
+ this.createTime = createTime;
+ }
+
+ public ResponseType getMsgType() {
+ return msgType;
+ }
+
+ public void setMsgType(ResponseType msgType) {
+ this.msgType = msgType;
+ }
+
+ protected XStream getXStream() {
+ Class extends BaseResponse> targetClass = this.msgType
+ .getMessageClass();
+ xmlStream.alias("xml", targetClass);
+ return xmlStream;
+ }
+
+ /**
+ * 消息对象转换为微信服务器接受的xml格式消息
+ *
+ * @return xml字符串
+ */
+ public String toXml() {
+ return getXStream().toXML(this);
+ }
+
+ /**
+ * 消息对象转换为微信服务器接受的json格式字符串
+ *
+ * @return json字符串
+ */
+ public String toJson() {
+ return jsonStream.toXML(this);
+ }
+}
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/out/ImageMessage.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/ImageResponse.java
similarity index 60%
rename from src/main/java/com/foxinmy/weixin4j/msg/out/ImageMessage.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/ImageResponse.java
index 4b4361ce..7fec913b 100644
--- a/src/main/java/com/foxinmy/weixin4j/msg/out/ImageMessage.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/ImageResponse.java
@@ -1,34 +1,35 @@
-package com.foxinmy.weixin4j.msg.out;
+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.foxinmy.weixin4j.msg.model.Image;
-import com.foxinmy.weixin4j.type.MessageType;
import com.foxinmy.weixin4j.xml.XStream;
import com.thoughtworks.xstream.annotations.XStreamAlias;
/**
* 回复图片消息
*
- * @className ImageMessage
+ * @className ImageResponse
* @author jy.hu
* @date 2014年3月23日
* @since JDK 1.7
* @see 回复图片消息
- * @see com.foxinmy.weixin4j.msg.model.Image
+ * @see com.foxinmy.weixin4j.mp.msg.model.Image
* @see com.foxinmy.weixin4j.msg.BaseMessage
- * @see com.foxinmy.weixin4j.msg.BaseMessage#toXml()
+ * @see com.foxinmy.weixin4j.mp.response.BaseResponse
+ * @see com.foxinmy.weixin4j.mp.response.BaseResponse#toXml()
*/
-public class ImageMessage extends BaseMessage {
+public class ImageResponse extends BaseResponse {
private static final long serialVersionUID = 6998255203997554731L;
- public ImageMessage(BaseMessage inMessage) {
+ public ImageResponse(BaseMessage inMessage) {
this(null, inMessage);
}
- public ImageMessage(String mediaId, BaseMessage inMessage) {
- super(MessageType.image, inMessage);
- super.getMsgType().setMessageClass(ImageMessage.class);
+ public ImageResponse(String mediaId, BaseMessage inMessage) {
+ super(ResponseType.image, inMessage);
+ super.getMsgType().setMessageClass(ImageResponse.class);
this.pushMediaId(mediaId);
}
@@ -49,12 +50,11 @@ public class ImageMessage extends BaseMessage {
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
- sb.append("[ImageMessage ,toUserName=").append(super.getToUserName());
+ 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());
- sb.append(" ,msgId=").append(super.getMsgId()).append("]");
+ sb.append(" ,createTime=").append(super.getCreateTime()).append("]");
return sb.toString();
}
}
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/out/MusicMessage.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/MusicResponse.java
similarity index 67%
rename from src/main/java/com/foxinmy/weixin4j/msg/out/MusicMessage.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/MusicResponse.java
index 419f32d6..4e25fa4f 100644
--- a/src/main/java/com/foxinmy/weixin4j/msg/out/MusicMessage.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/MusicResponse.java
@@ -1,30 +1,30 @@
-package com.foxinmy.weixin4j.msg.out;
+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.foxinmy.weixin4j.msg.model.Music;
-import com.foxinmy.weixin4j.type.MessageType;
import com.foxinmy.weixin4j.xml.XStream;
import com.thoughtworks.xstream.annotations.XStreamAlias;
/**
* 回复音乐消息
*
- * @className MusicMessage
+ * @className MusicResponse
* @author jy.hu
* @date 2014年3月23日
* @since JDK 1.7
* @see 回复音乐消息
- * @see com.foxinmy.weixin4j.msg.model.Music
- * @see com.foxinmy.weixin4j.msg.BaseMessage
- * @see com.foxinmy.weixin4j.msg.BaseMessage#toXml()
+ * @see com.foxinmy.weixin4j.mp.msg.model.Music
+ * @see com.foxinmy.weixin4j.mp.response.BaseResponse
+ * @see com.foxinmy.weixin4j.mp.response.BaseResponse#toXml()
*/
-public class MusicMessage extends BaseMessage {
+public class MusicResponse extends BaseResponse {
private static final long serialVersionUID = 4384403772658796395L;
- public MusicMessage(BaseMessage inMessage) {
- super(MessageType.music, inMessage);
+ public MusicResponse(BaseMessage inMessage) {
+ super(ResponseType.music, inMessage);
}
@XStreamAlias("Music")
@@ -52,12 +52,11 @@ public class MusicMessage extends BaseMessage {
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
- sb.append("[MusicMessage ,toUserName=").append(super.getToUserName());
+ 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());
- sb.append(" ,msgId=").append(super.getMsgId()).append("]");
+ sb.append(" ,createTime=").append(super.getCreateTime()).append("]");
return sb.toString();
}
}
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/out/README.md b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/README.md
similarity index 100%
rename from src/main/java/com/foxinmy/weixin4j/msg/out/README.md
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/README.md
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/out/TemplateMessage.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/TemplateMessage.java
similarity index 98%
rename from src/main/java/com/foxinmy/weixin4j/msg/out/TemplateMessage.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/TemplateMessage.java
index b394f86e..1d6dbace 100644
--- a/src/main/java/com/foxinmy/weixin4j/msg/out/TemplateMessage.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/TemplateMessage.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.msg.out;
+package com.foxinmy.weixin4j.mp.response;
import java.io.Serializable;
import java.util.HashMap;
diff --git a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/TextResponse.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/TextResponse.java
new file mode 100644
index 00000000..565b1401
--- /dev/null
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/TextResponse.java
@@ -0,0 +1,56 @@
+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()
+ */
+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/src/main/java/com/foxinmy/weixin4j/msg/out/TransferMessage.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/TransferResponse.java
similarity index 50%
rename from src/main/java/com/foxinmy/weixin4j/msg/out/TransferMessage.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/TransferResponse.java
index b89621aa..8e3e7d0c 100644
--- a/src/main/java/com/foxinmy/weixin4j/msg/out/TransferMessage.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/TransferResponse.java
@@ -1,25 +1,25 @@
-package com.foxinmy.weixin4j.msg.out;
+package com.foxinmy.weixin4j.mp.response;
+import com.foxinmy.weixin4j.mp.type.ResponseType;
import com.foxinmy.weixin4j.msg.BaseMessage;
-import com.foxinmy.weixin4j.type.MessageType;
/**
* 转移消息到多客服端消息
*
- * @className TransferMessage
+ * @className TransferResponse
* @author jy.hu
* @date 2014年6月28日
* @since JDK 1.7
* @see 多客服转移消息
- * @see com.foxinmy.weixin4j.msg.BaseMessage
- * @see com.foxinmy.weixin4j.msg.BaseMessage#toXml()
+ * @see com.foxinmy.weixin4j.mp.response.BaseResponse
+ * @see com.foxinmy.weixin4j.mp.response.BaseResponse#toXml()
*/
-public class TransferMessage extends BaseMessage {
+public class TransferResponse extends BaseResponse {
private static final long serialVersionUID = -5479496746108594940L;
- public TransferMessage(BaseMessage inMessage) {
- super(MessageType.transfer_customer_service,inMessage);
+ public TransferResponse(BaseMessage inMessage) {
+ super(ResponseType.transfer_customer_service, inMessage);
}
}
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/out/VideoMessage.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/VideoResponse.java
similarity index 64%
rename from src/main/java/com/foxinmy/weixin4j/msg/out/VideoMessage.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/VideoResponse.java
index d6cdfc91..4e52f09c 100644
--- a/src/main/java/com/foxinmy/weixin4j/msg/out/VideoMessage.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/VideoResponse.java
@@ -1,31 +1,31 @@
-package com.foxinmy.weixin4j.msg.out;
+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.foxinmy.weixin4j.msg.model.Video;
-import com.foxinmy.weixin4j.type.MessageType;
import com.foxinmy.weixin4j.xml.XStream;
import com.thoughtworks.xstream.annotations.XStreamAlias;
/**
* 回复视频消息
*
- * @className VideoMessage
+ * @className VideoResponse
* @author jy.hu
* @date 2014年4月6日
* @since JDK 1.7
* @see 回复视频消息
- * @see com.foxinmy.weixin4j.msg.model.Video
- * @see com.foxinmy.weixin4j.msg.BaseMessage
- * @see com.foxinmy.weixin4j.msg.BaseMessage#toXml()
+ * @see com.foxinmy.weixin4j.mp.msg.model.Video
+ * @see com.foxinmy.weixin4j.mp.response.BaseResponse
+ * @see com.foxinmy.weixin4j.mp.response.BaseResponse#toXml()
*/
-public class VideoMessage extends BaseMessage {
+public class VideoResponse extends BaseResponse {
private static final long serialVersionUID = -1013075358679078381L;
- public VideoMessage(BaseMessage inMessage) {
- super(MessageType.video, inMessage);
- super.getMsgType().setMessageClass(VideoMessage.class);
+ public VideoResponse(BaseMessage inMessage) {
+ super(ResponseType.video, inMessage);
+ super.getMsgType().setMessageClass(VideoResponse.class);
}
@XStreamAlias("Video")
@@ -52,12 +52,11 @@ public class VideoMessage extends BaseMessage {
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
- sb.append("[VideoMessage ,toUserName=").append(super.getToUserName());
+ 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());
- sb.append(" ,msgId=").append(super.getMsgId()).append("]");
+ sb.append(" ,createTime=").append(super.getCreateTime()).append("]");
return sb.toString();
}
}
diff --git a/src/main/java/com/foxinmy/weixin4j/msg/out/VoiceMessage.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/VoiceResponse.java
similarity index 58%
rename from src/main/java/com/foxinmy/weixin4j/msg/out/VoiceMessage.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/VoiceResponse.java
index 9f61e558..41772324 100644
--- a/src/main/java/com/foxinmy/weixin4j/msg/out/VoiceMessage.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/response/VoiceResponse.java
@@ -1,35 +1,35 @@
-package com.foxinmy.weixin4j.msg.out;
+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.foxinmy.weixin4j.msg.model.Voice;
-import com.foxinmy.weixin4j.type.MessageType;
import com.foxinmy.weixin4j.xml.XStream;
import com.thoughtworks.xstream.annotations.XStreamAlias;
/**
- * 语音消息
+ * 回复语音消息
*
- * @className VoiceMessage
+ * @className VoiceResponse
* @author jy.hu
* @date 2014年3月23日
* @since JDK 1.7
* @see 回复语音消息
- * @see com.foxinmy.weixin4j.msg.model.Voice
- * @see com.foxinmy.weixin4j.msg.BaseMessage
- * @see com.foxinmy.weixin4j.msg.BaseMessage#toXml()
+ * @see com.foxinmy.weixin4j.mp.msg.model.Voice
+ * @see com.foxinmy.weixin4j.mp.response.BaseResponse
+ * @see com.foxinmy.weixin4j.mp.response.BaseResponse#toXml()
*/
-public class VoiceMessage extends BaseMessage {
+public class VoiceResponse extends BaseResponse {
private static final long serialVersionUID = -7944926238652243793L;
- public VoiceMessage(BaseMessage inMessage) {
+ public VoiceResponse(BaseMessage inMessage) {
this(null, inMessage);
}
- public VoiceMessage(String mediaId, BaseMessage inMessage) {
- super(MessageType.voice, inMessage);
- super.getMsgType().setMessageClass(VoiceMessage.class);
+ public VoiceResponse(String mediaId, BaseMessage inMessage) {
+ super(ResponseType.voice, inMessage);
+ super.getMsgType().setMessageClass(VoiceResponse.class);
this.pushMediaId(mediaId);
}
@@ -50,12 +50,11 @@ public class VoiceMessage extends BaseMessage {
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
- sb.append("[VoiceMessage ,toUserName=").append(super.getToUserName());
+ 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());
- sb.append(" ,msgId=").append(super.getMsgId()).append("]");
+ sb.append(" ,createTime=").append(super.getCreateTime()).append("]");
return sb.toString();
}
}
diff --git a/src/main/java/com/foxinmy/weixin4j/server/README.md b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/server/README.md
similarity index 100%
rename from src/main/java/com/foxinmy/weixin4j/server/README.md
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/server/README.md
diff --git a/src/main/java/com/foxinmy/weixin4j/server/WeixinActionMapping.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/server/WeixinActionMapping.java
similarity index 89%
rename from src/main/java/com/foxinmy/weixin4j/server/WeixinActionMapping.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/server/WeixinActionMapping.java
index 0e0da1b1..a811d67a 100644
--- a/src/main/java/com/foxinmy/weixin4j/server/WeixinActionMapping.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/server/WeixinActionMapping.java
@@ -1,11 +1,11 @@
-package com.foxinmy.weixin4j.server;
+package com.foxinmy.weixin4j.mp.server;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
-import com.foxinmy.weixin4j.action.Action;
-import com.foxinmy.weixin4j.action.WeixinAction;
+import com.foxinmy.weixin4j.mp.action.Action;
+import com.foxinmy.weixin4j.mp.action.WeixinAction;
import com.foxinmy.weixin4j.type.EventType;
import com.foxinmy.weixin4j.type.MessageType;
import com.foxinmy.weixin4j.util.ClassUtil;
diff --git a/src/main/java/com/foxinmy/weixin4j/server/WeixinServerHandler.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/server/WeixinServerHandler.java
similarity index 97%
rename from src/main/java/com/foxinmy/weixin4j/server/WeixinServerHandler.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/server/WeixinServerHandler.java
index ff9d9391..c3ccf022 100644
--- a/src/main/java/com/foxinmy/weixin4j/server/WeixinServerHandler.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/server/WeixinServerHandler.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.server;
+package com.foxinmy.weixin4j.mp.server;
import static io.netty.handler.codec.http.HttpHeaders.Names.CONNECTION;
import static io.netty.handler.codec.http.HttpHeaders.Names.CONTENT_LENGTH;
@@ -24,7 +24,7 @@ import org.dom4j.DocumentException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.foxinmy.weixin4j.action.WeixinAction;
+import com.foxinmy.weixin4j.mp.action.WeixinAction;
import com.foxinmy.weixin4j.util.MessageUtil;
public class WeixinServerHandler extends ChannelInboundHandlerAdapter {
diff --git a/src/main/java/com/foxinmy/weixin4j/server/WeixinServerInitializer.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/server/WeixinServerInitializer.java
similarity index 95%
rename from src/main/java/com/foxinmy/weixin4j/server/WeixinServerInitializer.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/server/WeixinServerInitializer.java
index 0211b471..79d30655 100644
--- a/src/main/java/com/foxinmy/weixin4j/server/WeixinServerInitializer.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/server/WeixinServerInitializer.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.server;
+package com.foxinmy.weixin4j.mp.server;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelPipeline;
diff --git a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/spider/MpWeixin.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/spider/MpWeixin.java
new file mode 100644
index 00000000..5d72d1db
--- /dev/null
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/spider/MpWeixin.java
@@ -0,0 +1,5 @@
+package com.foxinmy.weixin4j.mp.spider;
+
+public final class MpWeixin {
+
+}
diff --git a/src/main/java/com/foxinmy/weixin4j/spider/README.md b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/spider/README.md
similarity index 100%
rename from src/main/java/com/foxinmy/weixin4j/spider/README.md
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/spider/README.md
diff --git a/src/main/java/com/foxinmy/weixin4j/spider/WeixinExecutor.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/spider/WeixinExecutor.java
similarity index 99%
rename from src/main/java/com/foxinmy/weixin4j/spider/WeixinExecutor.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/spider/WeixinExecutor.java
index 1f7bbf85..ef8a061b 100644
--- a/src/main/java/com/foxinmy/weixin4j/spider/WeixinExecutor.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/spider/WeixinExecutor.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.spider;
+package com.foxinmy.weixin4j.mp.spider;
import java.io.Serializable;
import java.net.URI;
@@ -11,6 +11,7 @@ import java.util.Map;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
@@ -28,7 +29,6 @@ import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicHeader;
import org.apache.http.message.BasicNameValuePair;
import org.jsoup.Jsoup;
-import org.jsoup.helper.StringUtil;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
@@ -107,7 +107,7 @@ public class WeixinExecutor implements Serializable {
this.uname = uname;
this.pwd = pwd;
- this.imgcode = StringUtil.isBlank(imgcode) ? "" : imgcode;
+ this.imgcode = StringUtils.isBlank(imgcode) ? "" : imgcode;
this.sig = sig;
weixin = new JSONObject();
@@ -183,7 +183,7 @@ public class WeixinExecutor implements Serializable {
.getBytes())));
parameters.add(new BasicNameValuePair("f", "json"));
parameters.add(new BasicNameValuePair("imgcode", imgcode));
- if (!StringUtil.isBlank(imgcode)) {
+ if (!StringUtils.isBlank(imgcode)) {
method.addHeader("Cookie", "sig=" + sig);
}
method.setEntity(new UrlEncodedFormEntity(parameters, charset));
diff --git a/src/main/java/com/foxinmy/weixin4j/server/WeixinServiceBootstrap.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/statrup/WeixinServiceBootstrap.java
similarity index 93%
rename from src/main/java/com/foxinmy/weixin4j/server/WeixinServiceBootstrap.java
rename to weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/statrup/WeixinServiceBootstrap.java
index ea830056..648c2a1b 100644
--- a/src/main/java/com/foxinmy/weixin4j/server/WeixinServiceBootstrap.java
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/statrup/WeixinServiceBootstrap.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.server;
+package com.foxinmy.weixin4j.mp.statrup;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.Channel;
@@ -10,6 +10,8 @@ import io.netty.handler.logging.LoggingHandler;
import java.util.ResourceBundle;
+import com.foxinmy.weixin4j.mp.server.WeixinServerInitializer;
+
/**
* 微信服务启动程序
*
diff --git a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/type/ResponseType.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/type/ResponseType.java
new file mode 100644
index 00000000..3cb0240a
--- /dev/null
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/type/ResponseType.java
@@ -0,0 +1,37 @@
+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;
+
+/**
+ *
+ * 响应类型
+ *
+ * @author jy.hu
+ *
+ */
+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/src/main/resources/error.xml b/weixin4j-mp/src/main/resources/error.xml
similarity index 100%
rename from src/main/resources/error.xml
rename to weixin4j-mp/src/main/resources/error.xml
diff --git a/src/main/resources/logback.xml b/weixin4j-mp/src/main/resources/logback.xml
similarity index 100%
rename from src/main/resources/logback.xml
rename to weixin4j-mp/src/main/resources/logback.xml
diff --git a/src/main/resources/netty.properties b/weixin4j-mp/src/main/resources/netty.properties
similarity index 100%
rename from src/main/resources/netty.properties
rename to weixin4j-mp/src/main/resources/netty.properties
diff --git a/src/main/resources/weixin.properties b/weixin4j-mp/src/main/resources/weixin.properties
similarity index 100%
rename from src/main/resources/weixin.properties
rename to weixin4j-mp/src/main/resources/weixin.properties
diff --git a/src/main/startup.sh b/weixin4j-mp/src/main/startup.sh
similarity index 97%
rename from src/main/startup.sh
rename to weixin4j-mp/src/main/startup.sh
index 1732f325..56a51710 100644
--- a/src/main/startup.sh
+++ b/weixin4j-mp/src/main/startup.sh
@@ -9,7 +9,7 @@ RUNNING_USER=root
APP_HOME="/usr/local/weixin/weixin-service"
#main class
-APP_MAINCLASS=com.foxinmy.weixin4j.server.WeixinServiceBootstrap
+APP_MAINCLASS=com.foxinmy.weixin4j.mp.startup.WeixinServiceBootstrap
#classpath
CLASSPATH=$APP_HOME/classes
diff --git a/src/test/java/com/foxinmy/weixin4j/test/GroupTest.java b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/GroupTest.java
similarity index 87%
rename from src/test/java/com/foxinmy/weixin4j/test/GroupTest.java
rename to weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/GroupTest.java
index e5da5c96..20a07bf1 100644
--- a/src/test/java/com/foxinmy/weixin4j/test/GroupTest.java
+++ b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/GroupTest.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.test;
+package com.foxinmy.weixin4j.mp.test;
import java.util.List;
@@ -6,10 +6,10 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import com.foxinmy.weixin4j.api.GroupApi;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.BaseResult;
-import com.foxinmy.weixin4j.model.Group;
+import com.foxinmy.weixin4j.mp.api.GroupApi;
+import com.foxinmy.weixin4j.mp.model.Group;
/**
* 用户分组测试
diff --git a/src/test/java/com/foxinmy/weixin4j/test/MediaTest.java b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/MediaTest.java
similarity index 88%
rename from src/test/java/com/foxinmy/weixin4j/test/MediaTest.java
rename to weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/MediaTest.java
index 59d73197..d2b7eb48 100644
--- a/src/test/java/com/foxinmy/weixin4j/test/MediaTest.java
+++ b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/MediaTest.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.test;
+package com.foxinmy.weixin4j.mp.test;
import java.io.File;
import java.io.IOException;
@@ -7,8 +7,8 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import com.foxinmy.weixin4j.api.MediaApi;
import com.foxinmy.weixin4j.exception.WeixinException;
+import com.foxinmy.weixin4j.mp.api.MediaApi;
import com.foxinmy.weixin4j.type.MediaType;
/**
diff --git a/src/test/java/com/foxinmy/weixin4j/test/MenuTest.java b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/MenuTest.java
similarity index 86%
rename from src/test/java/com/foxinmy/weixin4j/test/MenuTest.java
rename to weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/MenuTest.java
index 4beaf710..06b76cc8 100644
--- a/src/test/java/com/foxinmy/weixin4j/test/MenuTest.java
+++ b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/MenuTest.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.test;
+package com.foxinmy.weixin4j.mp.test;
import java.util.ArrayList;
import java.util.List;
@@ -7,10 +7,10 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import com.foxinmy.weixin4j.api.MenuApi;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.BaseResult;
-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/src/test/java/com/foxinmy/weixin4j/test/QRTest.java b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/QRTest.java
similarity index 78%
rename from src/test/java/com/foxinmy/weixin4j/test/QRTest.java
rename to weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/QRTest.java
index 233ba32a..7495100e 100644
--- a/src/test/java/com/foxinmy/weixin4j/test/QRTest.java
+++ b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/QRTest.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.test;
+package com.foxinmy.weixin4j.mp.test;
import java.io.File;
import java.io.IOException;
@@ -7,10 +7,10 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import com.foxinmy.weixin4j.api.QrApi;
import com.foxinmy.weixin4j.exception.WeixinException;
-import com.foxinmy.weixin4j.model.QRParameter;
-import com.foxinmy.weixin4j.model.QRParameter.QRType;
+import com.foxinmy.weixin4j.mp.api.QrApi;
+import com.foxinmy.weixin4j.mp.model.QRParameter;
+import com.foxinmy.weixin4j.mp.model.QRParameter.QRType;
/**
* 二维码相关测试
diff --git a/src/test/java/com/foxinmy/weixin4j/test/TokenTest.java b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/TokenTest.java
similarity index 73%
rename from src/test/java/com/foxinmy/weixin4j/test/TokenTest.java
rename to weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/TokenTest.java
index 947a7ead..e14bc267 100644
--- a/src/test/java/com/foxinmy/weixin4j/test/TokenTest.java
+++ b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/TokenTest.java
@@ -1,12 +1,12 @@
-package com.foxinmy.weixin4j.test;
+package com.foxinmy.weixin4j.mp.test;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import com.foxinmy.weixin4j.api.token.FileTokenApi;
-import com.foxinmy.weixin4j.api.token.TokenApi;
import com.foxinmy.weixin4j.exception.WeixinException;
+import com.foxinmy.weixin4j.token.FileTokenApi;
+import com.foxinmy.weixin4j.token.TokenApi;
/**
* token测试
diff --git a/src/test/java/com/foxinmy/weixin4j/test/UserTest.java b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/UserTest.java
similarity index 85%
rename from src/test/java/com/foxinmy/weixin4j/test/UserTest.java
rename to weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/UserTest.java
index dfc18cf1..c2cf0ea8 100644
--- a/src/test/java/com/foxinmy/weixin4j/test/UserTest.java
+++ b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/UserTest.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.test;
+package com.foxinmy.weixin4j.mp.test;
import java.util.List;
@@ -6,10 +6,10 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import com.foxinmy.weixin4j.api.UserApi;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.BaseResult;
-import com.foxinmy.weixin4j.model.User;
+import com.foxinmy.weixin4j.mp.api.UserApi;
+import com.foxinmy.weixin4j.mp.model.User;
/**
* 用户相关测试
diff --git a/src/test/java/com/foxinmy/weixin4j/test/msg/EventMsgTest.java b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/msg/EventMsgTest.java
similarity index 96%
rename from src/test/java/com/foxinmy/weixin4j/test/msg/EventMsgTest.java
rename to weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/msg/EventMsgTest.java
index a0c4a00b..11783dba 100644
--- a/src/test/java/com/foxinmy/weixin4j/test/msg/EventMsgTest.java
+++ b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/msg/EventMsgTest.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.test.msg;
+package com.foxinmy.weixin4j.mp.test.msg;
import java.io.IOException;
diff --git a/src/test/java/com/foxinmy/weixin4j/test/msg/InMsgTest.java b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/msg/InMsgTest.java
similarity index 96%
rename from src/test/java/com/foxinmy/weixin4j/test/msg/InMsgTest.java
rename to weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/msg/InMsgTest.java
index 03a94d6c..a2eb4910 100644
--- a/src/test/java/com/foxinmy/weixin4j/test/msg/InMsgTest.java
+++ b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/msg/InMsgTest.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.test.msg;
+package com.foxinmy.weixin4j.mp.test.msg;
import java.io.IOException;
diff --git a/src/test/java/com/foxinmy/weixin4j/test/msg/MassMsgTest.java b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/msg/MassMsgTest.java
similarity index 91%
rename from src/test/java/com/foxinmy/weixin4j/test/msg/MassMsgTest.java
rename to weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/msg/MassMsgTest.java
index f240ade9..3dc63f3f 100644
--- a/src/test/java/com/foxinmy/weixin4j/test/msg/MassMsgTest.java
+++ b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/msg/MassMsgTest.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.test.msg;
+package com.foxinmy.weixin4j.mp.test.msg;
import java.io.File;
import java.io.IOException;
@@ -9,12 +9,12 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import com.foxinmy.weixin4j.api.MassApi;
-import com.foxinmy.weixin4j.api.MediaApi;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.BaseResult;
-import com.foxinmy.weixin4j.model.MpArticle;
-import com.foxinmy.weixin4j.test.TokenTest;
+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.type.MediaType;
/**
diff --git a/src/test/java/com/foxinmy/weixin4j/test/msg/MessagePush.java b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/msg/MessagePush.java
similarity index 94%
rename from src/test/java/com/foxinmy/weixin4j/test/msg/MessagePush.java
rename to weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/msg/MessagePush.java
index 122dc5be..70cc9ed8 100644
--- a/src/test/java/com/foxinmy/weixin4j/test/msg/MessagePush.java
+++ b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/msg/MessagePush.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.test.msg;
+package com.foxinmy.weixin4j.mp.test.msg;
import java.io.IOException;
import java.net.URI;
@@ -24,7 +24,7 @@ public class MessagePush {
public MessagePush() {
this.httpClient = new DefaultHttpClient();
ResourceBundle config = ResourceBundle
- .getBundle("com.foxinmy.weixin4j.server.netty");
+ .getBundle("netty");
httpPost = new HttpPost();
httpPost.setURI(URI.create(String.format("http://localhost:%s",
Integer.parseInt(config.getString("port")))));
diff --git a/src/test/java/com/foxinmy/weixin4j/test/msg/NotifyMsgTest.java b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/msg/NotifyMsgTest.java
similarity index 77%
rename from src/test/java/com/foxinmy/weixin4j/test/msg/NotifyMsgTest.java
rename to weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/msg/NotifyMsgTest.java
index adb05cdf..fdb36730 100644
--- a/src/test/java/com/foxinmy/weixin4j/test/msg/NotifyMsgTest.java
+++ b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/msg/NotifyMsgTest.java
@@ -1,4 +1,4 @@
-package com.foxinmy.weixin4j.test.msg;
+package com.foxinmy.weixin4j.mp.test.msg;
import java.io.File;
import java.io.IOException;
@@ -7,18 +7,18 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import com.foxinmy.weixin4j.api.MediaApi;
-import com.foxinmy.weixin4j.api.NotifyApi;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.BaseResult;
-import com.foxinmy.weixin4j.msg.notify.ArticleNotify;
-import com.foxinmy.weixin4j.msg.notify.BaseNotify;
-import com.foxinmy.weixin4j.msg.notify.ImageNotify;
-import com.foxinmy.weixin4j.msg.notify.MusicNotify;
-import com.foxinmy.weixin4j.msg.notify.TextNotify;
-import com.foxinmy.weixin4j.msg.notify.VideoNotify;
-import com.foxinmy.weixin4j.msg.notify.VoiceNotify;
-import com.foxinmy.weixin4j.test.TokenTest;
+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.test.TokenTest;
import com.foxinmy.weixin4j.type.MediaType;
/**
diff --git a/src/test/java/com/foxinmy/weixin4j/test/msg/OutMsgTest.java b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/msg/OutMsgTest.java
similarity index 65%
rename from src/test/java/com/foxinmy/weixin4j/test/msg/OutMsgTest.java
rename to weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/msg/OutMsgTest.java
index d63cc986..1ec68236 100644
--- a/src/test/java/com/foxinmy/weixin4j/test/msg/OutMsgTest.java
+++ b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/msg/OutMsgTest.java
@@ -1,16 +1,16 @@
-package com.foxinmy.weixin4j.test.msg;
+package com.foxinmy.weixin4j.mp.test.msg;
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.VideoResponse;
+import com.foxinmy.weixin4j.mp.response.VoiceResponse;
import com.foxinmy.weixin4j.msg.BaseMessage;
import com.foxinmy.weixin4j.msg.TextMessage;
-import com.foxinmy.weixin4j.msg.out.ArticleMessage;
-import com.foxinmy.weixin4j.msg.out.ImageMessage;
-import com.foxinmy.weixin4j.msg.out.MusicMessage;
-import com.foxinmy.weixin4j.msg.out.VideoMessage;
-import com.foxinmy.weixin4j.msg.out.VoiceMessage;
/**
* 发送消息格式测试
@@ -37,35 +37,35 @@ public class OutMsgTest {
@Test
public void image() {
- ImageMessage message = new ImageMessage(inMessage);
+ ImageResponse message = new ImageResponse(inMessage);
message.pushMediaId("mediaId");
System.out.println(message.toXml());
}
@Test
public void voice() {
- VoiceMessage message = new VoiceMessage(inMessage);
+ VoiceResponse message = new VoiceResponse(inMessage);
message.pushMediaId("mediaId");
System.out.println(message.toXml());
}
@Test
public void video() {
- VideoMessage message = new VideoMessage(inMessage);
+ VideoResponse message = new VideoResponse(inMessage);
message.pushVideo("mediaId");
System.out.println(message.toXml());
}
@Test
public void music() {
- MusicMessage message = new MusicMessage(inMessage);
+ MusicResponse message = new MusicResponse(inMessage);
message.pushMusic("mediaId");
System.out.println(message.toXml());
}
@Test
public void article() {
- ArticleMessage message = new ArticleMessage(inMessage);
+ ArticleResponse message = new ArticleResponse(inMessage);
message.pushArticle("title1", "desc1", "picUrl1", "url1");
message.pushArticle("title2", "desc2", "picUrl2", "url2");
System.out.println(message.toXml());
diff --git a/src/test/java/com/foxinmy/weixin4j/test/msg/TemplateMsgTest.java b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/msg/TemplateMsgTest.java
similarity index 76%
rename from src/test/java/com/foxinmy/weixin4j/test/msg/TemplateMsgTest.java
rename to weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/msg/TemplateMsgTest.java
index 53eabff0..e20b7a10 100644
--- a/src/test/java/com/foxinmy/weixin4j/test/msg/TemplateMsgTest.java
+++ b/weixin4j-mp/src/test/java/com/foxinmy/weixin4j/mp/test/msg/TemplateMsgTest.java
@@ -1,14 +1,14 @@
-package com.foxinmy.weixin4j.test.msg;
+package com.foxinmy.weixin4j.mp.test.msg;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import com.foxinmy.weixin4j.api.TmplApi;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.BaseResult;
-import com.foxinmy.weixin4j.msg.out.TemplateMessage;
-import com.foxinmy.weixin4j.test.TokenTest;
+import com.foxinmy.weixin4j.mp.api.TmplApi;
+import com.foxinmy.weixin4j.mp.response.TemplateMessage;
+import com.foxinmy.weixin4j.mp.test.TokenTest;
public class TemplateMsgTest extends TokenTest {
private TmplApi tmplApi;
diff --git a/weixin4j-qy/.gitignore b/weixin4j-qy/.gitignore
new file mode 100644
index 00000000..c880f664
--- /dev/null
+++ b/weixin4j-qy/.gitignore
@@ -0,0 +1,28 @@
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.ear
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
+*~
+
+# eclipse ignore
+*.settings/*
+/.project
+/.classpath
+/.tomcatplugin
+
+# maven ignore
+target/*
+
+# other ignore
+*.log
+*.tmp
+Thumbs.db
+/target/
+.DS_Store
diff --git a/weixin4j-qy/README.md b/weixin4j-qy/README.md
new file mode 100644
index 00000000..ae545827
--- /dev/null
+++ b/weixin4j-qy/README.md
@@ -0,0 +1,11 @@
+weixin4j-qy
+===========
+
+tencent weixin qy java sdk 微信企业号开发工具包 http://qydev.weixin.qq.com/wiki/index.php
+
+功能列表
+-------
+
+如何使用
+--------
+
diff --git a/weixin4j-qy/pom.xml b/weixin4j-qy/pom.xml
new file mode 100644
index 00000000..2aaa3e3e
--- /dev/null
+++ b/weixin4j-qy/pom.xml
@@ -0,0 +1,13 @@
+
+
+ 4.0.0
+
+ com.foxinmy.weixin4j
+ weixin4j
+ 0.0.1-SNAPSHOT
+
+ weixin4j-qy
+ weixin4j-qy
+
diff --git a/weixin4j-qy/src/main/java/com/weixin4j/qy/App.java b/weixin4j-qy/src/main/java/com/weixin4j/qy/App.java
new file mode 100644
index 00000000..c635b5b6
--- /dev/null
+++ b/weixin4j-qy/src/main/java/com/weixin4j/qy/App.java
@@ -0,0 +1,13 @@
+package com.weixin4j.qy;
+
+/**
+ * Hello world!
+ *
+ */
+public class App
+{
+ public static void main( String[] args )
+ {
+ System.out.println( "Hello World!" );
+ }
+}
diff --git a/weixin4j-qy/src/test/java/com/weixin4j/qy/AppTest.java b/weixin4j-qy/src/test/java/com/weixin4j/qy/AppTest.java
new file mode 100644
index 00000000..38a7c4f1
--- /dev/null
+++ b/weixin4j-qy/src/test/java/com/weixin4j/qy/AppTest.java
@@ -0,0 +1,38 @@
+package com.weixin4j.qy;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest
+ extends TestCase
+{
+ /**
+ * Create the test case
+ *
+ * @param testName name of the test case
+ */
+ public AppTest( String testName )
+ {
+ super( testName );
+ }
+
+ /**
+ * @return the suite of tests being tested
+ */
+ public static Test suite()
+ {
+ return new TestSuite( AppTest.class );
+ }
+
+ /**
+ * Rigourous Test :-)
+ */
+ public void testApp()
+ {
+ assertTrue( true );
+ }
+}