admin 管理员组文章数量: 1086019
2024年4月25日发(作者:linkbutton的属性)
第32卷第3期
2015年9月
苏州科技学院学报(自然科学版)
Journal of Suzhou University of Science and Technology(Natural Science)
V01.32 NO.3
Sep.2015
基于微信公众平台架构的应用系统开发
陆卫忠 ,一,赵玉雪 ,朱云祥 ,忻 立
(1.苏州科技学院电子与信息工程学院,江苏苏州215009;2.苏州科技学院计算机应用技术研究所,江苏苏州215009)
摘要:介绍了移动互联网及应用系统开发技术的发展趋势。剖析了微信公众平台的架构,从应用模块和接口访问
两方面详细说明了基于微信公众平台的移动互联网应用设计的方法,并用“e活动”作为实例进行了系统的说明。
关键词:微信;微信平台;架构;APP
中图分类号:TP393 文献标志码:A 文章编号:1672—0687(2015)03-0047—05
随着人们生活水平的提高和科学技术的进步,移动互联网正以雨后春笋之势迅速发展。2013年中国移
动互联网在延续了近几年的增长态势的基础上,进一步在人们生活的方方面面深深地打上“移动互联网”的
烙印。随着智能手机成为第一终端、互联网中心和个人信息中心,人们把自己的沟通、社交、娱乐、生活、商务、
隐私交给了手机及其各种应用Ⅲ。因此,移动应用的发展趋于多样化和个性化。
移动互联网应用的原有开发模式已经落后于应用需求,是对开发人员的一大挑战。腾讯公司微信公众
平台的推出,为开发者提供了新的开发模式,弥补了传统APP开发的不足,个人、企业可根据自身需求,定制
各自的“门户应用”来提高访问量,增加知名度。所以,掌握基于微信公众平台的应用开发方法势在必行。
1微信公众平台的架构
1.1微信公众平台功能
微信公众平台主要有群发功能和高级功能圜。群发功能,即群发一条消息,该消息会推送给关注公众账
号的所有用户。群发消息可以根据需求选择单文字消息、图
片消息、语音消息、视频消息和图文消息。高级功能是公众
表1服务号和订阅号对比表
平台提供给开发者用于二次开发的接口,分为编辑模式和
开发模式。开发者只能选择其中一种开发模式。
微信公众账号分为服务号和订阅号(见表1),两者都
具有群发功能和高级功能,只是在功能权限方面有差异。
服务号一个月内仅可以发送一条群发消息,可直接使
用自定义菜单。服务号发给用户的消息,会显示在用户的聊
天列表中。并且,在发送消息给用户时,用户将收到即时的
消息提醒0
订阅号为用户提供信息和资讯。订阅号每天可以发送
一
条群发消息,开发之后才能使用自定义菜单。订阅号发给
用户的消息,将会显示在用户的订阅号文件夹中。在发送消
息给用户时。用户不会收到即时消息提醒I引。微信公众平台
功能如图1所示。
图1微信公众平台功能图
【收稿日期】2014-06-07
【基金项目】江苏省教育厅自然科学研究项目(08KJD510007);江苏省大学生实践创新训练计划项目(201310332056X)
【作者简介】陆卫忠(1964一),男,江苏常熟人,副教授,硕士,研究方向:计算机控制网络与嵌入式系统,信息系统安全。
苏州科技学院学报(自然科学版)
1.2微信公众平台架构
2015血
公众平台消息接口为开发者提供了与用户进行消息交互的能力[31。对于成功接入公众平台开发接口的
公众账号,用户发消息给公众号,微信公众平台服务器会使用H1TrP请求对接入的网址进行消息推送。第三
方服务器(开发者使用的服务器)可通过响应包回复特定结构的消息,从而达到回复消息的目的。
使用了高级功能的微信公众账号就成为一个配备了一些指令规
则的账号[31。在用户关注公众账号后,发送特定的指令给公众账号即
可获得相应的结果。而这些规则的逻辑需要开发者根据公众平台的
开发规则在后台实现。用户、微信服务器和第三方服务器三者之间的
交互关系如图2所示。
微信客户端
(用户的移动终端)
微信服务器
(徽信平台)
第三方服务器
(1)用户在微信客户端向微信平台发送消息,该消息会通过网络
图2公众平台交互关系图
到达微信服务器;(2)微信服务器收到该消息后,把消息转发给第三方服务器;(3)该服务器收到请求后,首先
解析消息格式,提取消息的内容,并经预定义的业务逻辑处理,将处理结果封装后返回给微信接口;(4)微信
平台把收到的消息转发给用户的微信客户端。
2微信公众平台的应用设计方法
微信公众平台的高级功能中提供的两种二次开发的模式:编辑模式和开发模式[41。开发者根据需求可以
选择其中一种模式进行二次开发。
2.1二次开发模式
2.1.1编辑模式编辑模式下具有的功能是:①消息推送;②预设自动回复,为用户提供需求信息;③将系统
平台从PC端向WAP延伸嘲。
编辑模式采用跳转到页面方式『5],因此,可在系统平台中进行二次开发,在系统服务器中制作功能页面,
供“编辑模式”下链接调用,这样,使开发平台应用得到了拓展。
2.1.2 开发模式 开发模式下具有的功能是:①提供资讯;②预设自动回复;③提取系统平台数据,实现个性
化的服务(41。
开发模式下,微信平台可转发H1]rP请求的XML数据包到配置的URL上,开发人员设计的程序解析该
XML数据包后对数据库操作,从而将拓展功能引入到平台中来:①引用网络资源,如:天气查询、火车票查
询、幽默笑话;②自行设计数据库,设计出个性化服务,具有很强的开发拓展功能。编辑模式和开发模式的优
劣比较,见表2。
2.2应用模块及接口访问
表2编辑模式和开发模式优劣对比表
公众平台提供的应用模块主要有:接受用户消息、向
用户回复消息、事件推送、会话界面自定义菜单等。而开发
的前提是:网址接入,即接口配置信息。下面根据开发的流
程来详细介绍应用模块及其接口访问方式。
(1)申请微信公众账号。输入网址:https://mp.weixin.
qq.com/进行注册,需要提供一个电子邮箱,个人用户还需
提供身份信息。
(2)部署第三方服务器。选择云服务器或者在Internet
URL
上可访问的普通服务器。
(3)注册接口,即填写接口配置信息:登录自己的公众
~
[二二二 二二二]
账号的前台,依次单击导航上的“高级功能” 右边的“开
发模式”一“成为开发者”,可以看到如图3的界面。
[ 口
图3接口配置界面
开发者需要提供一个URL和一个Token,URL是上一步部署的服务器的接口,是第三方服务器和微信
服务器交互的桥梁。例如:当用户发消息给微信平台时,微信服务器会将该消息转发给URL所指向的第三方
第3期 陆卫忠,等:基于微信公众平台架构的应用系统开发 49
服务器。Token是微信服务器和被开发的公众账号服务器之间的密钥问;
(4)编写代码,完成应用模块的业务逻辑。
应用模块一:接收用户消息。当微信用户向公众账号发消息时,微信服务器会将用户消息用XML封装
后以HTrP请求发送到配置的URL上。可以接收的消息分为:文本消息、图片消息、地理消息和链接消息。例
如,文本消息的XML格式是:
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
表3接收用户消息字段描述
<FromUserName><!【CDATA[fromUser]]>
参数 描述
</FromUserName>
TbUserName
开发者微信账号
<CreateTime>1 34883 1 860</CreateTime>
FromU ̄rName
发送方账号(一个OpenlD)
<MsgType><!【CDATA[text]]></MsgType>
CreateTime
消息创建时间(整型)
<Content><![CDATA[thisisatest]]></Content>
<MsgId>1234567890123456</MsgId>
MsgType
消息类型,根据不同消息可以为“text”
或“image”或“location”或“link”
</xml>
MsgId
消息ID,64位整型
根据不同类型的消息字段来获得所需的信息。表3
Content
文本消息内容(Ms rype=”text”)
PieUrl
Location X
~RⅫ 一m
就是主要的消息字段及其描述。
图片链接(MsgType=”image”)
应用模块二:向用户回复消息。当微信用户发来一
地理位置纬度(MsSTYpc=”location”:
一C
一一
条消息时,要回复相应的消息。根据收到的MsgType来
LocationY
__
地理位置经度(MsgType=”location”)
确定消息的类型,然后构造XML数据包以HTTP响应
Scale
地图缩放大小(MssTypc=”location”)
Label
地理位置信息(MsgTypc=”location”)
回复给用户。可以回复的消息分为:文本消息、音乐消
Title
消息标题(Ms pc=”link”)
息、链接消息和图文消息。例如,回复链接消息的XML
Description
消息描述(MsgTy ̄=”link”)
数据包格式是:
Url
消息链接(MsgType=”hnk”)
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
表4回复用户消息字段描述
参数 描述
<FromUserName><![CDATA[fromUser]]>
接收方账号(收到的OpenlD)
</FromUserName>
开发者微信公众账号
<CreateTime>1 2345678</CreateTime>
消息创建时间
消息类型, 根据不同消息可以为“text”或
<MsgType><![CDATA[text]]></MsgType>
“
music”或“news”
<Content><![CDATA[<a href=”http://www.qq.tom”>
为1时,星标刚收到的消息
回复的文本消息内容,长度不超过2048字节
qq.com</a>]]></Content>
音乐链接
<FuncFlag>O</FuncFlag>
高质量音乐链接,WIFI环境优先使用该链接播
放音乐
</xml>
图文消息个数,限制为l0条以内
回复用户消息字段描述见表4。
多条图文消息信息,默认第一个item为大图
应用模块三:事件推送。当用户在客户端触发了事
图文消息标题
图文消息描述
件的时候.公众账号服务器也会收到一条消息。这些事
图片链接,支持JPG、PNG格式
件包括用户订阅公众账号、取消关注公众账号和单击自
单击图文消息跳转链接
定义菜单171。此时,公众账号服务器会收到事件推送的XML格式消息,开发者可根据需求读取相关字段并进
行处理即可。公众账号服务器收到的事件推送的消息格式如下:
<xml>
<ToUserName><!『CDATA[toUser]]></ToUserName>
<FromUserName><!『CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
一H一m 讪一
版权声明:本文标题:基于微信公众平台架构的应用系统开发 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1714047414a663119.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论