微信公众平台开发中使用Java如何实现一个消息回复功能

  介绍

本篇文章给大家分享的是有关微信公众平台开发中使用Java如何实现一个消息回复功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

<强>(一)回复文本消息

在前面我们已经完成了对消息的分类和回复消息实体的建立,这里回复文本消息需要用到的就是我们的TextMessage,我们把回复文本消息在【文本消息】类型中给出回复!在我们做消息回复的时候需要设置消息的接收人ToUserName (openid),消息的发送方FromUserName,消息类型MsgType,创建时间CreateTime以及消息体内容,由于我们我们的消息回复格式是需要为xml,所以最终我们需要将其装换成xml再做返回输出!

首先我们在工具类MessageUtil的代码做出部分修改和添加,实现最后版本为:

包com.cuiyongzhi.wechat.util;
  
  进口java.io.InputStream;
  进口java.io.Writer;
  进口java.util.HashMap;
  进口并不知道;
  进口java.util.Map;
  
  进口javax.servlet.http.HttpServletRequest;
  
  进口org.dom4j。D ocument;
  进口org.dom4j.Element;
  进口org.dom4j.io.SAXReader;
  
  进口com.cuiyongzhi.wechat.message.resp.Article;
  进口com.cuiyongzhi.wechat.message.resp.ImageMessage;
  进口com.cuiyongzhi.wechat.message.resp.MusicMessage;
  进口com.cuiyongzhi.wechat.message.resp.NewsMessage;
  进口com.cuiyongzhi.wechat.message.resp.TextMessage;
  进口com.cuiyongzhi.wechat.message.resp.VideoMessage;
  进口com.cuiyongzhi.wechat.message.resp.VoiceMessage;
  进口com.thoughtworks.xstream.XStream;
  进口com.thoughtworks.xstream.core.util.QuickWriter;
  进口com.thoughtworks.xstream.io.HierarchicalStreamWriter;
  进口com.thoughtworks.xstream.io.xml.PrettyPrintWriter;
  进口com.thoughtworks.xstream.io.xml.XppDriver;/* *
  *名称:MessageUtil
  *
  * @Description:消息工具类
  * @author dapengniao
  * @date 2016年3月7日上午10:05:04
  */公开课MessageUtil {/* *
  *返回消息类型:文本
  */公共静态最终字符串RESP_MESSAGE_TYPE_TEXT=皌ext";/* *
  *返回消息类型:音乐
  */公共静态最终字符串RESP_MESSAGE_TYPE_MUSIC=耙衾帧?/* *
  *返回消息类型:图文
  */公共静态最终字符串RESP_MESSAGE_TYPE_NEWS=皀ews";/* *
  *返回消息类型:图片
  */公共静态最终字符串RESP_MESSAGE_TYPE_Image=癷mage";/* *
  *返回消息类型:语音
  */公共静态最终字符串RESP_MESSAGE_TYPE_Voice=皏oice";/* *
  *返回消息类型:视频
  */公共静态最终字符串RESP_MESSAGE_TYPE_Video=皏ideo";/* *
  *请求消息类型:文本
  */公共静态最终字符串REQ_MESSAGE_TYPE_TEXT=皌ext";/* *
  *请求消息类型:图片
  */公共静态最终字符串REQ_MESSAGE_TYPE_IMAGE=癷mage";/* *
  *请求消息类型:链接
  */公共静态最终字符串REQ_MESSAGE_TYPE_LINK=發ink";/* *
  *请求消息类型:地理位置
  */公共静态最终字符串REQ_MESSAGE_TYPE_LOCATION=發ocation";/* *
  *请求消息类型:音频
  */公共静态最终字符串REQ_MESSAGE_TYPE_VOICE=皏oice";/* *
  *请求消息类型:视频
  */公共静态最终字符串REQ_MESSAGE_TYPE_VIDEO=皏ideo";/* *
  *请求消息类型:推送
  */公共静态最终字符串REQ_MESSAGE_TYPE_EVENT=癳vent";/* *
  *事件类型:订阅(订阅)
  */公共静态最终字符串EVENT_TYPE_SUBSCRIBE=皊ubscribe";/* *
  *事件类型:退订(取消订阅)
  */公共静态最终字符串EVENT_TYPE_UNSUBSCRIBE=皍nsubscribe";/* *
  *事件类型:点击(自定义菜单点击事件)
  */公共静态最终字符串EVENT_TYPE_CLICK=癈LICK";/* *
  *事件类型:视图(自定义菜单URl视图)
  */公共静态最终字符串EVENT_TYPE_VIEW=?调整;/* *
  *事件类型:位置(上报地理位置事件)
  */公共静态最终字符串EVENT_TYPE_LOCATION=癓OCATION";/* *
  *事件类型:位置(上报地理位置事件)
  */公共静态最终字符串EVENT_TYPE_SCAN=癝CAN";/* *
  * @Description:解析微信发来的请求(XML)
  * @param @param请求
  * @param @return
  * @param @throws例外
  * @author dapengniao
  * @date 2016年3月7日上午10:04:02
  */@SuppressWarnings (“unchecked")
  公共静态Map<字符串,String>parseXml (HttpServletRequest请求)
  抛出异常{//将解析结果存储在HashMap中
  String> Map<字符串;地图=new HashMap<字符串,String> ();//从请求中取得输入流
  InputStream InputStream=request.getInputStream ();//读取输入流
  SAXReader读者=new SAXReader ();
  文档文件=reader.read (inputStream);//得到xml根元素
  根元素=document.getRootElement ();//得到根元素的所有子节点
  List

微信公众平台开发中使用Java如何实现一个消息回复功能