注:我的培训老师:柳峰,在此感谢柳老师!他的个人博客:http://blog.csdn.net/lyq8479
用户发送的消息包括:
(参照官方微信公众开发平台:http://mp.weixin.qq.com/wiki/)
1 文本消息,包括:
ToUserName---开发者微信号
FromUserName---发送方帐号(一个OpenID)
CreateTime---消息创建时间 (整型)
MsgType---text
Content---文本消息内容
MsgId---消息id,64位整型
2 图片消息,包括:
ToUserName 开发者微信号
FromUserName 发送方帐号(一个OpenID)
CreateTime 消息创建时间 (整型)
MsgType image
PicUrl 图片链接
MediaId 图片消息媒体id,可以调用多媒体文件下载接口拉取数据。
MsgId 消息id,64位整型
3 语音消息,包括:
ToUserName 开发者微信号
FromUserName 发送方帐号(一个OpenID)
CreateTime 消息创建时间 (整型)
MsgType 语音为voice
MediaId 语音消息媒体id,可以调用多媒体文件下载接口拉取数据。
Format 语音格式,如amr,speex等
MsgID 消息id,64位整型
4 视频消息,包括:
ToUserName 开发者微信号
FromUserName 发送方帐号(一个OpenID)
CreateTime 消息创建时间 (整型)
MsgType 视频为video
MediaId 视频消息媒体id,可以调用多媒体文件下载接口拉取数据。
ThumbMediaId 视频消息缩略图的媒体id,可以调用多媒体文件下载接口拉取数据。
MsgId 消息id,64位整型
5 小视频消息,包括:
ToUserName 开发者微信号
FromUserName 发送方帐号(一个OpenID)
CreateTime 消息创建时间 (整型)
MsgType 小视频为shortvideo
MediaId 视频消息媒体id,可以调用多媒体文件下载接口拉取数据。
ThumbMediaId 视频消息缩略图的媒体id,可以调用多媒体文件下载接口拉取数据。
MsgId 消息id,64位整型
6 地理位置消息,包括:
ToUserName 开发者微信号
FromUserName 发送方帐号(一个OpenID)
CreateTime 消息创建时间 (整型)
MsgType location
Location_X 地理位置维度
Location_Y 地理位置经度
Scale 地图缩放大小
Label 地理位置信息
MsgId 消息id,64位整型
7 链接消息,包括:
ToUserName 接收方微信号
FromUserName 发送方微信号,若为普通用户,则是一个OpenID
CreateTime 消息创建时间
MsgType 消息类型,link
Title 消息标题
Description 消息描述
Url 消息链接
MsgId 消息id,64位整型
新建包com.cc.wechat.message,在里面写好对应的类,为了方便测试,具体定义的类与上面的内容会有所差别。
1.从上面内容看出,所有的消息都包括:ToUserName,FromUserName,CreateTime,MsgType,MsgId,所以把相同的变量封装成一个类 :
---CommonMessage:
package com.cc.wechat.message;
/**
* 所处理的内容都相同的部分,包括
* ToUserName 接收方微信号
* FromUserName 发送方微信号,若为普通用户,则是一个OpenID
* CreateTime 消息创建时间
* MsgType 消息类型
* MsgId 消息id 64位整型
* @author ICHN
*
*/
public class CommonMessage {
//接收方微信号名称
private String ToUserName;
//发送方微信号名称
private String FromUserName;
//消息创建时间
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;
}
}2.文本消息:
---TextMessage:
package com.cc.wechat.message;
/**
* 文本消息
* @author ICHN
*
*/
public class TextMeaasge extends CommonMessage {
//Content 文本消息内容
private String Content;
public String getContent() {
return Content;
}
public void setContent(String content) {
Content = content;
}
}3.图文消息(包括Article 和 NewsMessage两部分):
注:图片和视频消息合并写在一起。
---Article:
package com.cc.wechat.message;
/**
* 图文消息
* @author ICHN
*
*/
public class Article {
//图文标题
private String Title;
//相关描述
private String Description;
//图片链接
private String PicUrl;
//图文跳转地址
private String Url;
public String getTitle() {
return Title;
}
public void setTitle(String title) {
Title = title;
}
public String getDescription() {
//如果没有描述内容
if(Description == null) {
return "";
}
return Description;
}
public void setDescription(String description) {
Description = description;
}
public String getPicUrl() {
//如果没有链接
if(null == PicUrl) {
return "";
}
return PicUrl;
}
public void setPicUrl(String picUrl) {
PicUrl = picUrl;
}
public String getUrl() {
//如果没有链接
if(null == Url) {
return "";
}
return Url;
}
public void setUrl(String url) {
Url = url;
}
}---NewsMessgae:
package com.cc.wechat.message;
import java.util.List;
/**
* 图文消息
* @author ICHN
*
*/
public class NewsMessage extends CommonMessage {
//统计图文的条数
private int ArticleCount;
//用一个List来装多条图文消息
private List<Article> Artilces;
public int getArticleCount() {
return ArticleCount;
}
public void setArticleCount(int articleCount) {
ArticleCount = articleCount;
}
public List<Article> getArtilces() {
return Artilces;
}
public void setArtilces(List<Article> artilces) {
Artilces = artilces;
}
}4.语音消息(包括Voice和 VoiceMessage两部分):
---Voice:
package com.cc.wechat.message;
/**
* 语音消息
* @author ICHN
*
*/
public class Voice extends CommonMessage{
//MediaId 图片消息媒体id,可以调用多媒体文件下载接口拉取数据
private String MediaId;
public String getMediaId() {
return MediaId;
}
public void setMediaId(String mediaId) {
MediaId = mediaId;
}
}---VoiceMessage:
package com.cc.wechat.message;
/**
* 语音消息管理
* @author ICHN
*
*/
public class VoiceMessage extends CommonMessage {
//Voice类
private Voice voice;
public Voice getVoice() {
return voice;
}
public void setVoice(Voice voice) {
this.voice = voice;
}
}5.音乐消息(包括Music和 MusicMessage两部分):
---Music:
package com.cc.wechat.message;
/**
* 音乐信息
* @author ICHN
*
*/
public class Music {
//音乐标题
private String Title;
//描述
private String Description;
//音乐链接
private String MusicUrl;
//wifi下优先音乐链接(高品质)
private String HQMusicUrl;
public String getTitle() {
return Title;
}
public void setTitle(String title) {
Title = title;
}
public String getDescription() {
//如果没有描述
if(null == Description) {
return "";
}
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 musicUrl) {
HQMusicUrl = musicUrl;
}
}---MusicMessage:
package com.cc.wechat.message;
/**
* 音乐信息管理
* @author ICHN
*
*/
public class MusicMessage extends CommonMessage {
//音乐类封装
private Music Music;
public Music getMusic() {
return Music;
}
public void setMusic(Music music) {
Music = music;
}
}相关类基本建好(如果需要再另行增添)。
具体处理流程接下一篇文章: 微信公众平台开发之处理普通消息---2
本文出自 “顽强的石头” 博客,请务必保留此出处http://chn0515.blog.51cto.com/10646281/1688156
原文:http://chn0515.blog.51cto.com/10646281/1688156