dapengniao 通过本文主要向大家介绍了java微信公众平台开发,java微信公众平台,实体店微信公众平台,微信公众平台群发消息,微信公众平台发消息等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
前面一篇有说道应用服务器和腾讯服务器是通过消息进行通讯的,并简单介绍了微信端post的消息类型,这里我们将建立消息实体以方便我们后面的使用!
(一)消息实体基础类
package com.cuiyongzhi.wechat.message.req;
/**
* ClassName: BaseMessage
* @Description: 微信请求消息基本类
* @author dapengniao
* @date 2016年3月7日 下午3:03:59
*/
public class BaseMessage {
// 开发者微信号
private String ToUserName;
// 发送方帐号(一个OpenID)
private String FromUserName;
// 消息创建时间 (整型)
private long CreateTime;
// 消息类型(text/image/location/link/video/shortvideo)
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;
}
}
</div>
(二)普通消息pojo实体
①图片消息
package com.cuiyongzhi.wechat.message.req;
/**
* ClassName: ImageMessage
* @Description: 图片消息
* @author dapengniao
* @date 2016年3月7日 下午3:04:52
*/
public class ImageMessage extends BaseMessage {
// 图片链接
private String PicUrl;
public String getPicUrl() {
return PicUrl;
}
public void setPicUrl(String picUrl) {
PicUrl = picUrl;
}
}
</div>
②连接消息
package com.cuiyongzhi.wechat.message.req;
/**
* ClassName: LinkMessage
* @Description: 连接消息
* @author dapengniao
* @date 2016年3月7日 下午3:05:48
*/
public class LinkMessage extends BaseMessage {
// 消息标题
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;
}
}
</div>
③地理位置消息
package com.cuiyongzhi.wechat.message.req;
/**
* ClassName: LocationMessage
* @Description: 地理位置消息
* @author dapengniao
* @date 2016年3月7日 下午3:06:10
*/
public class LocationMessage extends BaseMessage {
// 地理位置维度
private String Location_X;
// 地理位置经度
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;
}
}
</div>
④文本消息
package com.cuiyongzhi.wechat.message.req;
/**
* ClassName: TextMessage
* @Description: 文本消息
* @author dapengniao
* @date 2016年3月7日 下午3:06:40
*/
public class TextMessage extends BaseMessage {
// 消息内容
private String Content;
public String getContent() {
return Content;
}
public void setContent(String content) {
Content = content;
}
}
</div>
⑤视频/小视屏消息
package com.cuiyongzhi.wechat.message.req;
/**
* ClassName: VideoMessage
* @Description: 视频/小视屏消息
* @author dapengniao
* @date 2016年3月7日 下午3:12:51
*/
public class VideoMessage extends BaseMessage {
private String MediaId; // 视频消息媒体id,可以调用多媒体文件下载接口拉取数据
private String ThumbMediaId; // 视频消息缩略图的媒体id,可以调用多媒体文件下载接口拉取数据
public String getMediaId() {
return MediaId;
}
public void setMediaId(String mediaId) {
MediaId = mediaId;
}
public String getThumbMediaId() {
return ThumbMediaId;
}
public void setThumbMediaId(String thumbMediaId) {
ThumbMediaId = thumbMediaId;
}
}
</div>
⑥语音消息
package com.cuiyongzhi.wechat.message.req;
/**
* ClassName: VoiceMessage
* @Description: 语音消息
* @author dapengniao
* @date 2016年3月7日 下午3:07:10
*/
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;
}
}
</div>
(三)消息分类处理
按照上面收到想消息类别分别做不同的分发处理,这里我们建立了自己的业务分发器(EventDispatcher、MsgDispatcher),分别做普通消息处理和事件消息处理!
①MsgDispatcher.java——用于普通消息的业务分发处理
package com.cuiyongzhi.wechat.dispatcher;
import java.util.Map;
import com.cuiyongzhi.wechat.util.MessageUtil;
/**
* ClassName: MsgDispatcher
* @Description: 消息业务处理分发器
* @author dapengniao
* @date 2016年3月7日 下午4:04:21
*/
public class MsgDispatcher {
public static String processMessage(Map<String, String> map) {
if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_TEXT)) { // 文本消息
System.out.println("==============这是文本消息!");
}
if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_IMAGE)) { // 图片消息
System.out.println("==============这是图片消息!");
}
if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_LINK)) { // 链接消息
System.out.println("==============这是链接消息!");
}
if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_LOCATION)) { // 位置消息
System.out.println("==============这是位置消息!");
}
if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_VIDEO)) { // 视频消息
System.out.println("==============这是视频消息!");
}
if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_VOICE)) { // 语音消息
System.out.println("==============这是语音消息!");
}
return null;
}
}
</div>
②EventDispatcher.java——事件消息的业务分发处理
package com.cuiyongzhi.wechat.dispatcher;
import java.util.Map;
import com.cuiyongzhi.wechat.util.MessageUtil;
/**
* ClassName: EventDispatcher
* @Description: 事件消息业务分发器
* @author dapengniao
* @date 2016年3月7日 下午4:04:41
*/
public class EventDispatcher {
public static String processEvent(Map<String, String> map) {
if (map.get("Event").equals(Messa

