转自: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. OC-文件操作

    一.归档NSKeyedArchiver========================== 1.第一种方式:存储一种数据.===================== //归档 //第一种写法 //对象 ...

  2. 剑指offer--24.树的子结构

    时间限制:1秒 空间限制:32768K 热度指数:407165 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构)   class Solution ...

  3. 【python】没有root权限的时候安装Python package

    下载相关位置的包 1.首先在git上下载对应的包: 搜索package github,找到地址.使用 git clone https://xxx.git 命令 2.使用python setup.py ...

  4. 向重复劳动说不!——GMExplorer 1.0 Beta 发布

    下载: GMExplorer 1.0 Beta 计算机网络诞生以来,各项技术日新月异.在浏览器器能做和看到的,早已不止网页了! 特别是近几年HTML5.云服务等技术的兴起,涌向大批优秀的Web应用.人 ...

  5. [C#] Newtonsoft.Json 版本冲突

    在web.config或者app.config里面加上一段: <runtime> <assemblyBinding xmlns="urn:schemas-microsoft ...

  6. iOS编译集成linux开源c库的一些记录

    最近一个iOS项目需要使用一些Linux下面的开源c库,说是Linux的其实是跨平台的,各种Unix系统都有支持.理论上iOS来自MacOS,而MacOS其实是一种兼容的Unix系统,所以这些库应该也 ...

  7. JFinal自定义FreeMarker标签

    为什么采用freemarker? 1.模板技术,不依附于语言和框架,前端和后端解耦,便于分工协作,更好的协同. 2.页面相应速度快 3.前端非常的灵活,采用自定义标签可以在不更改后端的基础上很容易的构 ...

  8. 关于file.writelines换行符的添加

    和file.readlines/readline不同,file.writelines(l)如果l元素没有换行符,writelines是不会自动加入换行符的,需要我们自己添加,就像这样. import ...

  9. poj 3517

    题目链接  http://poj.org/problem?id=3517 题意        约瑟夫环  要求最后删掉的那个人是谁: 方法        理解递推公式就行了  考虑这样一组数据  k ...

  10. LeetCode IPO

    原题链接在这里:https://leetcode.com/problems/ipo/description/ 题目: Suppose LeetCode will start its IPO soon. ...