欢迎来到天天文库
浏览记录
ID:33942909
大小:595.28 KB
页数:14页
时间:2019-02-28
《微信公众帐号开发教程第4篇-消息及消息处理工具的封装》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、微信公众帐号开发教程第4篇-消息及消息处理工具的封装来源:柳峰的专栏时间:2013-09-0916:11:03[导读]工欲善其事必先利其器!本篇内容主要讲解如何将微信公众平台定义的消息及消息相关的操作封装成工具类,方面后期的使用。这里需要明确的是消息其实是由用户发给你的公众帐号的,消息先被微信平台接收到,然后微信工欲善其事必先利其器!本篇内容主要讲解如何将微信公众平台定义的消息及消息相关的操作封装成工具类,方面后期的使用。这里需要明确的是消息其实是由用户发给你的公众帐号的,消息先被微信平台接收到,然后微信平台会将该消息转给你在开发模式接口配置中指定的URL地址。微信公众
2、平台消息接口要接收微信平台发送的消息,我们需要先熟悉微信公众平台API中消息接口部分,点此进入,点击后将进入到消息接口指南部分,如下图所示:在上图左侧可以看到微信公众平台目前开放的接口有三种:消息接口、通用接口和自定义菜单接口。通用接口和自定义菜单接口只有拿到内测资格才能调用,而内测资格的申请也已经关闭了,我们只有期待将来某一天微信会对大众用户开放吧,所以没有内测资格的用户就不要再浪费时间在这两个接口上,只需要用好消息接口就可以了。消息推送和消息回复下面将主要介绍消息接口。对于消息的接收、响应我们只需要关注上图中的“4消息推送”和“5消息回复”就足够了。我们先来了解接口
3、中的“消息推送”指的是什么,点击“4消息推送”,可以看到接口中的“消息推送”指的是“当普通用户向公众帐号发消息时,微信服务器将POST该消息到填写的URL上”,即这里定义的是用户能够发送哪些类型的消息、消息有哪些字段、消息被微信服务器以什么方式转发给我们的公众帐号后台。消息推送中定义了我们将会接收到的消息类型有5种:文本消息、图片消息、地理位置消息、链接消息和事件推送,其实语音消息我们也能够接收到的,只不过拿不到具体的语音文件而以(需要内测资格才能够获取语音文件)。接口中的“消息回复”定义了我们能回复给用户的消息类型、消息字段和消息格式,微信公众平台的接口指南中是这样描
4、述的:上面说到我们能回复给用户的消息有5种,但目前在开发模式下能回复的消息只有3种:文本消息、音乐消息和图文消息,而语音消息和视频消息目前只能在编辑模式下使用。消息的封装接下来要做的就是将消息推送(请求)、消息回复(响应)中定义的消息进行封装,建立与之对应的Java类(Java是一门面向对象的编程语言,封装后使用起来更方便),下面的请求消息是指消息推送中定义的消息,响应消息指消息回复中定义的消息。请求消息的基类把消息推送中定义的所有消息都有的字段提取出来,封装成一个基类,这些公有的字段包括:ToUserName(开发者微信号)、FromUserName(发送方帐号,OP
5、EN_ID)、CreateTime(消息的创建时间)、MsgType(消息类型)、MsgId(消息ID),封装后基类org.liufeng.course.message.req.BaseMessage的代码如下:01.packageorg.liufeng.course.message.req;02.03./**04.*消息基类(普通用户->公众帐号)05.*06.*@authorliufeng07.*@date2013-05-1908.*/09.publicclassBaseMessage{10.//开发者微信号11.privateStringToUserName;12
6、.//发送方帐号(一个OpenID)13.privateStringFromUserName;14.//消息创建时间(整型)15.privatelongCreateTime;16.//消息类型(text/image/location/link)17.privateStringMsgType;18.//消息id,64位整型19.privatelongMsgId;20.21.publicStringgetToUserName(){22.returnToUserName;23.}24.25.publicvoidsetToUserName(StringtoUserName){2
7、6.ToUserName=toUserName;27.}28.29.publicStringgetFromUserName(){30.returnFromUserName;31.}32.33.publicvoidsetFromUserName(StringfromUserName){34.FromUserName=fromUserName;35.}36.37.publiclonggetCreateTime(){38.returnCreateTime;39.}40.41.publicvoidsetCreateTime(longcreateT
此文档下载收益归作者所有