APP下载

基于JAVA的支付系统的设计

2017-09-11李云波

微处理机 2017年4期
关键词:模块用户分析

李云波

(黑龙江外国语学院,哈尔滨150025)

基于JAVA的支付系统的设计

李云波

(黑龙江外国语学院,哈尔滨150025)

支付系统是为了解决人们支付问题的服务系统,支付系统是随着电子商务的发展而产生的便捷的支付方式。以往线下的现金支付既不方便又浪费资源,已经不能满足当今自动化、网络化的生活方式,支付系统便应运而生。从描述支付系统的介绍出发,分别从支付系统的需求分析、支付系统的主要技术以及支付系统的设计几个方面描述了支付系统,给出了系统的ER图和流程图等UML设计图。

系统需求分析;JAVA语言;支付系统设计;UML设计图;SpringMVC框架;Dubbo服务;Zookeeper框架

1 支付系统介绍

最早的支付系统只是解决了支付问题,并没有辅助支付的服务,包括日常对账等事务都是人工处理;后期添加了对账功能,提供了第三方支付平台对接接口。第三方支付平台的出现均衡了支付账户管理的风险;随着第三方支付平台的不断壮大,银行的支付系统作为三方支付平台的基础服务,主要侧重于清算、结算以及对账环节。不管支付系统经历多少迭代,其出发点都是为支付提供解决方案,让支付更简单,并且对安全有着较高的要求[1]。

2 支付系统的需求分析

随着科学技术的不断发展与更新,支付系统也在随之不断地进行完善,其工作目标不仅仅局限于支付系统技术更新换代,更注重将最新的开发技术与支付业务相整合。支付系统的需求分析相对于其他系统来说要更严谨和广泛,不仅仅要调研用户需求,更要大力挖掘市场需求和未来几年市场的发展方向[2]。由于支付类型较多,因此在需求分析环节需要针对不同类型的支付进行调研和分析。主要的支付类型包括对企业的代收、代付、企业网银等;对个人的快捷、网银、充值、提现以及鉴权等等。需求分析主要从以下几个方面展开,即:系统安全需求分析、用户需求分析,以及支付行业业务需求分析[3]。

2.1 系统安全需求分析

支付系统比其他的服务系统在安全方面有着更高的要求,系统不仅对用户的基本信息进行维护,更重要的是需要对用户的资金进行安全管理。支付系统对安全性有着极高的要求,主要体现在两个方面,首先是用户的资金安全,站在用户的角度上去考虑,只有保证用户的资金安全,才能得到用户的认可。说到资金安全,很难不让人想到一致性的问题,当用户的账户资金做减少的同时,肯定有相关的账户做增加,如果其中的某一个环节出现了问题,那么与此相关的两个账户中的资金都不得发生改变,并且需要用友好的文案提示用户,第一时间告知本次操作的结果,并合理地给出下一步处理方案,重新支付或是等待最终结果通知,让用户在更大程度上感知到自己的资金是安全的[4]。其次是用户的敏感信息安全,支付系统中存储了大量用户的敏感信息,例如姓名、身份证号、银行卡号等等,为了保证信息的安全,必须采用数据加密的方式进行存储,以确保用户的信息不被泄露。

2.2 用户需求分析

任何一个系统的需求分析必须站在用户的立场去考虑,首先要了解到系统能为用户做什么,要给用户提供哪些便利的服务,因此要着重对用户的使用习惯和基本要求做详细的分析。从用户的操作习惯和友好的提示信息等细节出发,深入挖掘用户的潜在需求,随着大数据时代的到来,可以对每个用户的行为数据进行分析与挖掘,并根据分析结果为用户提供更全面的定制化的服务方案,将支付和生活中其他的需求串联起来,更好地为用户提供更全面的服务[5]。

2.3 支付行业业务需求分析

随着科技的不断更新,支付系统也在不断地进行迭代,采用最新的、最安全的技术为用户解决支付问题。与此同时支付业务也在不断壮大,支付已经不仅仅是单一地为用户提供支付服务,而是为用户提供完整的金融解决方案。比如支付依赖的四要素鉴权服务,快捷支付依赖的短信验证服务,以及用户使用分期支付时的征信查询服务等等。随着支付行业的不断扩大,支付系统也在结合行业需求,逐渐完善与健全自身的服务范围[6]。

3 支付系统的主要技术

支付系统采用最新的框架和技术不仅实现了系统的高并发和高可用,同时也实现了系统内部各个模块之间调用的高性能,将同步的操作转换为异步处理,分布加异步的处理方式更能够发挥出并发的优势。

3.1 SpringMVC+Dubbo+Zookeeper

Spring MVC是一个轻量级的、具有强大功能的web框架。它充分利用了Spring庞大的注解库,降低了开发成本和难度,可以说Spring MVC提供了基于简单的JavaBeans的开发模式,简化了后台控制的开发。框架中的控制器并不是直接处理前台请求,而是将其委托给Spring中的其他beans,通过Spring提供的依赖注入特性,将这些beans注入到控制器中。Spring MVC具有两个主要的组件:处理器映射和视图解析器,降低了系统各个层次之间的耦合性。处理器映射的作用是根据请求来动态选择利用哪个控制器处理相应的逻辑;视图解析器的作用是合理地将获取到的数据进行渲染[7]。

当系统的服务没有达到一定规模的时候一般都是通过配置url地址进行访问,但是一旦服务越来越多,这样对于众多的url地址维护起来成本是比较高的,因此需要一个服务注册中心,将这些服务动态地注册和显示出来,使得服务透明化。dubbo分布式服务框架可以解决上述问题。dubbo具有五个主要的角色,分别是 provider、consumer、registry、monitor和container。其中provider是服务的提供者,负责将系统中的所有服务显示出来,供调用者使用;consumer是服务的消费者,负责调用远程的服务;registry负责服务的注册以及发现注册;monitor是监控中心,负责统计各个服务的调用次数和每次服务的调用时间;container则是容器,服务运行需要依赖到它[8]。

zookeeper是分布式应用程序的协调服务,将复杂的系统服务进行合理有效的封装,最终为用户提供简单、稳定的服务。zookeeper作为dubbo服务的注册中心,主要是解决分布式系统中集群部署应用的一致性问题。zookeeper的存储方式与文件系统类似,是基于目录节点的树形结构,其作用并不仅仅是记录数据,更重要的是维护与监控存储数据状态发生的变化,正因为可以及时监控到这些数据状态的变化,才能够实现对数据集群的良好管理[9]。

3.2 缓存和消息队列

要实现支付系统的高并发和高可用特征,缓存机制是必不可少的。支付系统的缓存采用redis实现。redis是基于键—值映射结构存储方式的缓存,其支持多种类型的value值,包括:字符串、列表和集合。由于redis支持多种类型的键值,因此,为数据的存储提供了极大的便利。其运行原理是:当接收到一个请求时,需要获取数据,这时系统首先会自动去redis中获取相应数据,若没有命中,即缓存中没有该数据,此时才会去数据库读取相应的数据,与此同时把读取到的数据存储到缓存中,当下次请求获取相同数据的时候就会从redis中直接读取,以此大大降低了数据库读写压力,同时也能在很大程度上提高响应效率。redis集群部署可以更好的作为缓存微系统提供服务,而且支持主从同步,数据可以从主服务器向任何一个或者多个服务器同步。redis集群部署可以减轻服务器压力,从而实现高效率。当主服务器进行读写时,另一个请求过来时会自动转移到从服务器进行读取。

支付系统对每一次请求的要求都非常高,既要保证每次请求都是有效的,还要保证每次请求都有最终结果状态。要很好地解决支付并发问题就要采用异步处理方式,实现高效地处理用户请求,支付系统采用rabbitMQ消息队列,实现异步处理。当服务器接收到用户请求时,要把请求记录到队列当中,这样不管多少请求过来,后台都能有序地进行处理,而且不会漏掉任何一个请求。rabbitMQ是一个典型的生产者-消费者模式,当接收到用户请求时,就会向消息队列中写入消息,就是生产者;当处理器从消息队列中读取或者订阅消息,并进行处理,就是消费者。支付系统要求每一次请求都是有效的,因此采用消息队列有效地解决这个问题,当向其他服务发送请求时,可能由于网络原因导致请求失败,这时并没有直接返回错误,而是继续尝试消费这条消息,直到在规定的时间内返回最终结果,这样大大地提高了系统的稳定性和吞吐量。

图1 支付相关表设计

4 支付系统的设计

下面从数据库设计和支付系统流程设计两个方面描述支付系统的设计。

4.1 数据库设计

支付系统是一个复杂的系统,因此对数据表设计的要求也非常高,不仅具有简单的管理商户和用户的数据表,更重要的是与支付订单相关的表,包括:支付订单表、路由表、日志表以及通知表等等。之所有这么多与支付订单相关的表,目的就是为了保证订单状态的一致性和完整性。这些表穿插了整个支付流程,包括:下单、校验、扣款、通知和对账等。支付相关的表设计如图1所示。辅助支付业务相关表设计如图2所示,主要罗列了系统资源、系统用户以及系统角色之间的关系。

图2 基础表设计

4.2 支付系统总流程设计

完善的支付系统包括八个主要模块,分别是:交易模块、风控模块、路由模块、网关模块、核对查询模块、通知模块、交易监控模块以及报警模块等。总体的支付流程为:用户发起一笔交易在交易模块会进行一系列的合法性校验,通过校验后会生成支付订单;支付订单发送到风控模块检查交易的限额以及风险等等;校验通过后流转到路由模块,为支付订单选取最优的支付通道,到达网关模块进行支付;银行会发送同步和异步通知到通知模块,根据不同类型的通知进行特殊处理,最后定时到银行系统查询支付订单的最终交易金额和交易状态。交易监控模块和报警模块穿插在整个支付过程当中,当发现哪个环节出现问题监控模块就会进行记录,并在一定的时间内给相关人员发送报警信息。

5 结束语

目前,各行业领域都经历着向智能化、自动化和网络化的升级。然而,支付这个不可或缺的金融环节却没有想象中的飞速进步,特别是B2B支付领域更是如此。安全性、机密性、复杂性等因素造成一种尴尬的景象:公司提供着最先进最前沿的互联网服务,却采用了最原始最落后的方式收取费用;公司同时为数千家企业提供智能化技术支持,却仍然需要大量人力手工地处理账目。本文设计的支付系统直面B2B行业支付痛点,以雄厚的技术实力和专业的金融服务,为高速发展的企业一站式地构建与之匹配的网络支付方式,其使业务与支付达到并驾齐驱的完美状态。

[1]马钰平.网上银行支付系统设计与实现[J].山东农业大学学报:自然科学版.2016,(6):945-948.Ma Yuping.Design and Implementation of Online Banking PaymentSystem[J].ShandongAgriculturalUniversityJournal:Natural Science Edition.2016,(6):945-948.

[2]周景春.基于SSL协议的电子商务支付系统的设计与实现[J].现代电子技术.2017,(2):167-170.Zhou Jingchun.Design and Implementation of E-business PaymentSystemBasedonSSLProtocol[J].ModernElectronics Technology.2017,(2):167-170.

[3]李毅兵,张哲.基于B/S模式的在线支付系统的设计与实现[J].电脑开发与应用.2012,(8):35-37.Li Yibing,Zhang zhe.Design and implementation of Online PaymentSystemBasedonB/SMode[J].ComputerDevelopment and Application.2012,(8):35-37.

[4]裴昂昂.小型商业银行支付系统的设计与实现[D].西安:西安电子科技大学,2015.Pei Angang.The Design and Implementation of the Payment System of Small Commercial Banks[D].Xi'an:Xidian University,2015.

[5]曹方.群雄逐鹿手机支付迎来爆发期 [J].上海信息化.2010,(11):46-49.Cao Fang.Qun Xiong Zhu Lu Cellphone Payment Confronting a Outbreak Period[J].Shanghai Informationization.2010,(11):46-49.

[6]范荣真.基于WAP的手机支付平台研究[J].华南金融电脑.2010,(3):92-94.Fan Rongzhen.Research on Mobilephone Payment Platform Based on WAP[J].South China Financial Computer.2010,(3):92-94

[7]张颖.基于WAP的手机支付中间平台设计研究[J].现代商贸工业.2009,(7):264-265.Zhang Ying.Design and Research on Middlephone Payment Intermediate Platform Based on WAP[J].Modern Commerce Industry.2009,(7):264-265.

[8]鲁婷婷.移动支付系统中客户端的设计与实现[D].上海:上海交通大学,2015.Lu Tingting.Design and Implementation of Client in Mobile Payment System[D].Shanghai:Shanghai Jiaotong University,2015.

[9]李宏达.移动支付技术风险及评估方法研究[D].上海交通大学,2013.Li Hongda.Research on Mobile Payment Technology Risk and Evaluation Method[D].Shanghai Jiaotong University,2013.

Design of Payment System Based on JAVA

Li Yunbo
(Heilongjiang International University,Heilongjiang,Harbin 150025,China)

Payment system is a service system to solve the problem of payment,which is a convenient way of payment with the development of e-commerce.In the past,offline cash payment was not convenient and waste of resources,and it has been unable to meet today's automated and networked lifestyle,and thus the payment system comes into being.Beginning with a introduction which descripts the payment system,the payment system is described from the following aspects:the demand analysis of payment system,the main technology of payment system and the design of payment system to give the system ER diagram and flow chart and other UML design.

System requirement analysis;JAVA language;Payment system design;UML design diagram;SpringMVC;Dubbo;Zookeeper

10.3969/j.issn.1002-2279.2017.04.020

B

1002-2279-(2017)04-0082-05

李云波(1976—),男,黑龙江省双鸭山市人,黑龙江外国语学院副校长,副教授,硕士学位,主研方向:数据库管理。

2017-04-01

猜你喜欢

模块用户分析
28通道收发处理模块设计
“选修3—3”模块的复习备考
隐蔽失效适航要求符合性验证分析
电力系统不平衡分析
关注用户
电力系统及其自动化发展趋势分析
关注用户
关注用户
如何获取一亿海外用户
集成水空中冷器的进气模块