# WeChatApiPackage **Repository Path**: rectcircle/WeChatApiPackage ## Basic Information - **Project Name**: WeChatApiPackage - **Description**: 微信接入验证及消息处理的责任链模式框架 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2016-07-11 - **Last Updated**: 2020-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #WeChatApiPackage ##系统要求 JDK版本:jdk7以上 依赖:jackson、servlet-api 不依赖其他框架 ##这个jar有什么功能 封装token验证 封装微信服务器POST的消息 封装微信web开发中JS-SDK注入配置信息 提供一个代理请求微信api的封装 ##手册 ###微信消息处理 流程图 ![消息处理流程图](http://git.oschina.net/uploads/images/2016/1001/230720_b8dbd389_727153.png "消息处理流程图") 您只需要实现若干个处理器即可完成消息的处理 接入指南(servlet环境) 示例代码: ``` //自定义处理器,需要实现MsgHandler 接口 import com.rectcircle.wechat.api.MsgApi; import com.rectcircle.wechat.entrance.MsgHandler; import com.rectcircle.wechat.msg.vo.Message; public class MsgHandlerImpl implements MsgHandler { @Override public Message handleMsg(Message receiveMsg) { Message replyMsg = null; //TODO 业务逻辑 if(receiveMsg.getMsgType().equals(MsgApi.Msg_Type_TEXT)){ replyMsg = MsgApi.replyTextMsg(receiveMsg, "已经收到一条文本消息消息"); } return replyMsg; } } ``` ``` //servlet代码 import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.rectcircle.test.service.MsgHandlerImpl; import com.rectcircle.wechat.entrance.Dispatcher; import com.rectcircle.wechat.entrance.MsgHandler; import com.rectcircle.wechat.exception.ConfigException; @WebServlet("/Home") public class Home extends HttpServlet { private static final long serialVersionUID = 1L; private MsgHandler msgHandler; private Dispatcher dispatcher; public Home() { msgHandler = new MsgHandlerImpl(); //实例化消息处理器 dispatcher = new Dispatcher("rectcircle"); //实例化分发器 dispatcher.addHandler(msgHandler); //添加处理器 //继续添加处理器 } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { dispatcher.distribute(request, response); } catch (ConfigException e) { e.printStackTrace(); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } ```