当前位置: > 论文中心 > 科技论文 >

图书馆微信服务平台的设计与实现(3)

时间:2015-11-11 08:56 点击:
3.1消息接口的实现方案 目前常用的实现方案有基于PHP、J2EE、 .NET和其他的网络编程的技术,常用的WEB 服务器有 apache,tomcat,nginx,iis 等。微 信官方提供了基于PHP的接口实现方案,熟练 的程序员可以实现基于

  3.1消息接口的实现方案
  目前常用的实现方案有基于PHP、J2EE、 .NET和其他的网络编程的技术,常用的WEB 服务器有 apache,tomcat,nginx,iis 等。微 信官方提供了基于PHP的接口实现方案,熟练 的程序员可以实现基于其它网络编程技术的消 息接口代码。基于JAVA的消息接口实现如图 3所示,是结合昆明理工大学微信平台的一种 实现,主要需要实现的方法包括用于接收消息 参数的doGet()和doPost()方法,用于验证接 口合法性的valid()方法,实现消息接收、处理 和响应的 responseMsg()和 replyMessage()方 法,以及保证消息传输安全的checkSignature() 和SHA1Encode()等身份验证和加解密方法。
  图3基于JAVA的消息接口实现
  3.2消息推送的格式和消息解析的实现方法 3.2.1消息推送的格式消息推送是指微信用户向公众账号发送消 息。微信服务器将POST该消息到第三方服务 器配置的URL上。通常来说微信用户可以推送 文本、图片、地理位置、链接和事件5种消息 格式,推送XML结构的消息格式请参看文献[7]。 3.2.2 消息解析实现方法当第三方消息接口服务器收到用户推送的 信息后,就需要将消息进行解析。以文本消息 和JAVA实现的解析方法为例,其实现关键代码如下:
  Element root = document.getRoot Ele- ment(); //获取XML文档根节点String fromUsername = root.elementText (TromUserName”); // 获取发送方String toUsername = root.elementText ('ToUserName”); //获取接收方String msgType = root, ele me nt Text Trim ("MsgType”); //获取消息类型String content = root. element Text Trim ("Content”); //获取消息内容主要是解析开发者微信号,微信用户发送 账号,信息类型和信息内容等关键信息。
  3.3消息回复的格式和消息封装方法 3.3.1消息回复的格式消息回复是指第三方消息接口自动给微信 用户回复消息。对于每一个POST请求,开发 者在响应包中返回特定XML结构,对该用户 的消息进行响应,目前支持文本、音乐和图文 三种消息结构,回复XML结构的详细消息格 式和含义请参看文献[7]。
  <XML>//XML结构的回复消息封装方式示例, 字段含义<ToUserName><! [CDATA [toUser]]> < /ToUserName>
  <FromUserName><! [CDATA [fromUser]] > </FromUserName>
  <Cre ateTime>12345678</Cre ateTime> <MsgType>< ! [CDATA [news ]]></Msg Type>
  < Article Count>2</Article Count> <Articles>
  <item>
  <Title><! [CDATA[title 1]]></Title> <Description><![CDATA[description1]]
  93
  ></Description>
  <PicUrl><! [CDATA[picurl] ]></PicUrl> <Url><! [CDATA[url] ]></Url>
  </item>
  <item>
  ...//当回复消息数>1条时,以<item> ...</item>形式封装消息 </item>
  </Articles>
  <FuncFlag>1</FuncFlag>
  </XML>
  3.3.2消息的封装
  当微信第三方服务器对用户的消息进行智 能处理后,就需要将回复内容根据回复类型进 行对应格式的封装,以图文消息和JAVA实现 为例,其封装的关键代码如下:
  String responseStr = "<XML>"; // 封装 XML结构的回复消息的JAVA核心代码 //字段含义请参看文献[7] respons e Str+= "<ToUs erName><! [CDATA ["+ fromUsername+ '] ]></ToUserName>"; responseStr+="<FromUserName><!
  [CD- ATA[ "+toUsername+'] ]></FromUser- Name>";responseStr+="<CreateTime>" + System.
  currentTimeMillis()+ "</CreateTime>";
  responseStr+="< MsgType>< ! [CDATA [news]]></MsgType>";responseStr+="<Content>< ! [CDATA[]] ></Content>";re spons e Str+="<Article Count> 1 </Arti- cleCount>";responseStr+="<Articles>"; responseStr+="<item>"; responseStr+="<TMe><![CDATA[图书馆 自修座位信息实时统计]]></Title>";responseStr += "<Discription><![CDATA[" +contentStr+ '] ]></Discription>";responseStr+="<PicUrl><! [CDATA [http: //222.197.202.36/images/seat.jpg]]></PicUrl>"; responseStr+="<Url><! [CDATA [http :// 222.197.202.36/NoAuthAction.do] ]></Url>"; responseStr+= "</item>"; res pons eStr+= "</Articles>"; re spons e Str+=<FuncFlag> 1 </FuncFlag>; responseStr+= "</XML>";

   论文榜(www.zglwb.com),是一个专门从事期刊推广、投稿辅导的网站。
本站提供如何投稿辅导,寻求投稿辅导代理,快速投稿辅导,投稿辅导格式指导等解决方案:省级投稿辅导/国家级投稿辅导/核心期刊投稿辅导//职称投稿辅导。


栏目列表
联系方式
推荐内容
 
QQ在线咨询
投稿辅导热线:
189-6119-6312
微信号咨询:
18961196312