11.5.4 CoreService类的实现
CoreService的实现比较简单,主要就是接收用户发送的文本消息,然后调用ChatService类的chat()方法进行处理。CoreService类的代码如下:
- package org.liufeng.course.service;
- import java.util.Date;
- import java.util.Map;
- import javax.servlet.http.HttpServletRequest;
- import org.liufeng.course.message.resp.TextMessage;
- import org.liufeng.course.util.MessageUtil;
- /**
- * 核心服务类
- *
- * @author liufeng
- * @date 2013-12-02
- */
- public class CoreService {
- /**
- * 处理微信发来的请求
- *
- * @param request
- * @return xml
- */
- public static String processRequest(HttpServletRequest request) {
- // xml格式的消息数据
- String respXml = null;
- // 默认返回的文本消息内容
- String respContent = "发送任意文本,我们开始聊天吧!";
- try {
- // 调用parseXml方法解析请求消息
- Map<String, String> requestMap = MessageUtil.parseXml(request);
- // 发送方账号
- String fromUserName = requestMap.get("FromUserName");
- // 开发者微信号
- String toUserName = requestMap.get("ToUserName");
- // 消息类型
- String msgType = requestMap.get("MsgType");
- // 消息创建时间
- String createTime = requestMap.get("CreateTime");
- // 文本消息
- if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_TEXT)) {
- String content = requestMap.get("Content");
- respContent = ChatService.chat(fromUserName, createTime, content);
- }
- // 回复文本消息
- TextMessage textMessage = new TextMessage();
- textMessage.setToUserName(fromUserName);
- textMessage.setFromUserName(toUserName);
- textMessage.setCreateTime(new Date().getTime());
- textMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);
- textMessage.setContent(respContent);
- // 将文本消息对象转换成XML
- respXml = MessageUtil.messageToXml(textMessage);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return respXml;
- }
- }