蔡利军,周益飞
(武汉大学 信息中心,武汉 430072)
微信公众号在财务查询服务中的应用
蔡利军,周益飞
(武汉大学信息中心,武汉430072)
微信公众号平台已经广泛搭建,从数量、覆盖面的深度及广度都呈现急剧上升的趋势。目前平台功能已经从推送信息转向提供交互服务和加强沟通,在提供信息服务过程中,灵活方便的查询功能更能满足用户的需要。
微信公众号;开发模式;财务查询
随着移动终端对生活各方面的渗透,微信公众号平台正在影响大众的日常生活,微信公众号提供的内容包罗万象,全面实现着信息管理、功能服务等各种传播功能。目前大而全的信息发布已经不能准确定位受众,无法满足用户日益增长的需求,因此精确定位、针对特定人群或某类用户的特殊需求进行服务成为微信公众号平台功能的新趋势。
在财务管理信息化的进程中,已经经历了电算化、网络化的阶段,在目前互联网加的时代,通过移动终端提供各种便捷的财务查询服务,已经成为体现财务信息化发展水平的重要标志。由于微信被公认为目前唯一拿到移动互联网门票的应用,本文就以高校财务查询为例,介绍微信公众号提供的自定义菜单功能和开发模式,实现简单的查询服务。案例采用广泛流行的PHP、MySQL程序语言和数据库实现。
微信公众号是微信公众号所有者(政府、组织或个人等)进行信息推广、与用户互动交流及提供服务的平台,公众号通过消息、事件、菜单等交互方式为用户提供服务。例如:公众号“招商银行信用卡中心”为持卡人提供信用卡绑定、查询信用卡账单、额度及积分;快速还款、申请账单分期;微信转接人工服务等功能,同时还为非持卡人提供微信办卡功能。
使用微信公众平台之前需要先在微信官方网站上注册微信公众号,在注册过程中需要进行信息登记,要求选择相应的运营主体是组织还是个人,根据运营主体的不同,要求提供不同的资质材料及证明。当确定运营主体为组织时,就可以选择公众号类型是订阅号还是服务号。服务号默认可以自动获得自定义菜单,可以申请微信认证获得高级接口权限。以武汉大学财务部为例,由于财务公众号平台旨在为用户提供交互式服务,因此选择服务号作为武汉大学财务公众号的类型。
微信公众服务号消息接口为开发者提供了与向用户进行消息交互的能力,对于成功接入消息接口的公众服务号,当用户发消息给公众号时,微信公众平台服务器会使用HTTP请求对接入的网址进行消息推送,第三方服务器通过响应包返回个性的回复,从而达到回复消息的目的。也就是说公众服务号可以使用自己的编写的程序来和用户对话。
使用了开发模式的微信公众号会成为一个配备了一系列指令规则的账号,当用户关注公众号,发送对应的指令给公众号之后可以获得相应的查询结果。而这些规则的逻辑需要公众服务号的开发者根据公众平台的开发规则在后台服务器实现。用户、微信后台和需要开发的公众号后台的服务器三者之间的交互关系如图1所示。
图1 用户、微信后台和公众号服务器间的交互图
图1所示的具体交互过程描述如下:
(1)用户在手机的微信上向公众号发送一条消息,这条消息会通过网络到达微信的后台;
(2)微信后台收到消息后,把消息转发给公众号的服务器;
(3)公众号服务器收到请求后,解析消息格式,根据用户内容和自己的服务器程序,查询出需要返回给用户的消息,然后封装消息返回给微信后台;
(4)微信后台把公众号服务发来的消息转发给用户的微信手机客户端,这样用户在手机客户端就可以看到公众号发来的微信消息了。
通过这个过程可以看到公众号服务器要做的事情是:先获取微信后台发过来的消息,然后根据消息实现自己的业务逻辑,最后发送返回消息给微信后台。因为微信服务器公众号服务使用的是HTTP协议,所以在公众号服务器上必须要运行一个HTTP服务和相应端口。本文使用常见的Apache作为HTTP服务,PHP为开发语言,与MySQL数据库搭配一起来实现微信公众号查询服务。
用户关注微信公众号后,自定义菜单能够帮助公众号丰富界面,增强用户与微信公众号互动,让用户更好、更快地理解公众号所拥有的功能。目前自定义菜单最多包含3个一级菜单,每个一级菜单最多包含5个二级菜单。一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分将会以“…”代替。自定义菜单内容的参数及说明如表1所示。
表1自定义菜单参数说明
创建菜单时,需要将菜单内容组织成如下结构(财务部微信公众号的简单范例),以post的方式向微信服务器提交:
为了实现用户自主查询财务信息,我们需要先在微信开发者中心启用服务器配置,开启回调URL和Token,URL就是支持PHP和MySQL环境的公众号服务器地址,可以自己搭建或租用虚拟空间,Token缺省设置为weixn。这样,微信公众平台帐号就启用了开发模式。
创建自定义菜单和调用开发模式高级功能都需要使用Accees Token,Accees Token相当于进入微信后台各种接口的钥匙,在微信公众号开发模式中占据重要的地位。access_token是微信公众号的全局唯一票据,正常情况下access_token有效期为7 200秒,重复获取将导致上次获取的access_token失效。
微信公众号可以使用AppID和AppSecret调用接口来获取access_token,AppID和AppSecret是在注册微信公众号后由微信提供的第三方唯一凭证和密钥。获取Access Token接口的网址如下,执行下面请求后,接口以JSON格式返回获取的全局唯一口令和有效时间。
https://api.weixin.qq.com/cgi-bin/token?grant_type= client_cr edential&appid=
为了能够实现查询服务,我们需要在公众号服务器后台编辑index.php文件,首先,定义一个类wechatCallbackapi,并在类中定义一个方法receiveText()用于接受用户发送的查询信息,用户向微信公众号发送文本消息时,微信公众号接收到的XML数据格式如下:
<xml>
<ToUserName><![CDATA[接 收 方 微 信 号 ]]></ ToUserName>
<FromUserName><![CDATA[发送方帐号(一个OpenID)]]></FromUserName>
<CreateTime>消息创建时间(整型)</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[文本消息内容]]></Content>
</xml>
其次,定义一个方法responseMsg(),在responseMsg()方法中,先提取消息类型,从而实现各种消息类型的分离,然后为文本消息类型定义接收方法函数transmitText(),返回消息的主要特征值,组成文本消息作为内容回复。微信公众号回复用户文本消息时的XML数据格式如下:
<xml>
<ToUserName><![CDATA[接收方帐号(一个OpenID)]]></ToUserName>
<FromUserName><![CDATA[发送方微信号]]></ FromUserName>
<CreateTime>消息创建时间(整型)</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[回复的消息内容]]></Content>
</xml>
最后为了方便说明查询方法,假设当关注的用户输入“工号+‘工资’”时,返回该用户当月的工资,实现的关键代码如下。
在该方法中,包含了query.php,即查询工资的php文件,通过修改receiveText()方法中的判断条件,对应不同的php查询程序文件,我们就能实现不同的查询功能,返回用户所需的各种财务数据。
微信公众号是移动互联网时代的新式平台,作为财务管理者要主动适应时代的发展,积极的利用这个平台为财务服务工作提供便利。微信公众号查询在高校的应用,使得高校财务部的服务更加人性化,和用户的信息沟通更加便利和有效。财务部的管理人员部署和实施微信公众号服务也体现出现代财务管理的理念和新模式。应进一步结合微信的认证功能,完善公众号的各种查询服务,充分发挥其在财务管理方面的积极作用,提升高校财务部的综合服务能力。
主要参考文献
[1]方倍工作室.微信公众平台开发最佳实践[M].北京:机械工业出版社,2014.
[2]钟志勇,何威俊,冯煜博.微信公众平台应用开发实战[M].北京:机械工业出版社,2014.
[3][美]W Jason Gilmore.PHP与MySQL程序设计[M].第3版.朱涛江,等,译.北京:人民邮电出版社,2009:320-347.
10.3969/j.issn.1673-0194.2016.11.042
F253.7
A
1673-0194(2016)11-0073-03
2016-01-27