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