
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实现的解析方法为例,其实现关键代码如下:
Elementroot=document.getRootEle-ment();//获取XML文档根节点StringfromUsername=root.elementText(TromUserName”);//获取发送方StringtoUsername=root.elementText('ToUserName”);//获取接收方StringmsgType=root,elementTextTrim("MsgType”);//获取消息类型Stringcontent=root.elementTextTrim("Content”);//获取消息内容主要是解析开发者微信号,微信用户发送账号,信息类型和信息内容等关键信息。
3.3消息回复的格式和消息封装方法3.3.1消息回复的格式消息回复是指第三方消息接口自动给微信用户回复消息。对于每一个POST请求,开发者在响应包中返回特定XML结构,对该用户的消息进行响应,目前支持文本、音乐和图文三种消息结构,回复XML结构的详细消息格式和含义请参看文献[7]。
<XML>//XML结构的回复消息封装方式示例,字段含义<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime><MsgType><![CDATA[news]]></MsgType>
<ArticleCount>2</ArticleCount><Articles>
<item>
<Title><![CDATA[title1]]></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实现为例,其封装的关键代码如下:
StringresponseStr="<XML>";//封装XML结构的回复消息的JAVA核心代码//字段含义请参看文献[7]responseStr+="<ToUserName><![CDATA["+fromUsername+']]></ToUserName>";responseStr+="<FromUserName><!
[CD-ATA["+toUsername+']]></FromUser-Name>";responseStr+="<CreateTime>"+System.
currentTimeMillis()+"</CreateTime>";
responseStr+="<MsgType><![CDATA[news]]></MsgType>";responseStr+="<Content><![CDATA[]]></Content>";responseStr+="<ArticleCount>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>";responseStr+="</Articles>";responseStr+=<FuncFlag>1</FuncFlag>;responseStr+="</XML>";
(www.fabiaoba.com),是一个专门从事期刊推广期刊发表、投稿辅导、发表期刊的网站。
本站提供如何投稿辅导、发表期刊,寻求论文刊登合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级论文刊登/国家级论文刊登/
CSSCI核心/医学投稿辅导/职称投稿辅导。
投稿邮箱:fabiaoba365@126.com
在线咨询:
275774677、
1003180928
在线咨询:
610071587、
1003160816
联系电话:13775259981
期刊简介: 《高等工程教育研究》是我国第一份、也是唯一一份面向工程教育研究的全国...
期刊简介: 主管单位:吉林省社会保险事业管理局 主办单位:吉林省人力资源和社会保障...
主管单位:湖北省国资委 主办单位:湖北省经济干部管理学院 出版地:湖北省武汉市 国...
主管单位:国家民族事务委员会 主办单位:西北民族大学 出版地:甘肃省兰州市 国际标...
主管单位:山东省教育厅 主办单位:山东省教委 国内刊号:CN 37-1025/G4 国际刊号:IS...
期刊简介: 《种子科技》(月刊)创刊于1983年,曾用刊名:(种子通讯)是中国种子协...
近来发现有些作者论文投稿存在大量剽窃、抄袭行为,“发表吧”对此类存在大量剽窃、抄袭的论文已经停止编辑、推荐。同时我们也提醒您,当您向“发表吧”投稿时请您一定要保证论文的原创性、唯一性,这既是对您自己负责,更是对他人的尊敬。
此类投稿的论文如果发表之后,对您今后的人生和事业将造成很大的麻烦,后果不堪设想,请您一定要慎重,三思而后行。
如因版权问题引起争议或任何其他原因,“发表吧”不承担任何法律责任,侵权法律责任概由剽窃、抄袭者本人承担。