Java微信二次開發(fā)(三) Java微信各類型消息封裝
本文實(shí)例為大家分享了Java微信各種類型消息的封裝,供大家參考,具體內(nèi)容如下
第一步:找到com.wtz.message.response包,新建類Image.java
package com.wtz.message.response;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 上午8:38:37
* version:1.0
* description:圖片的實(shí)體類
*/
public class Image {
//圖片媒體ID
private String MediaId;
public String getMediaId() {
return MediaId;
}
public void setMediaId(String mediaId) {
MediaId = mediaId;
}
}
第二步:找到com.wtz.message.response包,新建類ImageMessage.java
package com.wtz.message.response;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 上午8:49:57
* version:1.0
* description:圖片消息類
*/
public class ImageMessage extends BaseMessage {
//圖片對(duì)象
private Image image;
public Image getImage() {
return image;
}
public void setImage(Image image) {
this.image = image;
}
}
第三步:找到com.wtz.message.response包,新建類Video.java
package com.wtz.message.response;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 上午9:02:14
* version:1.0
* description:視頻的實(shí)體類
*/
public class Video {
//視頻消息的媒體ID
private String MediaId;
//視頻消息的標(biāo)題
private String Title;
//視頻消息的描述
private String Description;
public String getMediaId() {
return MediaId;
}
public void setMediaId(String mediaId) {
MediaId = mediaId;
}
public String getTitle() {
return Title;
}
public void setTitle(String title) {
Title = title;
}
public String getDescription() {
return Description;
}
public void setDescription(String description) {
Description = description;
}
}
第四步:找到com.wtz.message.response包,新建類VideoMessage.java
package com.wtz.message.response;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 上午9:10:14
* version:1.0
* description:視頻消息類
*/
public class VideoMessage extends BaseMessage{
//視頻對(duì)象
private Video video;
public Video getVideo() {
return video;
}
public void setVideo(Video video) {
this.video = video;
}
}
第五步:找到com.wtz.message.response包,新建類Voice.java
package com.wtz.message.response;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 上午9:21:47
* version:1.0
* description:語音消息實(shí)體類
*/
public class Voice {
//語音媒體編號(hào)
private String MediaId;
public String getMediaId() {
return MediaId;
}
public void setMediaId(String mediaId) {
MediaId = mediaId;
}
}
第六步:找到com.wtz.message.response包,新建類VoiceMessage.java
package com.wtz.message.response;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 上午9:44:58
* version:1.0</p>
* description:語音消息類
*/
public class VoiceMessage extends BaseMessage{
//語音對(duì)象
private Voice voice;
public Voice getVoice() {
return voice;
}
public void setVoice(Voice voice) {
this.voice = voice;
}
}
第七步:找到com.wtz.message.response包,新建類Music.java
package com.wtz.message.response;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 上午9:48:11
* version:1.0
* description:音樂消息實(shí)體類
*/
public class Music {
//音樂標(biāo)題
private String Title;
//音樂描述
private String Description;
//音樂鏈接
private String MusicUrl;
//高品質(zhì)音樂鏈接
private String HQMusicUrl;
//縮略圖的媒體ID
private String ThumbMediaId;
public String getTitle() {
return Title;
}
public void setTitle(String title) {
Title = title;
}
public String getDescription() {
return Description;
}
public void setDescription(String description) {
Description = description;
}
public String getMusicUrl() {
return MusicUrl;
}
public void setMusicUrl(String musicUrl) {
MusicUrl = musicUrl;
}
public String getHQMusicUrl() {
return HQMusicUrl;
}
public void setHQMusicUrl(String hQMusicUrl) {
HQMusicUrl = hQMusicUrl;
}
public String getThumbMediaId() {
return ThumbMediaId;
}
public void setThumbMediaId(String thumbMediaId) {
ThumbMediaId = thumbMediaId;
}
}
第八步:找到com.wtz.message.response包,新建類MusicMessage.java
package com.wtz.message.response;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 上午9:58:21
* <p>version:1.0</p>
* <p>description:音樂消息類</p>
*/
public class MusicMessage extends BaseMessage{
//音樂對(duì)象
private Music music;
public Music getMusic() {
return music;
}
public void setMusic(Music music) {
this.music = music;
}
}
第九步:找到com.wtz.message.response包,新建類Article.java
package com.wtz.message.response;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 上午10:05:29
* <p>version:1.0</p>
* <p>description:圖文實(shí)體類</p>
*/
public class Article {
//圖文標(biāo)題
private String Title;
//圖文描述
private String Description;
//圖片鏈接,支持JPG,PNG格式,較好的效果為大圖
private String PicUrl;
//圖文消息跳轉(zhuǎn)鏈接
private String Url;
public String getTitle() {
return Title;
}
public void setTitle(String title) {
Title = title;
}
public String getDescription() {
return Description;
}
public void setDescription(String description) {
Description = description;
}
public String getPicUrl() {
return PicUrl;
}
public void setPicUrl(String picUrl) {
PicUrl = picUrl;
}
public String getUrl() {
return Url;
}
public void setUrl(String url) {
Url = url;
}
}
第十步:找到com.wtz.message.response包,新建類NewsMessage.java
package com.wtz.message.response;
import java.util.List;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 上午10:16:22
* <p>version:1.0</p>
* <p>description:圖文消息類</p>
*/
public class NewsMessage extends BaseMessage{
//圖文條數(shù)
private int ArticleCount;
//多條圖文消息信息,默認(rèn)第一個(gè)item為大圖
private List<Article> Articles;
public int getArticleCount() {
return ArticleCount;
}
public void setArticleCount(int articleCount) {
ArticleCount = articleCount;
}
public List<Article> getArticles() {
return Articles;
}
public void setArticles(List<Article> articles) {
Articles = articles;
}
}
第十一步:新建包c(diǎn)om.wtz.message.request,新建類BaseMessage.java
package com.wtz.message.request;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 上午10:53:23
* <p>version:1.0</p>
* <p>description:請(qǐng)求消息基類(普通用戶->公眾賬號(hào))</p>
* <p>站在服務(wù)器端的視角:接收信息</p>
*/
public class BaseMessage {
//開發(fā)者微信號(hào)
private String ToUserName;
//發(fā)送方賬號(hào)(一個(gè)OpenId)
private String FromUserName;
//消息創(chuàng)建時(shí)間(整型)
private long CreateTime;
//消息類型
private String MsgType;
//消息ID,64位整型
private long MsgId;
public String getToUserName() {
return ToUserName;
}
public void setToUserName(String toUserName) {
ToUserName = toUserName;
}
public String getFromUserName() {
return FromUserName;
}
public void setFromUserName(String fromUserName) {
FromUserName = fromUserName;
}
public long getCreateTime() {
return CreateTime;
}
public void setCreateTime(long createTime) {
CreateTime = createTime;
}
public String getMsgType() {
return MsgType;
}
public void setMsgType(String msgType) {
MsgType = msgType;
}
public long getMsgId() {
return MsgId;
}
public void setMsgId(long msgId) {
MsgId = msgId;
}
}
第十二步:找到com.wtz.message.request包,新建類TextMessage.java
package com.wtz.message.request;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 上午11:04:35
* <p>version:1.0</p>
* <p>description:文本消息</p>
*/
public class TextMessage extends BaseMessage{
//消息內(nèi)容
private String Content;
public String getContent() {
return Content;
}
public void setContent(String content) {
Content = content;
}
}
第十三步:找到com.wtz.message.request包,新建類ImageMessage.java
package com.wtz.message.request;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 上午11:20:50
* <p>version:1.0</p>
* <p>description:圖片消息</p>
*/
public class ImageMessage extends BaseMessage{
//圖片鏈接
private String PicUrl;
//圖片消息媒體ID
private String MediaId;
public String getPicUrl() {
return PicUrl;
}
public void setPicUrl(String picUrl) {
PicUrl = picUrl;
}
public String getMediaId() {
return MediaId;
}
public void setMediaId(String mediaId) {
MediaId = mediaId;
}
}
第十四步:找到com.wtz.message.request包,新建類VoiceMessage.java
package com.wtz.message.request;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 上午11:27:40
* <p>version:1.0</p>
* <p>description:語音消息類</p>
*/
public class VoiceMessage extends BaseMessage {
//媒體ID
private String MediaId;
//語音格式
private String Format;
public String getMediaId() {
return MediaId;
}
public void setMediaId(String mediaId) {
MediaId = mediaId;
}
public String getFormat() {
return Format;
}
public void setFormat(String format) {
Format = format;
}
}
第十五步:找到com.wtz.message.request包,新建類VideoMessage.java
package com.wtz.message.request;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 下午3:28:03
* <p>version:1.0</p>
* <p>description:視頻消息類</p>
*/
public class VideoMessage extends BaseMessage {
//視頻消息媒體ID
private String MediaId;
//視頻消息縮略圖的媒體ID
private String ThumbMediaId;
public String getMediaId() {
return MediaId;
}
public void setMediaId(String mediaId) {
MediaId = mediaId;
}
public String getThumbMediaId() {
return ThumbMediaId;
}
public void setThumbMediaId(String thumbMediaId) {
ThumbMediaId = thumbMediaId;
}
}
第十六步:找到com.wtz.message.request包,新建類LocatonMessage.java
package com.wtz.message.request;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 下午3:27:40
* <p>version:1.0</p>
* <p>description:地理位置消息類</p>
*/
public class LocationMessage extends BaseMessage {
//地理位置緯度
private String Location_X;
//地理位置經(jīng)度
private String Location_Y;
//地圖縮放大小
private String Scale;
//地理位置信息
private String Label;
public String getLocation_X() {
return Location_X;
}
public void setLocation_X(String location_X) {
Location_X = location_X;
}
public String getLocation_Y() {
return Location_Y;
}
public void setLocation_Y(String location_Y) {
Location_Y = location_Y;
}
public String getScale() {
return Scale;
}
public void setScale(String scale) {
Scale = scale;
}
public String getLabel() {
return Label;
}
public void setLabel(String label) {
Label = label;
}
}
第十七步:找到com.wtz.message.request包,新建類LinkMessage.java
package com.wtz.message.request;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 下午1:58:04
* <p>version:1.0</p>
* <p>description:鏈接消息類</p>
*/
public class LinkMessage extends BaseMessage {
//消息標(biāo)題
private String Title;
//消息描述
private String Description;
//消息鏈接
private String Url;
public String getTitle() {
return Title;
}
public void setTitle(String title) {
Title = title;
}
public String getDescription() {
return Description;
}
public void setDescription(String description) {
Description = description;
}
public String getUrl() {
return Url;
}
public void setUrl(String url) {
Url = url;
}
}
第十八步:新建包c(diǎn)om.wtz.message.event,新建類BaseEventMessage.java
package com.wtz.message.event;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 上午10:44:09
* <p>version:1.0</p>
* <p>description:基礎(chǔ)事件消息類</p>
*/
public class BaseEventMessage {
//開發(fā)者微信號(hào)
private String ToUserName;
//發(fā)送方賬號(hào)(一個(gè)OpenID)
private String FromUserName;
//消息創(chuàng)建時(shí)間(整型)
private long CreateTime;
//消息類型
private String MsgType;
//事件類型
private String Event;
public String getToUserName() {
return ToUserName;
}
public void setToUserName(String toUserName) {
ToUserName = toUserName;
}
public String getFromUserName() {
return FromUserName;
}
public void setFromUserName(String fromUserName) {
FromUserName = fromUserName;
}
public long getCreateTime() {
return CreateTime;
}
public void setCreateTime(long createTime) {
CreateTime = createTime;
}
public String getMsgType() {
return MsgType;
}
public void setMsgType(String msgType) {
MsgType = msgType;
}
public String getEvent() {
return Event;
}
public void setEvent(String event) {
Event = event;
}
}
第十九步:找到包c(diǎn)om.wtz.message.event,新建類QRCodeEventMessage.java
package com.wtz.message.event;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 下午3:24:30
* <p>version:1.0</p>
* <p>description:掃描帶參數(shù)二維碼事件類</p>
*/
public class QRCodeEventMessage extends BaseEventMessage{
//事件Key值
private String EventKey;
//用于換取二維碼圖片
private String Ticket;
public String getEventKey() {
return EventKey;
}
public void setEventKey(String eventKey) {
EventKey = eventKey;
}
public String getTicket() {
return Ticket;
}
public void setTicket(String ticket) {
Ticket = ticket;
}
}
第二十步:找到包c(diǎn)om.wtz.message.event,新建類SubscribeEventMessage.java
package com.wtz.message.event;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 下午3:27:11
* <p>version:1.0</p>
* <p>description:關(guān)注/取消關(guān)注事件類</p>
*/
public class SubscribeEventMessage extends BaseEventMessage{
}
第二十一步:找到包c(diǎn)om.wtz.message.event,新建類MenuEventMessage.java
package com.wtz.message.event;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 下午3:32:42
* <p>version:1.0</p>
* <p>description:自定義菜單事件類</p>
*/
public class MenuEventMessage extends BaseEventMessage{
//事件Key值,與自定義菜單接口中Key值對(duì)應(yīng)
private String EventKey;
public String getEventKey() {
return EventKey;
}
public void setEventKey(String eventKey) {
EventKey = eventKey;
}
}
第二十二步:找到包c(diǎn)om.wtz.message.event,新建類LocationEventMessage.java
package com.wtz.message.event;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月20日 下午3:37:50
* <p>version:1.0</p>
* <p>description:上報(bào)地理位置事件類</p>
*/
public class LocationEventMessage extends BaseEventMessage{
//地理位置緯度
private String Latitude;
//地理位置經(jīng)度
private String Longitude;
//地理位置精度
private String Precision;
public String getLatitude() {
return Latitude;
}
public void setLatitude(String latitude) {
Latitude = latitude;
}
public String getLongitude() {
return Longitude;
}
public void setLongitude(String longitude) {
Longitude = longitude;
}
public String getPrecision() {
return Precision;
}
public void setPrecision(String precision) {
Precision = precision;
}
}
第二十三步:找到包c(diǎn)om.wtz.util下的MessageUtil.java類,修改這個(gè)類添加請(qǐng)求和回復(fù)的各種消息類型,事件類型,添加將各種類型消息轉(zhuǎn)換成XML格式的方法
package com.wtz.util;
import java.io.IOException;
import java.io.InputStream;
import java.io.Writer;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.core.util.QuickWriter;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
import com.thoughtworks.xstream.io.xml.PrettyPrintWriter;
import com.thoughtworks.xstream.io.xml.XppDriver;
import com.wtz.message.response.ImageMessage;
import com.wtz.message.response.MusicMessage;
import com.wtz.message.response.NewsMessage;
import com.wtz.message.response.TextMessage;
import com.wtz.message.response.VideoMessage;
import com.wtz.message.response.VoiceMessage;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月19日 下午3:29:58
* <p>version:1.0</p>
* <p>description:消息處理工具類</p>
*/
public class MessageUtil {
//請(qǐng)求消息類型:文本
public static final String REQ_MESSAGE_TYPE_TEXT = "text";
//請(qǐng)求消息類型:圖片
public static final String REQ_MESSAGE_TYPE_IMAGE = "image";
//請(qǐng)求消息類型:語音
public static final String REQ_MESSAGE_TYPE_VOICE = "voice";
//請(qǐng)求消息類型:視頻
public static final String REQ_MESSAGE_TYPE_VIDEO = "video";
//請(qǐng)求消息類型:地理位置
public static final String REQ_MESSAGE_TYPE_LOCATION = "location";
//請(qǐng)求消息類型:鏈接
public static final String REQ_MESSAGE_TYPE_LINK = "link";
//請(qǐng)求消息類型:事件推送
public static final String REQ_MESSAGE_TYPE_EVENT = "event";
//---------------------------------------------------------------
//事件類型:subscribe(訂閱)
public static final String EVENT_TYPE_SUBSCRIBE = "subscribe";
//事件類型:unsubscribe(取消訂閱)
public static final String EVENT_TYPE_UNSUBSCRIBE = "unsubscribe";
//事件類型:scan(用戶已關(guān)注時(shí)的掃描帶參數(shù)的二維碼)
public static final String EVENT_TYPE_SCAN = "scan";
//事件類型:LOCATION(上報(bào)地理位置)
public static final String EVENT_TYPE_LOCATION = "LOCATION";
//事件類型:CLICK(自定義菜單)
public static final String EVENT_TYPE_CLICK = "CLICK";
//---------------------------------------------------------------
//響應(yīng)消息類型:文本
public static final String RESP_MESSAGE_TYPE_TEXT = "text";
//響應(yīng)詳細(xì)類型:圖片
public static final String RESP_MESSAGE_TYPE_IMAGE = "image";
//響應(yīng)消息類型:語音
public static final String RESP_MESSAGE_TYPE_VOICE = "voice";
//響應(yīng)消息類型:視頻
public static final String RESP_MESSAGE_TYPE_VIDEO = "video";
//響應(yīng)詳細(xì)類型:音樂
public static final String RESP_MESSAGE_TYPE_MUSIC = "music";
//響應(yīng)消息類型:圖文
public static final String RESP_MESSAGE_TYPE_NEWS = "news";
//---------------------------------------------------------------
//從流中解析出每個(gè)節(jié)點(diǎn)的內(nèi)容
public static Map<String,String> parseXml(HttpServletRequest request) throws IOException{
Map<String,String> map = new HashMap<String,String>();
//從輸入流中獲取流對(duì)象
InputStream in = request.getInputStream();
//構(gòu)建SAX閱讀器對(duì)象
SAXReader reader = new SAXReader();
try {
//從流中獲得文檔對(duì)象
Document doc = reader.read(in);
//獲得根節(jié)點(diǎn)
Element root = doc.getRootElement();
//獲取根節(jié)點(diǎn)下的所有子節(jié)點(diǎn)
List<Element> children = root.elements();
for(Element e:children){
//遍歷每一個(gè)節(jié)點(diǎn),并按照節(jié)點(diǎn)名--節(jié)點(diǎn)值放入map中
map.put(e.getName(), e.getText());
System.out.println("用戶發(fā)送的消息XML解析為:" + e.getName() + e.getText());
}
//關(guān)閉流
in.close();
in = null;
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return map;
}
/**
* 用于擴(kuò)展節(jié)點(diǎn)數(shù)據(jù)按照<ToUserName><![CDATA[toUser]]></ToUserName>,中間加了CDATA段
*/
private static XStream xstream = new XStream(new XppDriver(){
public HierarchicalStreamWriter createWriter(Writer out){
return new PrettyPrintWriter(out){
boolean cdata = true;
public void startNode(String name,Class clazz){
super.startNode(name,clazz);
}
protected void writeText(QuickWriter writer,String text){
if(cdata){
writer.write("<![CDATA[");
writer.write(text);
writer.write("]]>");
}else{
writer.write(text);
}
}
};
}
});
/**
* 將文本消息對(duì)象轉(zhuǎn)換成XML格式
* params:textMessage 文本消息對(duì)象
* return:xml
*/
public static String messageToXml(TextMessage textMessage){
xstream.alias("xml",textMessage.getClass());
return xstream.toXML(textMessage);
}
/**
* 將圖片消息對(duì)象轉(zhuǎn)換成XML格式
* params:imageMessage
* return:xml
*/
public static String messageToXml(ImageMessage imageMessage){
xstream.alias("xml", imageMessage.getClass());
return xstream.toXML(imageMessage);
}
/**
* 將語音消息對(duì)象轉(zhuǎn)換成XML格式
* params:voiceMessage
* return:xml
*/
public static String messageToXml(VoiceMessage voiceMessage){
xstream.alias("xml",voiceMessage.getClass());
return xstream.toXML(voiceMessage);
}
/**
* 將視頻消息對(duì)象轉(zhuǎn)換成XML格式
* params:videoMessage
* return:xml
*/
public static String messageToXml(VideoMessage videoMessage){
xstream.alias("xml",videoMessage.getClass());
return xstream.toXML(videoMessage);
}
/**
* 將音樂消息對(duì)象轉(zhuǎn)換成XML格式
* params:musicMessage
* return:xml
*/
public static String messageToXml(MusicMessage musicMessage){
xstream.alias("xml",musicMessage.getClass());
return xstream.toXML(musicMessage);
}
/**
* 將圖文消息對(duì)象轉(zhuǎn)換成XML格式
* params:newsMessage
* return:xml
*/
public static String messageToXml(NewsMessage newsMessage){
xstream.alias("xml",newsMessage.getClass());
return xstream.toXML(newsMessage);
}
}
第二十四步:找到包c(diǎn)om.wtz.util下的ProcessService.java類,修改dealRequest方法響應(yīng)各種類型的消息
package com.wtz.util;
import java.io.IOException;
import java.util.Date;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import com.wtz.message.response.TextMessage;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月19日 下午8:04:14
* <p>version:1.0</p>
* <p>description:核心服務(wù)類</p>
*/
public class ProcessService {
public static String dealRequest(HttpServletRequest request){
//XML格式的消息數(shù)據(jù)
String respXml = "";
//默認(rèn)返回的文本消息內(nèi)容
String respContent = "未知的消息類型";
//調(diào)用parseXml方法解析請(qǐng)求消息
Map<String, String> requestMap;
try {
requestMap = MessageUtil.parseXml(request);
//發(fā)送方賬號(hào)
String fromUserName = requestMap.get("FromUserName");
//開發(fā)者微信號(hào)
String toUserName = requestMap.get("ToUserName");
//消息類型
String MsgType = requestMap.get("MsgType");
//回復(fù)文本消息
TextMessage textMessage = new TextMessage();
textMessage.setToUserName(fromUserName);
textMessage.setFromUserName(toUserName);
textMessage.setCreateTime(new Date().getTime());
textMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);
if(MsgType.equals(MessageUtil.REQ_MESSAGE_TYPE_TEXT)){
respContent = "您發(fā)送的是文本消息";
}else if(MsgType.equals(MessageUtil.REQ_MESSAGE_TYPE_IMAGE)){
respContent = "您發(fā)送的是圖片消息";
}else if(MsgType.equals(MessageUtil.REQ_MESSAGE_TYPE_VOICE)){
respContent = "您發(fā)送的是語音消息";
}else if(MsgType.equals(MessageUtil.REQ_MESSAGE_TYPE_VIDEO)){
respContent = "您發(fā)送的是視頻消息";
}else if(MsgType.equals(MessageUtil.REQ_MESSAGE_TYPE_LOCATION)){
respContent = "您發(fā)送的是地理位置消息";
}else if(MsgType.equals(MessageUtil.REQ_MESSAGE_TYPE_LINK)){
respContent = "您發(fā)送的是鏈接消息";
}else if(MsgType.equals(MessageUtil.REQ_MESSAGE_TYPE_EVENT)){
//事件類型
String eventType = requestMap.get("Event");
if(eventType.equals(MessageUtil.EVENT_TYPE_SUBSCRIBE)){
respContent = "感謝您的關(guān)注";
}else if(eventType.equals(MessageUtil.EVENT_TYPE_UNSUBSCRIBE)){
//TODO 取消訂閱后用戶不會(huì)再收到公眾號(hào)發(fā)送的消息,因此不需要回復(fù)
}else if(eventType.equals(MessageUtil.EVENT_TYPE_SCAN)){
//TODO 處理掃描帶參數(shù)二維碼事件
}else if(eventType.equals(MessageUtil.EVENT_TYPE_LOCATION)){
//TODO 處理上報(bào)地理位置事件
}else if(eventType.equals(MessageUtil.EVENT_TYPE_CLICK)){
//TODO 處理菜單點(diǎn)擊事件
}
}
//設(shè)置文本消息的內(nèi)容
textMessage.setContent(respContent);
//將文本消息對(duì)象轉(zhuǎn)換成xml
respXml = MessageUtil.messageToXml(textMessage);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return respXml;
}
}
各種類型消息封裝完成。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot啟動(dòng)時(shí)自動(dòng)執(zhí)行sql腳本的方法步驟
本文主要介紹了SpringBoot啟動(dòng)時(shí)自動(dòng)執(zhí)行sql腳本的方法步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
高并發(fā)環(huán)境下安全修改同一行數(shù)據(jù)庫數(shù)據(jù)的策略分享
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,越來越多的應(yīng)用需要在高并發(fā)環(huán)境中運(yùn)行,數(shù)據(jù)庫的并發(fā)控制成為了業(yè)務(wù)的關(guān)鍵,本文將介紹如何在高并發(fā)情況下,安全地修改數(shù)據(jù)庫中的同一行數(shù)據(jù),需要的可以參考一下2023-06-06
JVM類運(yùn)行機(jī)制實(shí)現(xiàn)原理解析
這篇文章主要介紹了JVM類運(yùn)行機(jī)制實(shí)現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12

