diff --git a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/mapping/AbstractActionMapping.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/mapping/AbstractActionMapping.java new file mode 100644 index 00000000..6390f42b --- /dev/null +++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/mapping/AbstractActionMapping.java @@ -0,0 +1,29 @@ +package com.foxinmy.weixin4j.mp.mapping; + +import org.dom4j.Document; +import org.dom4j.DocumentException; +import org.dom4j.DocumentHelper; + +import com.foxinmy.weixin4j.type.MessageType; + +/** + * 获取默认的Mapping Key 如text,event_click + * + * @className AbstractActionMapping + * @author jy + * @date 2014年10月28日 + * @since JDK 1.7 + * @see + */ +public abstract class AbstractActionMapping implements ActionMapping { + + protected String getMappingKey(String xmlMsg) throws DocumentException { + Document doc = DocumentHelper.parseText(xmlMsg); + String msgType = doc.selectSingleNode("/xml/MsgType").getStringValue(); + if (msgType.equalsIgnoreCase(MessageType.event.name())) { + msgType += "_" + + doc.selectSingleNode("/xml/Event").getStringValue(); + } + return msgType.toLowerCase(); + } +} diff --git a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/mapping/ActionMapping.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/mapping/ActionMapping.java new file mode 100644 index 00000000..8446cd26 --- /dev/null +++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/mapping/ActionMapping.java @@ -0,0 +1,18 @@ +package com.foxinmy.weixin4j.mp.mapping; + +import org.dom4j.DocumentException; + +import com.foxinmy.weixin4j.mp.action.WeixinAction; + +/** + * 可扩展的Mapping接口 + * + * @className ActionMapping + * @author jy + * @date 2014年10月28日 + * @since JDK 1.7 + * @see + */ +public interface ActionMapping { + public WeixinAction getAction(String xmlMsg) throws DocumentException; +}