移动支付虽已普及,但其高门槛另使绝大多数技术人员没机会深入了解支付平台的架构和设计技巧。
本书梳理支付平台的各个业务和技术细节,讲解支付架构原理和技术实现。既有支付领域端到端的全链路设计思路,也有关键技术方案的实现细节和经验总结。
提供很多代码示例,可帮助读者通过 SDK 软件工具包接入支付平台。
非技术读者也可以通过本书了解我国目前电子支付的现状和各种技术方案。
同类主题的技术书籍,国内少见,本书非常具有参考价值,是全面、深入学习支付平台架构不可多得的好书。
本书讲解支付平台架构相关的业务、规划、设计与实现,涵盖了第三方支付平台搭建所涉及的方方面面,包含支付收银台产品、融合支付产品、支付前端、交易引擎、支付系统、渠道管理与路由、账户与账务系统、风控系统等,对第三方支付平台搭建过程中可能涉及的行业监管与标准、系统基础架构、业务流程、技术和组件选型给出思路和指引。
全书总计6章。第1章讲解收银台的发展历史及其在历史进程中的具体表现形式,以及人们目前广泛使用的具体支付产品和表现形式;第2、3章从业务和技术的角度讲解整个收银台产品(从收银台SDK到收银台后端)的业务流程、技术选型和技术实现;第4章讲解第三方支付平台渠道管理和路由相关的内容,并从支付渠道的角度讲解中国银联、中国网联的业务和报文结构、支付机构备付金机制,以实例形式讲解如何接入中国银联的支付渠道;第5章讲解第三方支付平台的账户与账务系统,详细讲解第三方支付平台的记账、对账和核算等业务流程及技术实现;第6章讲解为整个支付平台提供安全保障的技术手段、实现场景和风控系统。
无论是对于想自建第三方支付平台的企事业单位、第三支付从业人员、传统金融从业人员,还是对于互联网支付金融行业的产品经理、技术经理、软件工程师、测试工程师等,本书都具有参考和借鉴价值。
第1章 收银台业务... 1
1.1 现金收银台... 2
1.2 POS机收银台... 3
1.3 Web收银台... 5
1.4 融合收银台... 8
1.4.1 短信代收费... 9
1.4.2 充值卡... 11
1.4.3 银行卡... 12
1.4.4 WAP支付... 15
1.4.5 支付宝... 17
1.4.6 微信支付... 20
1.4.7 代金券... 21
第2章 收银台系统... 24
2.1 收银台SDK.. 24
2.1.1 专用收银台SDK.. 25
2.1.2 融合收银台SDK.. 26
2.2 收银台的对外接入形式... 27
2.3 SDK架构概述... 27
2.3.1 SDK架构的设计特点... 28
2.3.2 用户端SDK架构... 30
2.4 技术选型... 31
2.5 收银台SDK接口设计实战... 32
2.5.1 接口设计原则... 33
2.5.2 收银台SDK接口设计... 34
2.6 SDK基础——动态加载实战... 39
2.7 SDK血管——网络传输实战... 44
2.7.1 网络通信协议选型... 45
2.7.2 开源网络库选型... 48
2.7.3 GZIP压缩技术... 51
2.7.4 登录态保持... 52
2.7.5 安全数据通信... 53
2.8 SDK通信——消息通信实战... 55
2.8.1 LocalBroadcastManager 56
2.8.2 LocalSocketServer 58
2.9 SDK持久化——数据库实战... 62
2.9.1 游标的使用... 63
2.9.2 事务的使用... 64
2.9.3 最佳实践... 65
2.10 SDK性能调优——多线程实战... 66
2.10.1 系统线程... 67
2.10.2 工作线程... 69
2.10.3 线程池... 70
第3章 支付后端技术实战... 72
3.1 业务架构... 72
3.1.1 产品层... 73
3.1.2 核心业务层... 74
3.1.3 数据支撑层... 75
3.1.4 技术支撑层... 75
3.2 支付系统技术栈探秘... 76
3.2.1 操作系统层... 77
3.2.2 虚拟层... 78
3.2.3 Web服务层... 78
3.2.4 数据存储层... 80
3.2.5 服务端技术... 81
3.2.6 终端层... 83
3.3 支付后端业务介绍... 84
3.4 支付后端的服务类型... 86
3.4.1 收单服务... 86
3.4.2 订单参数验证... 88
3.4.3 风控信息收集... 89
3.4.4 交易单提交... 90
3.4.5 支付渠道获取与路由... 91
3.4.6 通知服务... 93
3.4.7 退款服务... 94
3.4.8 查询服务... 95
3.5 支付后端的技术方案及技术实现... 95
3.5.1 Spring Boot简介及微服务搭建实战... 96
3.5.2 设计数据... 103
3.5.3 连接数据... 105
3.5.4 设计数据表... 113
3.5.5 鉴权与下发... 116
3.5.6 提交渠道订单... 117
3.5.7 通知商户... 119
3.6 商户对接... 124
3.6.1 进件... 125
3.6.2 注册账号... 127
3.6.3 生成商户公私钥... 128
3.6.4 配置同异步通知接口... 128
3.6.5 支付订单表... 128
3.6.6 支付服务类... 129
第4章 中国银联和中国网联... 132
4.1 中国银联介绍... 132
4.1.1 互联互通... 133
4.1.2 跨区跨行跨境交易清算... 134
4.1.3 银行卡的标准化... 137
4.1.4 银行卡的账户类型... 138
4.2 中国银联的业务... 138
4.2.1 收单业务... 139
4.2.2 清算业务... 147
4.2.3 代收代付.... 152
4.3 接入中国银联... 155
4.3.1 技术准备... 155
4.3.2 技术实现... 156
4.3.3 测试... 163
4.4 中国网联介绍... 164
4.4.1 中国网联的历史... 164
4.4.2 备付金... 166
4.5 中国网联的业务... 167
4.5.1 通信关系... 167
4.5.2 通信报文... 168
4.5.3 业务报文... 169
4.5.4 传输方式... 170
4.5.5 交易系统... 171
4.6 支付渠道与路由... 178
4.6.1 渠道管理... 179
4.6.2 展示路由... 180
4.6.3 交易路由... 181
第5章 账务系统... 182
5.1 账务系统的概念... 183
5.2 账户... 184
5.2.1 账户分类... 184
5.2.2 备付金账户... 185
5.2.3 账户模型... 188
5.3 记账... 189
5.3.1 记账方法... 190
5.3.2 方案选择... 190
5.3.3 触发记账... 191
5.3.4 权责发生制... 192
5.3.5 收付实现制... 193
5.3.6 实时记账机制... 193
5.3.7 缓冲记账机制... 195
5.4 对账... 195
5.4.1 账务核对... 195
5.4.2 平账... 197
5.4.3 账务核算... 198
5.4.4 日间和日终.... 199
5.5 技术实现... 200
5.5.1 数据定义... 200
5.5.2 技术实现之规则引擎... 203
5.5.3 技术实现之并行网关... 207
第6章 安全与风控... 211
6.1 准入... 212
6.1.1 从业范围限定... 212
6.1.2 支付牌照申请... 212
6.2 终端安全... 214
6.2.1 安全加密... 214
6.2.2 访问授权... 217
6.2.3 传输安全... 219
6.3 技术实现之终端安全... 222
6.3.1 中低安全级别的数据(DES)... 223
6.3.2 DES算法演进之3DES. 225
6.3.3 高安全级别的数据(AES)... 226
6.3.4 非对称加密(RSA)... 228
6.3.5 传输安全... 230
6.4 接口安全... 234
6.4.1 安全需求... 234
6.4.2 安全策略... 235
6.5 风控系统... 236
6.5.1 与支付系统的关系... 238
6.5.2 数据采集... 239
6.5.3 风控画像构建... 239
6.5.4 支付风控的过程... 241
本书对支付平台的各个业务和技术细节进行了梳理,讲解了背后的架构原理和技术实现。内容包括很多代码示例,开发者可以从中学习如何通过 SDK 软件工具包接入支付平台。非技术读者也可以通过书中通俗的文字介绍,了解我国目前电子支付的现状和各种技术方案。同类主题的技术书籍,国内很少见,本书非常具有参考价值。
——著名技术博客作者 阮一峰
支付业务是我做过的相当复杂的业务之一,其链路很长,涉及的实体也特别多,支付平台还要同时具备高可用性、高性能、高安全性、便利性、数据强一致性等特性。虽然移动支付已经融入我们生活中的方方面面,但由于它的高门槛,绝大多数技术人员都没有机会深入了解支付平台的架构和设计技巧。本书作者在支付领域有丰富的经验,熟悉支付领域端到端的全链路设计,书中的内容也是作者多年支付经验的总结,既有对支付平台整体架构的全面介绍,也有关键技术方案的实现细节和经验总结,是全面、深入学习支付平台架构的不可多得的好书。
——阿里巴巴前资深技术专家、《从零开始学架构》作者 李运华