微信公众平台开发之处理普通消息---1

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


你可能感兴趣的:(消息接收,消息管理,消息回复,微信开发平台)