
I
摘要
近年来,由于国内金融互联网化改革的加快,互联网电子支付通道变得越来越多元化,
不同支付通道的报文格式、通信方式、业务风格都有较大的差异,线上支付平台的作用,就
是整合这些支付渠道的共性和差异,从而降低金融机构的支付成本,提升用户的支付体验,
方便金融机构管理和维护不同的支付通道。线上支付平台一般由日间交易系统、日终批处理
系统、后台管理系统以及监控系统等系统组成。目前很多小型银行支付系统还在采用老旧的
单节点支付系统,这样的系统无法适用于高并发的互联网金融业务场景,因此需要一套高并
发的支付系统来进行替换。本文主要讨论的,是基于分布式微服务架构的线上支付平台的日
间交易系统。
本文以
Java
作为开发语言,
SpringBoot
作为开发框架,考虑到线上支付可能会出现的高
并发的场景以及系统的高可用性,对线上支付平台采用了分布式微服务的架构进行设计。本
文以
MySql
作为关系映射型数据库平台,以
Linux
系统作为操作系统,
RabbitMq
作为消息队
列,以
dubbo
作为
RPC
框架,以
Spring
原生的定时任务作为任务调度框架,以
Maven
作为
项目管理工具,设计和实现了线上支付平台的日间交易系统。该系统属于银行系统群中的中
台系统,拥有异步通知、超时查询、通道接入、通道路由、报文加验签、错误码映射处理等
基本功能,能实现委托代收、银行账户充值等业务场景。
本文分析了线上支付平台日间交易系统的需求,重点对数据库、系统的架构以及支付所
需的基本功能进行了设计和实现;另外对委托代收以及银行账户充值的业务流程进行了设计,
并给出了实现代码。
关键词
: JAVA
,
SpringBoot
,分布式,微服务,支付

III
目录
专用术语注释表......................................................................................................................................................... V
第一章 引言................................................................................................................................................................ 1
1.1 研究背景与意义.......................................................................................................................................... 1
1.2 所做主要工作.............................................................................................................................................. 3
1.3 论文的组织结构.......................................................................................................................................... 3
第二章 框架分析与设计............................................................................................................................................ 5
2.1 线上支付平台概述...................................................................................................................................... 5
2.1.1 简介.................................................................................................................................................. 5
2.1.2 系统架构..........................................................................................................................................6
2.2 支付平台日间交易系统需求分析..............................................................................................................7
2.2.1 系统概述..........................................................................................................................................7
2.2.2 功能需求..........................................................................................................................................8
2.2.3 业务需求........................................................................................................................................10
2.3 微服务架构分析与设计............................................................................................................................12
2.3.1 微服务架构介绍............................................................................................................................12
2.3.2 架构设计........................................................................................................................................13
2.4 分布式模型设计........................................................................................................................................ 14
2.5 数据结构设计............................................................................................................................................ 15
2.6 本章小结.................................................................................................................................................... 20
第三章 系统实现...................................................................................................................................................... 22
3.1 技术概述.................................................................................................................................................... 22
3.1.1 SpringBoot 简介............................................................................................................................. 22
3.1.2 分布式微服务框架 Dubbo............................................................................................................24
3.1.3 消息队列框架 RabbitMq.............................................................................................................. 25
3.2 支付平台日间交易系统流程设计............................................................................................................28
3.2.1 超时查询流程设计........................................................................................................................28
3.2.2 异步通知流程设计........................................................................................................................29
3.2.3 委托代收流程设计........................................................................................................................29
3.2.4 银行账户充值流程设计................................................................................................................31
3.3 数据库实现................................................................................................................................................ 33
3.4 微服务架构的实现.................................................................................................................................... 33
3.4.1 Maven 管理构建分布式项目的实现............................................................................................ 33
3.4.2 Dubbo 实现远程过程调用.............................................................................................................36
3.4.3 RabbitMq 消息队列的实现........................................................................................................... 37
3.4.4 定时任务的实现............................................................................................................................40
3.5 委托代收业务的实现................................................................................................................................40
3.5.1 upp-paygate 的实现........................................................................................................................41
3.5.2 upp-payment 的实现.......................................................................................................................41
3.5.3 upp-fundprocess 的实现................................................................................................................. 42
3.5.4 upp-connectors 的实现................................................................................................................... 44
3.5.5 upp-schedule 的实现...................................................................................................................... 45
3.5.6 upp-notify 的实现...........................................................................................................................47
3.6 银行账户充值业务的实现........................................................................................................................47

IV
3.6.1 upp-fundprocess 的实现................................................................................................................. 48
3.6.2 upp-schedule 的实现...................................................................................................................... 49
3.7 本章小结.................................................................................................................................................... 49
第四章 算法分析与性能测试.................................................................................................................................. 50
4.1 算法分析.................................................................................................................................................... 50
4.1.1 负载均衡算法分析........................................................................................................................50
4.1.2 分布式唯一流水号算法分析........................................................................................................53
4.1.3 加验签算法分析............................................................................................................................54
4.1.4 通道路由算法分析........................................................................................................................55
4.1.5 错误码算法分析............................................................................................................................57
4.2 性能测试.................................................................................................................................................... 60
4.2.1 测试准备........................................................................................................................................60
4.2.2 测试结果........................................................................................................................................61
4.3 本章小结.................................................................................................................................................... 62
第五章 总结与展望.................................................................................................................................................. 64
5.1 总结............................................................................................................................................................ 64
5.2 展望............................................................................................................................................................ 64
参考文献.................................................................................................................................................................... 66
致谢.............................................................................................................................................................................68

南京邮电大学专业学位硕士研究生学位论文 第一章 引言
引言
1
第一章 引言
1.1
研究背景与意义
今年来,移动通信技术和互联网金融发展势头迅猛,我国的移动支付产业呈现出了强劲
的发展态势。根据中国商业产业研究院公布的数据,截止到 2018 年底,我国的移动互联网用
户规模达到 8.17 亿,而使用移动支付的用户的规模也达到了 5.83 亿,同时 2018 年一整年,
非银行机构发生的网上支付业务达到 5306.11 亿笔,交易总金额也达到了 208.07 万亿元的规
模,与上一年比较,交易总笔数增长了 85.05%,交易总金额增长了 45.23%。移动支付从 2014
年开始流行并发展起来,从 2014 年到 2017 年,非银行机构的移动支付业务规模增速都超过
了 100%。由此可见,目前我国的移动支付业务拥有这庞大的用户群体、交易规模、和交易金
额,并持续保持着强劲的增长。
除了用户规模和交易规模的庞大,移动支付的应用场景和商业场景也越来越成熟。移动
支付广泛的应用于我们日常生活的方方面面,我们可以在线下购物,并在线上付款,其商业
场景基本覆盖了商场超市购物、餐饮消费等领域,并于 2018 年开始,逐步渗透到交通、医疗、
公共缴费等领域,用户只需一步手机,甚至不用出门,就可以完成生活中大部分的支付场景。
除此之外,移动支付也是互联网金融系统的重要组成部分,有了移动支付技术,用户在家也
可以完成银行理财购买、银行贷款申请、贷款还款、信用卡还款等金融业务。移动支付的出
现,可以说大大的改变了人们的生活方式。
同时,移动支付技术也在不断的进步和扩展。自从出现以来,移动支付从一开始的主动
扫码支付,发展到后来得到被动扫码支付,再发展到聚合扫码支付,这些支付都是基于二维
码或者条形码的支付方式。前两年推出了 nfc 支付,这种支付方式普遍应用于地铁中,使得
手机变成了地铁公交卡一样的东西。上述的支付方式,都依赖于用户掏出手机进行支付动作,
为了更加便捷的实现支付,不需要使用手机的刷脸支付应运而生。这种支付方式,只需要用
户事先授权,不需要掏出手机,通过人脸识别,就可以完成支付。基于这种支付方式,无人
小店这种新型的商业模式也开始出现,用户只需要挑选自己想要的商品,在走出小店后,就
会自动进行扣款。可以预见,在未来,随着支付技术的不断发展和成熟,人们的支付会越来
越便捷,支付技术的发展会进一步的改变人们的日常生活。
移动支付不仅仅在国内发展迅猛,也在朝着国际化的方向发展。例如在韩国,韩国的公
交卡 T-money 就可以通过支付宝来进行支付。目前,韩国已经有超过 1500 家商户可以通过支

南京邮电大学专业学位硕士研究生学位论文 第一章 引言
引言
2
付宝进行线上退税。除了韩国,澳大利亚也在广泛使用支付宝。据悉,支付宝还将在澳大利
亚的悉尼设立子公司——Alipay Australia。由此可见,中澳跨境电商成长得到了更好的撑持。
中国移动公司也开始发力。它在全球范围内巡视合作目标,从而开拓并扩大自己的移动支付
领域。在印度,支付宝也对印度的移动支付公司提供了技术支持,可以看到,中国的移动支
付不仅仅在中国十分普遍,也在持续的输出到许多其他国家,把移动支付带给中国人民的便
利以及改变,也带给了世界各国。
线上支付平台是互联网金融系统的重要组成部分,虽然许多大银行自身已经开发了高性
能的线上支付平台,但是更多的小银行、农信社还没有统一支付系统,或者还采用着较老版
本的线上支付平台。老旧系统存在着性能较差,很多功能不完善,在互联网金融的场景下,
无法满足高并发的业务的问题,也会提高银行企业相应的运营成本、支付成本和运维成本。
针对以上痛点,某公司推出了适用于互联网金融场景的线上支付平台,笔者在该项目中
主要负责该平台日间交易系统的设计和开发。该日间交易系统主要针对银行各种各样的日间
交易场景,能够帮助那些小银行扩展支付渠道,降低支付成本、提高支付效率,优化用户的
支付体验。该产品拥有下游通道接入、通道路由、报文加验签、异步通知、超时查询、错误
码映射等功能,能实现委托代收、银行账户充值等业务场景。
本文叙述的线上支付平台日间交易系统,以 JAVA 为后端开发语言,使用 SpringBoot 框
架进行快速开发,以 MySql 作为关系映射型数据库,以 Dubbo 作为 RPC 框架,以 RabbitMq
作为消息队列,以 Spring 原生的定时任务作为定时任务调度框架。在架构上,本系统采用了
分布式微服务的架构方式,把每一个功能点,都细分成一个服务单独进行部署,使系统的耦
合度下降,提高了系统的可用性。本文叙述的支付日间交易微服务系统,共分为支付网关、
线上收单、资金交换、通道网关、通知、日间批处理、监控这 7 个微服务应用;其中支付网
关是整个支付系统的外部入口,负责对所有外部请求进行限流、熔断、拦截、报文转换、日
志打印等处理;线上收单模块负责收妥外部商户的订单,对商户订单进行校验、登记等处理;
资金交换模块是整个支付系统的核心模块,主要负责对资金进行处理,该模块对接了银行的
核心系统以及通道网关,整合核心系统以及通道网关的资金处理能力,并统一对外提供资金
服务;通道网关负责外部资金通道的接入,并可以实现智能通道路由;通知模块负责异步交
易的结果推送;日间批处理模块负责运行各种日间的定时任务;监控模块负责监控整个支付
系统。这 7 个微服务应用各自负责不同的业务功能,微服务与微服务之间采用 Dubbo 实现同
步通信,采用 RabbitMq 实现异步通信,该系统能替代各银行原有的老旧系统,帮助银行更好
的整合并接入下游通道,为银行的各个互联网金融业务提供支付能力,并降低支付成本。该