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

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

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

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

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

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

}

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

①文本消息消息体

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

②图文/多图文消息实现

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

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

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

①回复图片消息实体

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

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

}

②回复音乐消息实体

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

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

③回复视频消息实体

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

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

}

④回复语音消息实体

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

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

}

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

下篇将讲述【普通消息体的回复】实现,感谢你的翻阅,如有疑问可以留言讨论!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java微信企业号开发之发送消息(文本、图片、语音)

    上篇文章介绍了开启回调模式,开始回调模式后我们就要实现聊天功能了.平时使用微信聊天可以发送文本消息.语音.图片.视频等,这里只实现了其中的一些功能和大家分享. 一.与微信企业号建立连接 1.企业应用调用企业号提供的接口,管理或查询企业号后台所管理的资源.或给成员发送消息等,以下称主动调用模式. 2.企业号把用户发送的消息或用户触发的事件推送给企业应用,由企业应用处理,以下称回调模式. 3.用户在微信中阅读企业应用下发的H5页面,该页面可以调用微信提供的原生接口,使用微信开放的终端能力,以下称JS

  • 微信java开发之实现微信主动推送消息

    1.拉取access_token2.拉取用户信息3.主动推送消息4.接口貌似要申请权限5.依赖httpclient4.2.3 和jackson 2.2.1 复制代码 代码如下: public class WeixinAPIHelper { /**  * 获取token接口  */ private String getTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=

  • java微信开发第二步 获取消息和回复消息

    接着上一篇java微信开发API第一步 服务器接入进行学习,下面介绍java微信开发第二步:获取消息和回复消息,具体内容如下 * 本示例根据微信开发文档:http://mp.weixin.qq.com/wiki/home/index.html最新版(4/3/2016 5:34:36 PM )进行开发演示. * 编辑平台:myeclipse10.7+win32+jdk1.7+tomcat7.0  * 服务器:阿里云 windows server 2008 64bits * 平台要求:servlet

  • 微信支付java版本之JSAPI支付+发送模板消息

    本文为大家分享了java版本之JSAPI支付+发送模板消息的相关资料,供大家参考,具体内容如下 1.工具类 工具类见:微信支付JAVA版本之Native付款 2.公众账号设置 3.代码实现 openId:openId为用户与该公众账号之间代表用户的唯一标示  以下类中涉及到生成token,关闭订单接口调用,获取配置文件信息,和工具类,在其他文章中有具体代码实现 package com.zhrd.bussinss.platform.controller.rest; import java.io.F

  • Java微信公众平台开发(2) 微信服务器post消息体的接收

    在上一篇的文章中我们详细讲述了如何将我们的应用服务器和微信腾讯服务器之间的对接操作,最后接入成功,不知道你有没有发现在上一篇的[controller]中我定义了一个get方法和一个post方法,但是在使用过程中我们就用了get方法,这里我们就来说说我们预留的post的方法的使用! 当我们在完成了服务器验证之后,此后用户每次向公众号发送消息.或者产生自定义菜单点击事件时,开发者填写的服务器配置URL将得到微信服务器推送过来的消息和事件,然后开发者可以依据自身业务逻辑进行响应,例如回复消息等!通过这

  • Java调用微信客服消息实现发货通知的方法详解

    本文实例讲述了Java调用微信客服消息实现发货通知的方法.分享给大家供大家参考,具体如下: 微信文档地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140547&token=&lang=zh_CN 个人说明:这是一个样例,微信客户消息有很多种,我现在用的是公众号发送消息.样子如下图. 说明:下面开始代码部分了. 1.首先看微信文档.这里才是我们需要的 这里是说发消息要POST请求这个接口:https://a

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

    前面一篇有说道应用服务器和腾讯服务器是通过消息进行通讯的,并简单介绍了微信端post的消息类型,这里我们将建立消息实体以方便我们后面的使用! (一)消息实体基础类 package com.cuiyongzhi.wechat.message.req; /** * ClassName: BaseMessage * @Description: 微信请求消息基本类 * @author dapengniao * @date 2016年3月7日 下午3:03:59 */ public class BaseM

  • java微信开发API第二步 获取和回复消息

    微信开发API如何获取和回复消息,下面就为大家进行介绍 一.说明 * 本示例根据微信开发文档:http://mp.weixin.qq.com/wiki/home/index.html最新版(4/3/2016 5:34:36 PM )进行开发演示. * 编辑平台:myeclipse10.7+win32+jdk1.7+tomcat7.0  * 服务器:阿里云 windows server 2008 64bits * 平台要求:servlet使用注解方式,平台要求:j2ee6.0+.jdk6.0+.t

  • Java开发微信公众号接收和被动回复普通消息

    上篇说完了如何接入微信公众号,本文说一下微信公众号的最基本功能:普通消息的接收和回复.说到普通消息,那么什么是微信公众号所定义的普通消息呢,微信开发者文档中提到的接收的普通消息包括如下几类: 1.文本消息 2.图片消息 3.语音消息 4.视频消息 5.小视频消息 6.地理位置消息 7.链接消息(被动回复的消息) 被动回复的普通消息包括: 1.回复文本消息 2.回复图片消息 3.回复语音消息 4.回复视频消息 5.回复音乐消息 6.回复图文消息 其实接收消息和被动回复消息这两个动作是不分家的,这本

  • Java微信公众平台开发(5) 文本及图文消息回复的实现

    上篇我们说到回复消息可以根据是否需要上传文件到微信服务器可划分为[普通消息]和[多媒体消息],这里我们来讲述普通消息的回复实现,在消息回复中存在一个关键字段[openid],它是微信用户对于公众号的唯一标识,这里不做过多解释后面将给出时间专门来讲解微信生态中的关键字! (一)回复文本消息 在前面我们已经完成了对消息的分类和回复消息实体的建立,这里回复文本消息需要用到的就是我们的TextMessage,我们把回复文本消息在[文本消息]类型中给出回复!在我们做消息回复的时候需要设置消息的接收人ToU

  • JAVA实现 springMVC方式的微信接入、实现消息自动回复实例

    前段时间小忙了一阵,微信公众号的开发,从零开始看文档,踩了不少坑,也算是熬过来了,最近考虑做一些总结,方便以后再开发的时候回顾,也给正在做相关项目的同学做个参考. 1.思路 微信接入:用户消息和开发者需要的事件推送都会通过微信方服务器发起一个请求,转发到你在公众平台配置的服务器url地址,微信方将带上signature,timestamp,nonce,echostr四个参数,我们自己服务器通过拼接公众平台配置的token,以及传上来的timestamp,nonce进行SHA1加密后匹配signa

随机推荐