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

转自: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;

    }

    

}

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

原文地址:https://www.cnblogs.com/sharpest/p/10231268.html

时间: 2024-11-05 22:35:57

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

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

转自:http://www.cuiyongzhi.com/post/41.html 前面一篇有说道应用服务器和腾讯服务器是通过消息进行通讯的,并简单介绍了微信端post的消息类型,这里我们将建立消息实体以方便我们后面的使用! (一)消息实体基础类 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

java微信公众平台开发四(上传素材)

最近公司要做微信方面的开发,今天说下,如何使用微信的素材管理的接口,这里主要讲下素材的上传接口,下载之类的比较简单(就是解析json而已),今天会把所有的素材上传写道一个方法里供大家参考,关于上传的接口文档我就不粘贴了,直接上代码! /** * 这里说下,在上传视频素材的时候,微信说不超过20M,我试了下,超过10M调通的可能性都比较小,建议大家上传视频素材的大小小于10M比交好 * @param accessToken * @param file 上传的文件 * @param title 上传

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

一.准备阶段 需要准备事项: 1.一个能在公网上访问的项目: 见:[  Java微信公众平台开发_01_本地服务器映射外网  ] 2.一个微信公众平台账号: 去注册:(https://mp.weixin.qq.com/) 3.策略文件 见:[ Java企业微信开发_Exception_02_java.security.InvalidKeyException: Illegal key size ] 4.微信官方消息加解密工具包 需要下载微信官方的消息加解密的工具包,主要是AES加密工具 下载地址:

微信公众平台开发(97) 图文消息

关键字:微信公众平台 开发模式 图文消息作者:方倍工作室原文:http://www.cnblogs.com/txw1958/p/weixin-97-news.html 在这篇微信公众平台开发教程中,我们将介绍如何灵活的使用图文消息功能.我们将只介绍被动回复消息中的图文消息,发送客服消息及高级群发消息接口的发送的图文消息与本文介绍的图文消息的各情况基本一致. 本文分为以下四个部分: 图文消息的定义 图文消息的实现 图文消息的类型 图文消息的回复 一.图文消息的定义 在微信公众平台消息中,发送被动响

微信公众平台开发(102) 模版消息

关键字:微信公众平台 模版消息作者:方倍工作室原文:http://www.cnblogs.com/txw1958/p/wechat-template-message.html 在这篇微信公众平台开发教程中,我们将介绍如何开发模版消息,即如何用程序发送模版消息功能.本文分为以下三个部分: 申请模版消息权限 开发模版消息SDK 构造模版消息体并发送 一.申请模版消息权限 模版消息的申请需账号已经开通微信支付权限. 在微信公众平台的后台,依次进入“功能->添加功能插件->模版消息”,即可申请模版消息

Java微信公众平台开发模式+自定义按钮源码

首先,想用开放模式需要先成为开发者.成为开发者有两种写法. 一是:通过jsp页面,用out.print("echostr")//SHA1加密的字符串: 二是:通过Servlet.doGet返回exhostr,给微信平台. 这里我只写第二种方式的请求(这里的请求是以get方式请求),代码如下: import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.ut

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

微信公众平台开发,模板消息,什么是模板消息,模板消息接口指的是向用户发送重要的服务通知,只能用于符合场景的要求中去,如信用卡刷卡通知,购物成功通知等等.不支持广告营销,打扰用户的消息,模板消息类有固定的模板,每个账号可以使用25个模板,模板消息上线每日10万次,粉丝数上涨到10w/100w/1000w/模板消息的上线次数会自动上调.模板接口调用主要注意事项:模板ID和模板赋值这两点.模板参数内容必须以.DATA结尾,模板保留符号"{{}}".使用步骤如下: 1.设置所属行业,这个可以在

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

转自:http://www.cuiyongzhi.com/post/63.html 之前发过一个[微信开发]系列性的文章,也引来了不少朋友观看和点评交流,可能我在写文章时有所疏忽,对部分文件给出的不是很完全所以导致部分同学在有些地方做开发的时候遇到了一些阻力,收到这些朋友同学们的咨询反馈之后我也做了一些反思和总结,其中一部分同学说少了GlobalConstants这个文件(这个真心占的不少),还有一部分就是说源码的问题,所以今天特意抽了时间补充下这两点! (一)关于GlobalConstants

java微信公众平台开发事件推送

import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.log4j.Logger; import org.springframework.stereotype.Service; import com.ifp.weixin.biz.cor