【大的调整】重新定义(手贱)了「被动消息」「客服消息」「群发消息」的传输实体,另外新增了企业号「多媒体管理接口」「菜单管理接口」「发送消息接口」三个接口

This commit is contained in:
jy.hu
2014-11-23 16:35:59 +08:00
parent 5b213cd87f
commit 2ece136d46
126 changed files with 2419 additions and 1923 deletions
@@ -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<M extends BaseMessage> implements
public abstract class AbstractAction<M extends BaseMsg> 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<M> messageClass = getGenericType();
XStream xstream = XStream.get();
@@ -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<M extends BaseMessage> extends AbstractAction<M> {
public class BlankAction<M extends BaseMsg> extends AbstractAction<M> {
@Override
public BaseResponse execute(M inMessage) {
public ResponseMessage execute(M inMessage) {
return null;
}
}
@@ -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<M extends BaseMessage> extends
AbstractAction<M> {
public abstract class DebugAction<M extends BaseMsg> extends AbstractAction<M> {
@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);
}
}
@@ -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<TextMessage> {
@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);
}
}
@@ -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;
}
@@ -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 <a
* href="http://mp.weixin.qq.com/wiki/index.php?title=%E6%8E%A5%E5%85%A5%E6%8C%87%E5%BC%95">加密接入指引</a>
*/
public class WeixinMessageEncoder extends MessageToMessageEncoder<BaseResponse> {
public class WeixinMessageEncoder extends MessageToMessageEncoder<ResponseMessage> {
private final Logger log = LoggerFactory.getLogger(getClass());
protected final static XStream mapXstream = XStream.get();
static {
@@ -43,7 +43,7 @@ public class WeixinMessageEncoder extends MessageToMessageEncoder<BaseResponse>
}
@Override
protected void encode(ChannelHandlerContext ctx, BaseResponse response,
protected void encode(ChannelHandlerContext ctx, ResponseMessage response,
List<Object> out) throws Exception {
WeixinMpAccount mpAccount = ConfigUtil.getWeixinMpAccount();
String xmlContent = response.toXml();
@@ -13,8 +13,8 @@ import org.slf4j.LoggerFactory;
import com.foxinmy.weixin4j.mp.action.WeixinAction;
import com.foxinmy.weixin4j.mp.mapping.ActionMapping;
import com.foxinmy.weixin4j.mp.message.ResponseMessage;
import com.foxinmy.weixin4j.mp.model.HttpWeixinMessage;
import com.foxinmy.weixin4j.mp.response.BaseResponse;
import com.foxinmy.weixin4j.mp.type.EncryptType;
import com.foxinmy.weixin4j.mp.util.HttpUtil;
import com.foxinmy.weixin4j.util.MessageUtil;
@@ -84,7 +84,7 @@ public class WeixinServerHandler extends
HttpResponseStatus.NOT_FOUND));
return;
}
BaseResponse response = action.execute(xmlContent);
ResponseMessage response = action.execute(xmlContent);
log.info("\n=================message out=================\n{}",
response);
if (response == null) {
@@ -13,15 +13,15 @@ import java.util.ResourceBundle;
import com.foxinmy.weixin4j.mp.server.WeixinServerInitializer;
/**
* 微信服务netty启动程序
* 微信公众平台服务netty启动程序
*
* @className WeixinServerBootstrap
* @className WeixinMpServerBootstrap
* @author jy
* @date 2014年10月12日
* @since JDK 1.7
* @see
*/
public final class WeixinServerBootstrap {
public final class WeixinMpServerBootstrap {
private final static int port;
private final static int workerThreads;