介绍
本篇文章给大家分享的是有关微信公众平台开发中使用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如何实现一个消息回复功能