转自: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. 【git】常用命令大全

    Git常用操作命令收集: 1) 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/jquery.git   后边接仓库文件地址 查看远程仓库:$ gi ...

  2. 使用Spring实现MySQL读写分离

    1. 为什么要进行读写分离 大量的JavaWeb应用做的是IO密集型任务, 数据库的压力较大, 需要分流 大量的应用场景, 是读多写少, 数据库读取的压力更大 一个很自然的思路是使用一主多从的数据库集 ...

  3. C#—序列化(Serialize)和反序列化(NonSerialize)

    (转自:http://www.cnblogs.com/Abel-Zhang/p/Serialize.html) 一.概述 序列化是把对象转变成流.相反的过程就是反序列化. 哪些场合用到这项技术呢? 1 ...

  4. GDB和Core Dump使用笔记

    一.GNU C编译器(即GCC) GCC使用 1 .gcc -g hello.c -o hello   编译生成可执行文件 2.gdb hello                     启动GDB ...

  5. 条款1:将c++视作一个语言联邦

    c++是一个多重泛型编程语言,其所支持的泛型有: 面向过程编程(procedual) 面向对象编程(object-oriented) 面向函数编程(functional) 泛型编程(generic) ...

  6. java String 转 Long 两种方法区别

    Long.ValueOf("String")返回Long包装类型 包装类型: Byte,Integer,Short,Long,Boolean,Character,Float,Dou ...

  7. 说说geotools中坐标转换那点事

    概述: 本文说说geotools中坐标转换的那点事情,以WGS84和web墨卡托相互转换为例. 效果: 转换前 转换后 单个Geometry转换 实现代码: package com.lzugis.ge ...

  8. poj3107(dfs,树形dp)

    和poj1655的方法完全一样,但是这道题的n的范围大了,用vector存图会TLE(poj没有O2编译优化),所以改用前向星来存图就可以了.. 有关树的重心,看这里:poj1655 这里解释一下前向 ...

  9. 机器人研发十大热门编程语言:不死 Java、不朽 C/C ++、新贵 Python

    流水的编程语言,铁打的 Java.C/C++. 进行人工智能机器人研发,应该选择哪种编程语言? 这是很多机器人专家在自身的职业生涯中都会存在的一个入门级思考.毕竟,在学习一门编程语言时,需要花费大量的 ...

  10. Java进阶知识点7:不要只会写synchronized - JDK十大并发编程组件总结

    一.背景 提到Java中的并发编程,首先想到的便是使用synchronized代码块,保证代码块在并发环境下有序执行,从而避免冲突.如果涉及多线程间通信,可以再在synchronized代码块中使用w ...