随着第三方支付的兴起,消费者习惯的转变,传统的刷卡POS机面临着越来越严峻的挑战。现如今,随着这几年互联网行业的飞速发展,互联网技术的逐渐成熟,一系列支付产品的更新换代,支付企业在互联网思维的冲击和影响下,支付企业自身为了提高计费、工作效率和降低各种原因造成的计费失误,也在开始不断的投入人力和物力,旨在开发出一套完善的支付计费系统。新型的支付计费系统可以适应每一种市面上以及将来可能出现的支付产品,对每一类产品实行不同的产品业务线,确保做到各业务线协调统一。同时支付计费产品具有很强的包容性,走一条可配置化路线,做到尽可能实现:零代码满足业务。
随着社会的改革和发展,尤其是处于现在这个竞争激烈的市场环境下,如何应对一系列产品带来的计费问题,成为各个支付企业面临的最大难题。对于市面上的一系列支付产品,必须研发一类商品与之对应,让商户按需选择配置出来的商品,实现按年、按季、按月或是单笔收取费率的目的。每个商品对应每条业务线,每条业务线所对应的费率不尽相同。因此在这种条件下,就急需开发一套功能强大、操作便捷、技术完善的支付计费管理系统。
在当代,随着科学技术的迅速发展,尤其是个人终端的普及,更加速了人们的生活节奏,人们的消费也变得日新月异,如今都追求快捷消费。国内支付企业提供的计费产品不断经受着各式各样的支付产品的考验,计费功能也在不断丰富,特别是针对中国国情的计费需求。然而,目前国内的支付计费产品相比于国外成熟的计费产品来说还存在一些差距,因此迫切需要在很多方面进行改进。对于一个支付企业来说,快速、准确的计算出人们的每一笔消费费率才是最最关键的任务。当然,做好每一步支付计费可以极大的缩短人们付费的时间,也可以大大提高企业工作效率。
开发的这个支付计费系统,使用了一系类新的软件技术和软件思想体系,突破了以往软件系统的两层结构,逐渐向多层架构发展。采用灵活的、可配置化的折扣策略,用来吸引商户消费,从而带来实际收益。支付计费系统还提供了非常丰富的对外接口,同时提供了符合国际标准的银行付费接口,以适应各种支付产品和外部系统的要求。当然,对于市面上层出不穷的支付产品,对于这么多的厂商而言,清算周期有所不同,计费和核对也会有所不同,所以本系统采用,提供多种计费商品来对应每种不同的支付产品,实现商户可定制计费方案。支付计费系统本身是复杂且灵活多变,从另外一个角度来说,其配置工作也是复杂的。考虑到这种情况,将支付计费系统配置平台界面采用框架搭建,尽可能做到简洁易用、方便维护修改。
支付计费系统可以支持POS、mPos(类似手机大小的移动pos)、钱包、VV、时时付等多种支付产品,对每一种支付产品定制了多种计算费率的商品。对于每一种商品,有一套费率计算标准,商户只需要选定系统制定的商品,就能按照商户选择的商品调用暴露的dubbo接口实现计费。计费系统使用了非常先进成熟的互联网技术,开发出非常稳定可靠的支付计费系统,支付计费系统可以使交易更加的方便、快捷。同时该系统支持移动端,可以使支付计费更加普及到人们的生活各处。支付计费管理系统作为一款支付企业应用,目的就是为了帮助支付企业可以精确快速的计算每一笔支付交易费率,使支付企业高效的运行,减少企业运营成本。
支付计费系统对每一种支付产品,配置了多样化的计费商品,商户可以选择不同的商品来交易。对于提供给商户选择的商品,主要采用的是一种通用的按年、按季、按月的方式来实现计费,当然商户如果不选择商品则采取单笔计费方式。但是对于不同的支付产品,尽管对应的金额相同,随着交易的参数不同,其计费费率也可能不尽相同。这样做的好处是:可以让每一笔计费都做到精确无误,也可以方便系统进行费率计算,让交易变得更加得方便、快捷。支付计费管理系统分为一下几大模块:产品管理模块,商品管理模块,配置管理模块,协议管理模块,批量管理模块,用户管理模块,接口管理模块。
服务器:Linux
数据库:Oracle
程序语言:JAVA
开发环境:Eclipse,Windows
通过软件工程系统思想以及软件工程系统工程的方法,对系统进行分析设计的时候,根据用户至上的原则组织化、模块化,自上而下进行设计。根据软件生命周期的原则,支付计费系统的开发主要分为需求分析、可行性研究,概要设计,详细设计和测试维护这几个阶段。
本项目系统的开发流程大致分为需求分析、设计、实施这三个阶段。
系统分析阶段:在系统分析阶段,首先应该考虑到用户的需求,对用户需求进行可行性分析。需求分析在系统开发中扮演着重要角色,这阶段的工作质量会直接影响项目的质量,它是使系统合理、优化的关键阶段。
系统设计阶段:基于系统分析阶段确立的逻辑模型,设计新项目的物理模型,即智能计费系统软件的数据库以及总体结构的设计,同时给出相应的配置方案。进而进行重要的物理模型设计阶段。该阶段的主要工作是设计代码、互动界面以及处理方式。最后编写系统统计报告。
系统实施阶段:在系统实施阶段,根据分析、设计,参照物理模型,对设计好的系统实现软件的调试和编制、项目试运行、系统切换、项目交付使用,包括运行后的软件维护等一系列工作。
Bootstrap v3.3.7是Twitter推出的一个用于前端开发的开源工具包。是一个CSS/HTML框架,能支持当前主流的浏览器。目前比较受欢迎。Bootstrap v3.3.7的功能特性:
(1) 通过现成的UI组件迅速搭建前端页面;
(2) 高质量的中文开发文档;
(3) 响应式布局,根据窗口调整相应的布局样式;
(4) 完全开放源代码,并托管在GITHUB平台。
(5) 丰富的WEB组件
图2-1 Bootstrap 组织结构图
JAVA是一种可以跨平台且几乎完全面向对象的程序设计语言。主要是由两部分构成,分别是JAVA虚拟机和JAVA应用编程接口。接口是什么?通俗的说,接口就是用来做规范的。应用接口的主要作用是提供标准接口,提供独立于操作系统的接口,使 java应用程序跨平台运行。与此同时,在每一类操作系统中几乎都包含了java平台,这样做的好处是使得java程序得到快速的运行。
JAVA平台分为三个体系J2SE、J2EE、J2ME。Java语言是在C、C++语言之后才出现的,JAVA语言充分吸取了C和C++语言的优点,沿用了C和C++语言的许多语法,同时去掉了指针、内存申请和释放等影响程序健硕性的部分,可以说java语言是站在C、C++语言这两个巨人的肩膀上前进的。
JAVA的三大特性:封装主要是指将对象的属性和实现方法结合成一个整体,外部无法知道内部的实现细节;继承说的是定义一个新的类,但是它可以继承已有类的方法和属性,是已有类的一个扩展;多态通俗一点说就是不同的人,做的同一件事,采取不同的处理方法。
JAVA作为一种开源脚本语言,使用JAVA制作网页,只需要一次编写就可以到处运行。除了系统之外,代码可以做任何的更改。并且,JAVA是可跨平台的,所以可以在任意平台环境下开发、部署和扩展。
Oracle Database,又名Oracle RDBMS (Relational Database Management System,关系数据库管理系统) ,或简称Oracle。是目前最流行的客户/服务器或B/S体系结构的数据库之一。Oracle数据库在企业级的使用是非常广泛的,它是非常通用的数据库管理系统,拥有非常健全的数据管理功能,并且它是一个完备关系的产品;作为分布式数据库,它实现了分布式处理功能。Oracle数据库在世界上所有的数据库领域一直占据着领先地位,学习Oracle数据库知识,不需要区分所处的操作系统类型或是所使用的一些硬件的类型,它的所有知识都是通用的,不需要额外考虑外界因素。就目前来说,Oracle数据库是世界上最强大的关系型数据库管理系统。Oracle数据库中有很多的开发语言是采用java语言进行编辑的,正因为这样,JAVA和Oracle搭配可以更好的实现数据分离,是开发计费系统最绝佳的开发环境。
ORACLE的功能特性:
(1) 源代码使用 C、C++、JAVA和汇编语言进行编写,同时使用了多种编译器对其进行测试,保证了源代码的可移植性;
(2) 支持 Linux、Mac OS、Windows等多种操作系统;
(3) 为多种编程语言提供了 API。这些编程语言包括 C、C++、JAVA、PHP等;
(4) 支持多线程,充分利用 CPU 资源;
(5) 优化 SQL查询算法,大大的提高了查询效率;
(6) 拥有丰富的语言库,可以提供多语言支持;
(7) 提供多种数据库连接途径,如 TCP/IP等;
(8) 也有很多数据库操作的管理工具,让使用者可以轻松管理数据;
(9) 支持多种存储引擎;
Spring MVC是基于MVC的一个框架,不需要中间整合层来整合。它是spring的一个模块。 Spring MVC的整个执行流程:
支付计费系统是用JAVA语言开发的,相对于其他编程语言来说,我还是对于JAVA语言比较熟悉。这个项目的架构是使用目前比较流行的Spring MVC框架来进行搭建的。系统稳定可靠,代码简洁,重用性高。开发工具使用的是Eclipse,这也是业内比较成熟的编译器。并且大学我的本专业就是软件工程,所以我拥有面向对象的编程思想,并且在分析、设计、开发等阶段严格遵守软件工程思想。由于这是一个公司的项目,所以很多的技术问题是通过公司其他人的帮助共同商讨、配合完成的。
经济可行性分析,对于软件开发来说是一个必不可少的关键环节。经济可行性分析研究的目的,是希望以最小的成本开发出软件,以此达到经济最大化。简而言之,就是花最少的钱开发出最合适的软件。首先开发一款软件,应该从系统所使用的硬件和软件作为切入点。因为除去人力成本,这一块是软件开发最大的支出,本系统所采用的平台为windows,开发软件采用的为Eclipse,开发语言为JAVA。JAVA语言是现如今非常流行的web开发语言,该语言在企业级web开发上也是使用最多的。并且,JAVA技术具有非常多而且强大的特性,比如:可移植性;JAVA是纯面向对象开发的,功能非常的强大。可以说,没有JAVA语言开发不了的软件,C/S也好B/S也好。其次要考虑“系统研发费用”。本系统的开发环境是JAVA语言搭配Oracle数据库, Oracle里面很多的操作都是使用了JAVA接口,也有很多地方是采用JAVA语言进行开发的,而且本计费系统需要采集大量的数据,必然需要大型数据库Oracle。本系统主要用Eclipse实现功能代码的编码实现,使用Oracle对系统数据进行存储,修改和统计。本系统还使用了GIT仓库来实现代码的存储。
当然,还有一个很重要的事,就是得考虑的是系统上线之后的维护费用,因为该项目是一个web项目,所以当在首次交易支付时,选择对应的选项就可以直接进行支付计费,但是对于网页后台计费系统的维护还是非常重要的,软件运行过程中出现任何的系统错误或是缺陷,都会影响用户的每一笔交易计费,这时需要开发人员及时的去维护,同时为了提高系统软件的寿命,后期开发人员也得根据用户提成的新需求做出实时的改变。但是由于软件的代码可重用性高,扩展性强,另外软件运行环境稳定,所以本系统的维护成本比较低。
此项目是在公司项目组授权下为了开发之用,所以具有法律可行性。
综上所述,本系统具有技术可行性、经济可行性和法律可行性三大特性,适合开发。
支付计费系统是基于MVC架构而开发出的一款web端应用软件,为了使项目管理员和开发人员能够随时准确的去了解每一个支付产品对应的多种商品的计算费率情况,支付计费系统必须满足一下几个基本要求:具有友好、简洁的界面,可靠的数据存储,具有安全性、可靠性、稳定性、可配置性等特点。
(1) 简洁、可视化的界面。简洁、可视化的界面是指项目管理员和开发人员在使用本系统的时候,能够对本系统有一个大体上的了解,尽量做到一目了然,当然,友好的人机交互界面可以让项目管理员和开发人员更好的对每一个支付产品进行合理配置与之相对应的多个商品,可以非常方便的对每一个商品进行费率配置、管理。
(2) 可靠的数据存储。开发这个系统,是企业的需求。所以系统的数据都是来自于企业数据,自然是不允许存在数据存储丢失的情况出现的。要保证这些数据不被丢失,就必须拥有可靠的数据存储方式,因此,本系统在开发时采用了当下非常安全的Oracle数据库来存储企业数据。达到可靠的数据存储。
(3) 安全性。由于开发本系统存储的是企业内部真实的数据,所以是不允许与这个系统开发无关的人员看到系统相关信息,此时,就要求本系统要具有很高的安全性。采取相应的权限设置,实现项目管理者和开发人员的登录,确保项目管理者和开发人员才有权限对产品、商品和其对应费率进行修改、调整。通过限制权限设置,可以实现系统安全性高。
(4) 稳定性强。因为支付计费系统在用户、商户的每一笔交易中都是要需要使用到的,可以说,本系统在日常生活中使用频率非常的高,所以就要求系统具有很高的稳定性。超强的稳定性,可以让系统得到更多用户的认可与肯定,同事可以减少对系统后期维护的成本。
(5) 可扩展性。科技飞速发展,企业需求也必定会跟随支付产品的层出不穷而发生变化。支付计费系统必须随着企业的发展、产品商品的更新迭代而不断的加入不同的业务线来计算费率,所以在不影响现有功能的同时能够容易地对系统进行扩充,所以系统对dubbo接口的复用至关重要。
支付计费系统的使用者如下表3-1
使用者 |
相关人员 |
功能描述 |
外部系统 |
需要调用这款系统的其他系统 |
系统向外部提供dubbo接口供外部系统调用 |
项目管理员和系统开发人员 |
参与系统编程的开发人员 |
通过项目管理员提供的需求来开发程序 |
表3-1 支付计费系统使用者表
支付计费配置平台界面采用bootstrap框架,使用其各种模态框快速地搭建页面。
各个页面功能列表如下表3-2:
页面 |
功能细化 |
登陆 |
管理者、开发者登陆页面 |
首页 |
提示各类公告、各种工作内容更新提示发布 |
产品管理 |
产品创建向导、产品管理、产品属性管理等等 |
商品管理 |
商品定义、商品限制、商品查询 |
配置模块 |
参数定义、参数枚举值、参考对象 |
协议模块 |
商户费率申请、商户费率查询、计费流水查询等等 |
批量管理模块 |
批量修改费率、批量修改费率详情查询 |
用户管理模块: |
个人信息、设置修改密码、退出系统 |
接口管理模块: |
各种与外部系统交互的dubbo接口 |
表3-2 系统功能介绍表
在支付计费系统的UML建模中,可以以两个角色模型概况系统的主要功能:系统管理员和开发人员、外部系统。支付系统实现的流程可以主要分为以下几个用例。
系统管理员和开发人员用例:登录系统配置平台,创建产品,创建商品,商品查询,配置参数,设定参考对象,制定计费规则,商户费率申请,创建dubbo接口等事例。
外部系统用例:根据需求调用系统配置平台对外的dubbo接口,按需计算费率。
以下是系统的用例图:
图3-1系统用例图