基于微信公众平台的银行应用系统的设计
2015-09-21黄美璇
黄美璇
(黎明职业大学信息与电子工程学院,福建泉州362000)
0 引言
微信是腾讯推出的一款跨平台的免费即时通讯应用(APP)。[1]微信公众平台是基于微信的功能模块。个人或者企业都可申请一个公众账号群发推送、自动回复以及一对一实现和特定群体的信息交流。[2]微信银行是银行基于微信公众平台向微信用户提供各类银行服务。目前,多数银行一般采用瀑布模型开发微信银行应用系统,这种方法导致每当微信发布新的接口API时,系统就需要进行大量的改造或者重构。针对此问题,本文提出一种模块化的分层设计方法,运用UML建模技术构建一个系统稳定、扩展性能好的微信银行应用系统,该系统能在微信公众平台接口发生变化时,不调整或者简单调整即可使用。
1 瀑布模型
瀑布模型将系统开发过程严格规定为固定次序联接的若干阶段工作。该模型是一种理想化的线性模型,适用于需求明确且很少变化的系统开发。[3]采用瀑布模型开发微信银行应用系统,当微信公众平台接口发生变化时,微信银行应用系统就需要进行大量改造或者重构,造成开发周期过长和开发资源浪费。显然采用瀑布模型开发微信银行应用系统无法克服接口变化引发的问题。
2 系统功能设计
2.1 需求分析
通过分析银行的业务特点及银行客户的需求,确定微信银行应用系统的业务功能包括查询类业务、金融类业务和营销类业务三大功能。其中查询类业务功能包括产品和网点信息查询、优惠活动查询等常见问题的查询功能;金融类业务功能包括账户绑定、汇款缴费、银行卡挂失、信用卡还款、服务预约、微客服等功能;营销类业务功能包括营销广告推送、活动推广等功能。系统用例设计如图1所示。
2.2 总体设计
图1 微信银行应用系统用例图
设计该系统的基本思想是:将微信银行应用系统进行分层设计,并将功能进行合理划分、封装成不同模块。各模块、各层之间采用XML定义接口,利用接口的自描述特征保证其松耦合,使得微信银行应用系统稳定和易于扩展。系统总体架构如图2所示。
图2 微信银行应用系统架构图
2.2.1 内部接口设计
鉴于XML语言具有很强的可扩展性、可重用性、自解释性以及在HTML页面中嵌入可大大扩展HTML在网上的应用范围等优势。[4]微信银行应用系统各模块、各层之间均使用XML+HTTP的方式进行数据交互。为了保证内部接口的稳定性和可扩展性,内部接口设计采用XML自描述语言。利用这类语言定义接口可使接口独立于应用系统,降低系统内各个程序之间的耦合,从而实现系统的稳定和可扩展性。
2.2.2 外部接口设计
根据腾讯公司已公布的接口进行设计,接口主要包括:基础接口、发送消息接口、自定义菜单接口、账号管理接口、数据统计接口、微信智能接口、多客服接口。[5]
2.2.3 可扩展性设计
鉴于微信银行未来交易的快速增长,除了内部接口采用自描述语言XML设计,实现系统的扩展外,还可采用集群技术来扩展系统性能。即通过增加服务器或者虚拟服务器,同时在服务器之间接入负载均衡器或者安装负载均衡软件达到负载分流实现扩展功能,并通过会话复制技术实现各服务器节点会话数据同步。[6]
3 关键技术实现
3.1 接入模块
接入模块主要对来自微信服务器的HTTP请求进行签名验证,验证url是否有效,并把处理结果返回给微信服务器。程序片段如下:
3.2 客服管理模块
一般微信用户通过输入关键字进行查询,微信服务器会立即呈现相应回答,但是无论建立多大的词库,有时还是不能满足微信用户的查询,这时候系统就应该自动切换到人工服务。微信5.0以后开放了多客服的接口,使得系统转人工变成可能。[7]实现多客服功能的程序片段如下:
客服管理模块实现了:通过获取微信用户发过来的文本消息,如果满足if里面的条件,会自动做出回答;如果不满足,就会向微信服务器返回一条消息,微信服务器自动把该消息转到多客服,这时候银行客服人员只需要在电脑端安装一个多客服客户端,或者微信客户端,即可接收消息,对用户进行一对一的沟通。
4 结语
本文针对传统的瀑布模型开发微信银行存在的问题,提出了一种模块化的分层设计方法。将微信银行应用系统进行分层设计,并将功能进行合理划分、封装成不同模块。各模块、各层之间采用XML定义接口,利用接口的自描述特征保证其松耦合,构建一个系统稳定、扩展性能好的微信银行应用系统。具体方案实施及将关键技术整合实现一个微信银行应用系统是该研究工作的下一步重点。
[1]林泽斐.基于微信公众平台API的移动OPAC设计与实现[J].农业图书情报学刊,2015,27(2):44-46.
[2]甘宇健,毛灵芝,向龙莲.银行智能微信公众平台设计与实现[J].软件导,.2014,13(2):6-8.
[3]闫帅,许鹏翔.基于瀑布模型与敏捷开发相结合的项目管理方法探讨[J].电子技术与软件工程,2013(18):67.
[4]徐进强.XML语言在Web开发中的应用研究[J].软件导刊,2013,12(12):33-35.
[5]腾讯.微信公众平台开发者文档{EB/OL].{2014-3-26}.http://mp.weixin.qq.com/wiki/home/index.html.
[6]甘荣石.基于微信平台的移动银行应用架构研究[D].广州:华南理工大学,2013.
[7]微信开发.微时代微信咨询网[EB/OL].{2014-6-11}.http://www.wechatstyle.com/weixinkaifa/,