注:我的培训老师:柳峰,在此感谢柳老师!他的个人博客: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