微信普通消息类型

接收普通消息

当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上。

具体有以下类型的消息类型

  • 文本消息
  • 图片消息
  • 语音消息
  • 视频消息
  • 小视频消息
  • 地理位置消息
  • 链接消息

下面简单介绍各种消息包含数据字段和数据实体封装

文本消息

<xml>
<ToUserName><![CDATA[gh_47bd9550a0a1]]></ToUserName>
<FromUserName><![CDATA[oFTYt0l9wQDDhwmx1js_d1T6zZkw]]></FromUserName>
<CreateTime>1530689641</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[文本消息]]></Content>
<MsgId>6574261948839470964</MsgId>
</xml>
参数描述
ToUserName开发者微信号
FromUserName发送方帐号(一个OpenID)
CreateTime消息创建时间 (整型)
MsgTypetext
Content文本消息内容
MsgId消息id,64位整型
public class TextData extends WeixinData {
    private String Content;      //文本消息内容
    private String MsgId;        //消息id,64位整型

    public TextData(){}

    public TextData(String toUserName, String fromUserName, String content) {
        super(toUserName, fromUserName, "text");
        Content = content;
    }

    public String getContent() {
        return Content;
    }

    public void setContent(String content) {
        Content = content;
    }

    public String getMsgId() {
        return MsgId;
    }

    public void setMsgId(String msgId) {
        MsgId = msgId;
    }
}

图片消息

<xml>
<ToUserName><![CDATA[gh_47bd9550a0a1]]></ToUserName>
<FromUserName><![CDATA[oFTYt0l9wQDDhwmx1js_d1T6zZkw]]></FromUserName>
<CreateTime>1530689943</CreateTime>
<MsgType><![CDATA[image]]></MsgType>
<PicUrl><![CDATA[http://mmbiz.qpic.cn/mmbiz_jpg/T85yfKllsbIWj3WwiaaDGkysmbNYo80JtffEwIvKj3dkDfm2NfuqZJ34wJNKdYwn7wQ5V9g5JHv5mCe9jqEvtcA/0]]></PicUrl>
<MsgId>6574263245919594391</MsgId>
<MediaId><![CDATA[SRazYKH_aw5nACnUdjwexDcc9WmPAuJVV8_u6Fa5-79WzpiQtoScKljpG8musls2]]></MediaId>
</xml>

参数描述
ToUserName开发者微信号
FromUserName发送方帐号(一个OpenID)
CreateTime消息创建时间 (整型)
MsgTypeimage
PicUrl图片链接(由系统生成)
MediaId图片消息媒体id,可以调用多媒体文件下载接口拉取数据。
MsgId消息id,64位整型
public class ReceivedImageData extends WeixinData {
    private String PicUrl;        //图片链接(由系统生成)
    private String MediaId;       //图片消息媒体id,可以调用多媒体文件下载接口拉取数据。
    private String MsgId;         //消息id,64位整型

    public ReceivedImageData(String toUserName, String fromUserName){
        super(toUserName, fromUserName, "image");
    }

    public String getPicUrl() {
        return PicUrl;
    }

    public void setPicUrl(String picUrl) {
        PicUrl = picUrl;
    }

    public String getMediaId() {
        return MediaId;
    }

    public void setMediaId(String mediaId) {
        MediaId = mediaId;
    }

    public String getMsgId() {
        return MsgId;
    }

    public void setMsgId(String msgId) {
        MsgId = msgId;
    }
}

语音消息

<xml>
<ToUserName><![CDATA[gh_47bd9550a0a1]]></ToUserName>
<FromUserName><![CDATA[oFTYt0l9wQDDhwmx1js_d1T6zZkw]]></FromUserName>
<CreateTime>1530689999</CreateTime>
<MsgType><![CDATA[voice]]></MsgType>
<MediaId><![CDATA[e2D0kI4d9xvcJMT2TDbg3e-W3muya6eKG_lje_gw9-3dkqCIO6-bZ-DgDEK8SLwK]]></MediaId>
<Format><![CDATA[amr]]></Format>
<MsgId>6574263486437762981</MsgId>
<Recognition><![CDATA[]]></Recognition>
</xml>

参数描述
ToUserName开发者微信号
FromUserName发送方帐号(一个OpenID)
CreateTime消息创建时间 (整型)
MsgType语音为voice
MediaId语音消息媒体id,可以调用多媒体文件下载接口拉取数据。
Format语音格式,如amr,speex等
MsgID消息id,64位整数

public class ReceivedVoiceData extends WeixinData {
    private String MediaId;//语音消息媒体id,可以调用多媒体文件下载接口拉取数据。
    private String Format;//语音格式,如amr,speex等
    private String MsgID;//消息id,64位整型

    public ReceivedVoiceData(String toUserName, String fromUserName){
        super(toUserName, fromUserName, "voice");
    }

    public String getMediaId() {
        return MediaId;
    }

    public void setMediaId(String mediaId) {
        MediaId = mediaId;
    }

    public String getFormat() {
        return Format;
    }

    public void setFormat(String format) {
        Format = format;
    }

    public String getMsgID() {
        return MsgID;
    }

    public void setMsgID(String msgID) {
        MsgID = msgID;
    }
}
视频消息
<xml>
<ToUserName><![CDATA[gh_47bd9550a0a1]]></ToUserName>
<FromUserName><![CDATA[oFTYt0l9wQDDhwmx1js_d1T6zZkw]]></FromUserName>
<CreateTime>1530690073</CreateTime>
<MsgType><![CDATA[video]]></MsgType>
<MediaId><![CDATA[g-ycQ1lYkP4VFmsnlI9g4R_RKhljGLUVR40EdReW0wyf45KxJEbvv8AiMr5JxTSd]]></MediaId>
<ThumbMediaId><![CDATA[riUl68vupZ9q0LEyG-ltqPcS-AXhd9hlcsGayGixxd6-OWkCkxJKOihrqkAVRaYX]]></ThumbMediaId>
<MsgId>6574263804265342892</MsgId>
</xml>

参数描述
ToUserName开发者微信号
FromUserName发送方帐号(一个OpenID)
CreateTime消息创建时间 (整型)
MsgType视频为video
MediaId视频消息媒体id,可以调用多媒体文件下载接口拉取数据。
ThumbMediaId视频消息缩略图的媒体id,可以调用多媒体文件下载接口拉取数据。
MsgId消息id,64位整型
public class ReceivedVideoData extends WeixinData {
    private String MediaId;          //视频消息媒体id,可以调用多媒体文件下载接口拉取数据。
    private String ThumbMediaId;     //视频消息缩略图的媒体id,可以调用多媒体文件下载接口拉取数据。
    private String MsgId;            //消息id,64位整型
    
    public ReceivedVideoData(String toUserName, String fromUserName){
        super(toUserName, fromUserName, "video");
    }

    public String getMediaId() {
        return MediaId;
    }

    public void setMediaId(String mediaId) {
        MediaId = mediaId;
    }

    public String getThumbMediaId() {
        return ThumbMediaId;
    }

    public void setThumbMediaId(String thumbMediaId) {
        ThumbMediaId = thumbMediaId;
    }

    public String getMsgId() {
        return MsgId;
    }

    public void setMsgId(String msgId) {
        MsgId = msgId;
    }
}

小视频消息

<xml>
<ToUserName>< ![CDATA[toUser] ]></ToUserName>
<FromUserName>< ![CDATA[fromUser] ]></FromUserName>
<CreateTime>1357290913</CreateTime>
<MsgType>< ![CDATA[shortvideo] ]></MsgType>
<MediaId>< ![CDATA[media_id] ]></MediaId>
<ThumbMediaId>< ![CDATA[thumb_media_id] ]></ThumbMediaId>
<MsgId>1234567890123456</MsgId>
</xml>
参数描述
ToUserName开发者微信号
FromUserName发送方帐号(一个OpenID)
CreateTime消息创建时间 (整型)
MsgType小视频为shortvideo
MediaId视频消息媒体id,可以调用多媒体文件下载接口拉取数据。
ThumbMediaId视频消息缩略图的媒体id,可以调用多媒体文件下载接口拉取数据。
MsgId消息id,64位整型

地理位置消息

<xml>
<ToUserName><![CDATA[gh_47bd9550a0a1]]></ToUserName>
<FromUserName><![CDATA[oFTYt0l9wQDDhwmx1js_d1T6zZkw]]></FromUserName>
<CreateTime>1530690166</CreateTime>
<MsgType><![CDATA[location]]></MsgType>
<Location_X>40.054329</Location_X>
<Location_Y>116.303307</Location_Y>
<Scale>16</Scale>
<Label><![CDATA[北京市海淀区西二旗]]></Label>
<MsgId>6574264203697301436</MsgId>
</xml>

参数描述
ToUserName开发者微信号
FromUserName发送方帐号(一个OpenID)
CreateTime消息创建时间 (整型)
MsgTypelocation
Location_X地理位置维度
Location_Y地理位置经度
Scale地图缩放大小
Label地理位置信息
MsgId消息id,64位整型
public class ReceivedLocationData extends WeixinData {
    private String Location_X;       //	地理位置维度
    private String Location_Y;       //	地理位置经度
    private String Scale;            //	地图缩放大小
    private String Label;            //	地理位置信息
    private String MsgId;            //	消息id,64位整型
    
    public ReceivedLocationData(String toUserName, String fromUserName){
        super(toUserName, fromUserName, "location");
    }

    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;
    }

    public String getMsgId() {
        return MsgId;
    }

    public void setMsgId(String msgId) {
        MsgId = msgId;
    }
}

链接消息

<xml>
<ToUserName>< ![CDATA[toUser] ]></ToUserName>
<FromUserName>< ![CDATA[fromUser] ]></FromUserName>
<CreateTime>1351776360</CreateTime>
<MsgType>< ![CDATA[link] ]></MsgType>
<Title>< ![CDATA[公众平台官网链接] ]></Title>
<Description>< ![CDATA[公众平台官网链接] ]></Description>
<Url>< ![CDATA[url] ]></Url>
<MsgId>1234567890123456</MsgId>
</xml>

参数描述
ToUserName接收方微信号
FromUserName发送方微信号,若为普通用户,则是一个OpenID
CreateTime消息创建时间
MsgType消息类型,link
Title消息标题
Description消息描述
Url消息链接
MsgId消息id,64位整型
public class ReceivedLinkData extends WeixinData {
    private String Title;            //	消息标题
    private String Description;      //	消息描述
    private String Url;              //	消息链接
    private String MsgId;            //	消息id,64位整型

    public ReceivedLinkData(String toUserName, String fromUserName){
        super(toUserName, fromUserName, "link");
    }

    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;
    }

    public String getMsgId() {
        return MsgId;
    }

    public void setMsgId(String msgId) {
        MsgId = msgId;
    }
}

将普通消息中公有的数据抽取出来封装成底层的基类WeixinData

public class WeixinData {

    private String ToUserName;        //开发者微信号
    private String FromUserName;      //发送方帐号(一个OpenID)
    private Long CreateTime;          //消息创建时间 (整型)
    private String MsgType;           //消息类型,event,text,image

    public WeixinData() {
    }

    public WeixinData(String toUserName, String fromUserName, String msgType) {
        ToUserName = toUserName;
        FromUserName = fromUserName;
        MsgType = msgType;
        this.CreateTime = System.currentTimeMillis();
    }

    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;
    }
}

微信官方文档 :https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140453

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值