com.wtxy.weixin.service
  1 package com.wtxy.weixin.service;
  2 
  3 import java.util.Date;
  4 import java.util.Map;
  5 
  6 import javax.servlet.http.HttpServletRequest;
  7 
  8 import com.wtxy.util.MessageUtil;
  9 import com.wtxy.weixin.message.TextMessage;
 10 
 11 /**
 12  * 核心服务类
 13  * 
 14  * @author Ran
 15  * @date 2016-04-21
 16  */
 17 public class CoreService {
 18     /**
 19      * 处理微信发来的请求
 20      * 
 21      * @param request
 22      * @return xml
 23      */
 24     public static String processRequest(HttpServletRequest request) {
 25         // xml格式的消息数据
 26         String respXML = null;
 27         
 28         TextMessage textMessage = new TextMessage();
 29         // 默认返回的文本消息内容
 30         String respContent = "未知的消息类型!";
 31         try {
 32             // 调用parseXml方法解析请求消息
 33             Map<String, String> requestMap = MessageUtil.parseXML(request);
 34             // 发送方帐号
 35             String fromUserName = requestMap.get("FromUserName");
 36             // 开发者微信号
 37             String toUserName = requestMap.get("ToUserName");
 38             // 消息类型
 39             String msgType = requestMap.get("MsgType");
 40 
 41             // 回复文本消息
 42             textMessage.setToUserName(fromUserName);
 43             textMessage.setFromUserName(toUserName);
 44             textMessage.setCreateTime(new Date().getTime());
 45             textMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);
 46 
 47             // 文本消息
 48             if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_TEXT)) {
 49                 String content = requestMap.get("Content"); 
 50                 if (content.equals("开灯")){
 51                     respContent = "灯已开!";
 52                //respContent = "您发送的是文本消息!内容是:\n"+content;
 53                 }else if(content.equals("关灯")){
 54                     respContent = "灯已关!";
 55                 }
 56 
 57             }
 58             // 图片消息
 59             else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_IMAGE)) {
 60                 respContent = "您发送的是图片消息!";
 61             }
 62             // 语音消息
 63             else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_VOICE)) {
 64                 respContent = "您发送的是语音消息!";
 65             }
 66             // 视频消息
 67             else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_VIDEO)) {
 68                 respContent = "您发送的是视频消息!";
 69             }
 70             // 地理位置消息
 71             else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_LOCATION)) {
 72                 respContent = "您发送的是地理位置消息!";
 73             }
 74             // 链接消息
 75             else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_LINK)) {
 76                 respContent = "您发送的是链接消息!";
 77             }
 78             // 事件推送
 79             else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_EVENT)) {
 80                 // 事件类型
 81                 String eventType = requestMap.get("Event");
 82                 // 关注
 83                 if (eventType.equals(MessageUtil.EVENT_TYPE_SUBSCRIBE)) {
 84                     respContent = "欢迎关注 智能管家wtxy!";
 85                 }
 86                 // 取消关注
 87                 else if (eventType.equals(MessageUtil.EVENT_TYPE_UNSUBSCRIBE)) {
 88                     // TODO 取消订阅后用户不会再收到公众账号发送的消息,因此不需要回复
 89                 }
 90                 // 扫描带参数二维码
 91                 else if (eventType.equals(MessageUtil.EVENT_TYPE_SCAN)) {
 92                     // TODO 处理扫描带参数二维码事件
 93                 }
 94                 // 上报地理位置
 95                 else if (eventType.equals(MessageUtil.EVENT_TYPE_LOCATION)) {
 96                     // TODO 处理上报地理位置事件
 97                 }
 98                 // 自定义菜单
 99                 else if (eventType.equals(MessageUtil.EVENT_TYPE_CLICK)) {
100                     // TODO 处理菜单点击事件
101                 }
102             }
103             // 设置文本消息的内容
104             textMessage.setContent(respContent);
105             // 将文本消息对象转换成xml
106             respXML = MessageUtil.messageToXML(textMessage);
107         } catch (Exception e) {
108             e.printStackTrace();
109         }
110         return respXML;
111     }
112 }
CoreService.java

相关文章:

  • 2022-01-08
  • 2021-11-29
  • 2021-05-18
  • 2021-08-31
  • 2021-09-14
  • 2021-04-28
猜你喜欢
  • 2021-05-30
  • 2021-08-08
  • 2021-07-14
  • 2022-12-23
  • 2021-09-16
  • 2022-02-11
  • 2021-08-25
相关资源
相似解决方案