转自:http://www.cuiyongzhi.com/post/42.html

前面有说道对接收到微信服务器消息后对消息的分类,当时主要分为普通消息和事件消息,这里我们要讲述的是我们在给用户回复的消息类型,在这里也可以大致分为两类:一种为不需要上传资源到微信服务器的这里成为【普通消息回复】;还有一种需要上传资源到微信服务器的这里称为【多媒体消息回复】!

  • 普通消息回复:回复文本消息/回复图文消息

  • 多媒体消息回复:回复图片消息/回复语音消息/回复视频消息/回复音乐消息

(一)回复消息基类的实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package com.cuiyongzhi.wechat.message.resp;
 
/**
 * ClassName: BaseMessage
 * @Description: 返回消息体-基本消息
 * @author dapengniao
 * @date 2016年3月7日 下午3:16:57
 */
public class BaseMessage {  
    // 接收方帐号(收到的OpenID)   
    private String ToUserName;  
    // 开发者微信号   
    private String FromUserName;  
    // 消息创建时间 (整型)   
    private long CreateTime;  
    // 消息类型(text/music/news)   
    private String MsgType;  
      
   
    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;  
    }  
   
   
}

(二)普通消息回复实体实现

①文本消息消息体

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.cuiyongzhi.wechat.message.resp;
 
/**
 * ClassName: TextMessage
 * @Description: 文本消息消息体
 * @author dapengniao
 * @date 2016年3月7日 下午3:54:22
 */
public class TextMessage extends BaseMessage {  
    // 回复的消息内容   
    private String Content;  
   
    public String getContent() {  
        return Content;  
    }  
   
    public void setContent(String content) {  
        Content = content;  
    }  
}

②图文/多图文消息实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package com.cuiyongzhi.wechat.message.resp;
 
/**
 * ClassName: Article
 * @Description: 图文消息体
 * @author dapengniao
 * @date 2016年3月7日 下午3:16:28
 */
public class Article {  
    // 图文消息名称   
    private String Title;  
    // 图文消息描述   
    private String Description;  
    // 图片链接,支持JPG、PNG格式,较好的效果为大图640*320,小图80*80,
    private String PicUrl;  
    // 点击图文消息跳转链接   
    private String Url;  
   
    public String getTitle() {  
        return Title;  
    }  
   
    public void setTitle(String title) {  
        Title = title;  
    }  
   
    public String getDescription() {  
        return null == Description ? "" : Description;  
    }  
   
    public void setDescription(String description) {  
        Description = description;  
    }  
   
    public String getPicUrl() {  
        return null == PicUrl ? "" : PicUrl;  
    }  
   
    public void setPicUrl(String picUrl) {  
        PicUrl = picUrl;  
    }  
   
    public String getUrl() {  
        return null == Url ? "" : Url;  
    }  
   
    public void setUrl(String url) {  
        Url = url;  
    }  
   
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package com.cuiyongzhi.wechat.message.resp;
 
import java.util.List;
 
/**
 * ClassName: NewsMessage
 * @Description: 多图文消息
 * @author dapengniao
 * @date 2016年3月7日 下午3:52:18
 */
public class NewsMessage extends BaseMessage {  
    // 图文消息个数,限制为10条以内   
    private int ArticleCount;  
    // 多条图文消息信息,默认第一个item为大图   
    private List<Article> Articles;  
   
    public int getArticleCount() {  
        return ArticleCount;  
    }  
   
    public void setArticleCount(int articleCount) {  
        ArticleCount = articleCount;  
    }  
   
    public List<Article> getArticles() {  
        return Articles;  
    }  
   
    public void setArticles(List<Article> articles) {  
        Articles = articles;  
    }  
}

(三)多媒体消息回复消息体实现

①回复图片消息实体

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.cuiyongzhi.wechat.message.resp;
 
/**
 * ClassName: Image
 * @Description: 图片回复消息体
 * @author dapengniao
 * @date 2016年3月8日 下午5:55:18
 */
public class Image {
 
    private String MediaId;
 
    public String getMediaId() {
        return MediaId;
    }
 
    public void setMediaId(String mediaId) {
        MediaId = mediaId;
    }
     
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.cuiyongzhi.wechat.message.resp;
 
/**
 * ClassName: ImageMessage
 * @Description: 图片消息
 * @author dapengniao
 * @date 2016年3月8日 下午5:58:10
 */
public class ImageMessage {
     
    private Image Image;
 
    public Image getImage() {
        return Image;
    }
 
    public void setImage(Image image) {
        Image = image;
    }
     
 
}

②回复音乐消息实体

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package com.cuiyongzhi.wechat.message.resp;
 
/**
 * ClassName: Music
 * @Description: 音乐消息消息体
 * @author dapengniao
 * @date 2016年3月7日 下午3:54:00
 */
public class Music {  
    // 音乐名称   
    private String Title;  
    // 音乐描述   
    private String Description;  
    // 音乐链接   
    private String MusicUrl;  
    // 高质量音乐链接,WIFI环境优先使用该链接播放音乐   
    private String HQMusicUrl;
     
    private String ThumbMediaId; //缩略图的媒体id
   
    public String getThumbMediaId() {
        return ThumbMediaId;
    }
 
    public void setThumbMediaId(String thumbMediaId) {
        ThumbMediaId = thumbMediaId;
    }
 
    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 getMusicUrl() {  
        return MusicUrl;  
    }  
   
    public void setMusicUrl(String musicUrl) {  
        MusicUrl = musicUrl;  
    }  
   
    public String getHQMusicUrl() {  
        return HQMusicUrl;  
    }  
   
    public void setHQMusicUrl(String musicUrl) {  
        HQMusicUrl = musicUrl;  
    }  
   
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.cuiyongzhi.wechat.message.resp;
 
/**
 * ClassName: MusicMessage
 * @Description: 音乐消息
 * @author dapengniao
 * @date 2016年3月7日 下午3:53:38
 */
public class MusicMessage extends BaseMessage {  
    // 音乐   
    private Music Music;  
   
    public Music getMusic() {  
        return Music;  
    }  
   
    public void setMusic(Music music) {  
        Music = music;  
    }  
}

③回复视频消息实体

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package com.cuiyongzhi.wechat.message.resp;
 
/**
 * ClassName: Video
 * @Description: 视频消息体
 * @author dapengniao
 * @date 2016年3月8日 下午6:05:45
 */
public class Video {
 
    private String MediaId;
    private String Title;
    private String Description;
 
    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 getMediaId() {
        return MediaId;
    }
 
    public void setMediaId(String mediaId) {
        MediaId = mediaId;
    }
 
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.cuiyongzhi.wechat.message.resp;
 
/**
 * ClassName: VideoMessage
 * @Description: 视频消息
 * @author dapengniao
 * @date 2016年3月8日 下午6:06:29
 */
public class VideoMessage {
     
    private Video Video;
 
    public Video getVideo() {
        return Video;
    }
 
    public void setVideo(Video video) {
        Video = video;
    }
 
 
}

④回复语音消息实体

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.cuiyongzhi.wechat.message.resp;
 
/**
 * ClassName: Voice
 * @Description: 语音消息体
 * @author dapengniao
 * @date 2016年3月8日 下午6:02:29
 */
public class Voice {
 
    private String MediaId;
     
    public String getMediaId() {
        return MediaId;
    }
 
    public void setMediaId(String mediaId) {
        MediaId = mediaId;
    }
     
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.cuiyongzhi.wechat.message.resp;
 
/**
 * ClassName: VoiceMessage
 * @Description: 语音消息
 * @author dapengniao
 * @date 2016年3月8日 下午6:02:13
 */
public class VoiceMessage {
     
    private Voice Voice;
 
    public Voice getVoice() {
        return Voice;
    }
 
    public void setVoice(Voice voice) {
        Voice = voice;
    }
 
 
     
 
}

那么到这里回复消息类型的划分和实体的具体实现代码就基本编写完成了,在这些新增实体加入后我们项目的项目结构大致如下:

Java微信公众平台开发(四)--回复消息的分类及实体的创建的更多相关文章

  1. Java微信公众平台开发(三)--接收消息的分类及实体的创建

    转自:http://www.cuiyongzhi.com/post/41.html 前面一篇有说道应用服务器和腾讯服务器是通过消息进行通讯的,并简单介绍了微信端post的消息类型,这里我们将建立消息实 ...

  2. Java微信公众平台开发(八)--多媒体消息回复之音乐

    我们上一篇写了关注出发图片的回复.想着在发送一次音乐,最后基于回复消息分类情况下,实现一个简单的只能话回复.先附一张大致效果图. 下面我们进入代码阶段. (一)修改消息转发器MsgDispatcher ...

  3. Java微信公众平台开发(八)--多媒体消息回复

    转自:http://www.cuiyongzhi.com/post/46.html 之前我们在做消息回复的时候我们对回复的消息简单做了分类,前面也有讲述如何回复[普通消息类型消息],这里将讲述多媒体消 ...

  4. Java微信公众平台开发(七)--多媒体消息回复之图片回复

    之前我们在做消息回复的时候我们对回复的消息简单做了分类,前面也有讲述如何回复[普通消息类型消息],这里将讲述多媒体消息的回复方法,[多媒体消息]包含回复图片消息/回复语音消息/回复视频消息/回复音乐消 ...

  5. Java微信公众平台开发_02_启用服务器配置

    源码将在晚上上传到 github 一.准备阶段 需要准备事项: 1.一个能在公网上访问的项目: 见:[  Java微信公众平台开发_01_本地服务器映射外网  ] 2.一个微信公众平台账号: 去注册: ...

  6. Java微信公众平台开发【番外篇】(七)--公众平台测试帐号的申请

    转自:http://www.cuiyongzhi.com/post/45.html 前面几篇一直都在写一些比较基础接口的使用,在这个过程中一直使用的都是我个人微博认证的一个个人账号,原本准备这篇是写[ ...

  7. Java微信公众平台开发_07_JSSDK图片上传

    一.本节要点 1.获取jsapi_ticket //2.获取getJsapiTicket的接口地址,有效期为7200秒 private static final String GET_JSAPITIC ...

  8. 微信公众平台开发,模板消息,网页授权,微信JS-SDK,二维码生成(4)

    微信公众平台开发,模板消息,什么是模板消息,模板消息接口指的是向用户发送重要的服务通知,只能用于符合场景的要求中去,如信用卡刷卡通知,购物成功通知等等.不支持广告营销,打扰用户的消息,模板消息类有固定 ...

  9. Java微信公众平台开发--番外篇,对GlobalConstants文件的补充

    转自:http://www.cuiyongzhi.com/post/63.html 之前发过一个[微信开发]系列性的文章,也引来了不少朋友观看和点评交流,可能我在写文章时有所疏忽,对部分文件给出的不是 ...

随机推荐

  1. <img>边框的border属性

    默认地,图像是没有边框的(除非图像在 a 元素内部). 浏览器通常会把代表超链接的图像(例如包含在 <a> 标签中的图像)显示在两个像素宽的边框里面,以表示读者可以通过选择这个图像来访问相 ...

  2. 用工具快速建立hibernate框架

    ,一.建好项目后先导入两类jar包,一类是hibernate的jar包,一类是jdbc的jar包 二.点击“窗口”--“显示视图”--“其它”-“Hibernate configurations” 三 ...

  3. MSSQL数据库分区表

    http://blog.csdn.net/lgb934/article/details/8662956 http://database.9sssd.com/mssql/art/951

  4. Agilent RF fundamentals (1)- fundamental units of measure

  5. C# 为什么用接口实例化一个实现该接口的类?

    这是多态的体现. 首先接口不能实例化的. 实现接口的类 实例 = new 实现接口的类()// 这样用不好吗? //这样已经不是好不好的问题了,这样的话,要接口有什么用?//用接口就是让实例和实现类的 ...

  6. 压缩JS,提高代码执行速度

    压缩JS java -jar yuicompressor-2.4.jar --type js xxx.js -o xxx.js --charset utf-8 压缩CSS java -jar yuic ...

  7. Photon Cloud Networking: OnPhotonSerializeView Not Firing

    Photon Cloud Networking: OnPhotonSerializeView Not Firing http://answers.unity3d.com/questions/31305 ...

  8. 如何用 Java 实现 Web 应用中的定时任务

    定时任务,是指定一个未来的时间范围执行一定任务的功能.在当前WEB应用中,多数应用都具备任务调度功能,针对不同的语音,不同的操作系统, 都有其自己的语法及解决方案,windows操作系统把它叫做任务计 ...

  9. Unity3d 相关文档

    Unity3D研究院之处理摄像机跟随避免相机穿墙拉近或透明的方法 http://www.apkbus.com/android-498-1.html

  10. 记一次诡异的网络故障排除 - tpc_tw_recycle参数引起的网络故障

    一.故障现象 我们团队访问腾讯云上部署的测试环境中的Web系统A时,偶尔会出现类似于网络闪断的情况,浏览器卡很久没有反应,最终报Connection Timeout. 不过奇怪的是,当团队中的某个人无 ...