一文看懂互联网支付系统架构

一、支付系统的简介

什么是支付系统?自古以来,所有的商业活动都会伴随着经济的收款与付款行为。随着时代的发展,记录收付款行为的方式不断迭代:古代的钱庄通过手工(算盘)记账,工业社会通过收银机机械记账……

货品与资金等价交换


       如今,互联网/移动互联网时代,我们的商业行为也一同进行了数字化与信息化的演变,这就是所谓的电子商务。
       支付系统伴随着电子商务的发展而出现,它为各类电子商务经营活动实现在线收付款交易以及管理交易资金等功能,获得支付牌照的第三方支付公司可以参与资金的核算及存管,简单说就是可以在合法期限、合法范围内挪用资金。是具有一定独立性的内部系统模块----很多公司称之为中台。

二、支付行业发展的前世今生

亿欧网上一篇中国支付行业发展史里的图片,既形象又简洁的代表了支付行业发展的前世今生:

微信图片_20191018133426.png

而近代的支付行业发展史,可简单描述为以下几个时代:

第一个是现金时代
第二个是刷卡时代

第三个是二维码时代
第四个是刷脸时代

                                                                       中国支付行业发展简史

三、互联网支付系统架构

以小编之前在第三方支付公司工作的经历来说,有幸参与了公司从0到1搭建支付系统(重构)的过程。完整熟悉了支付行业生态及产品业务,基于微服务分布式全新搭建的一套支付系统。查看另一篇文章,小编在支付公司的经历:

                                                                 聊聊我在第三方支付公司的经历

3.1 技术栈:

  • Java
  • SpringBoot/SpringCloud
  • MyBatis
  • Redis
  • Kafka
    • swagger2
    • ELK
    • Maven

 

3.2 设计原则

  1. 分而治之
    1. 微服务化:根据业务功能、不同的性能需求等将系统划分为多个微服务,每个微服务独立开发、独立部署、独立运行,拥有独立的数据库存储,各个微服务之间使用接口通信,不允许跨微服务访问数据库。
    2. 服务分层:支付系统系统的微服务按照在业务处理流程中的地位以及后续功能变更频率分为公共服务层、基础业务服务层、基础支撑服务层。
    3. 业务与平台分离:业务系统(包括公司的业务系统和商户系统)与平台从开发到部署完全分离,尤其需要强调的是公司的业务系统与公司在部署上也需分离,例如部分特殊的业务可部署在阿里云。
    4. 前后端分离:所有包含界面的子系统遵循该原则,后端负责提供基础的业务服务接口,前端负责展示界面的逻辑(前端包括客户端的JS、后续可能的APP界面以及部署在服务端的负责根据界面展示需求聚合请求的Node.js等)。
    5. 动静分离:静态资源和动态请求分离开发和部署,静态资源后期可考虑上CDN。
  2. 业务驱动设计:
    1. 处理流程不强行抽象:例如支付服务的不同支付方式的处理流程如果存在较大不同,则内部处理逻辑不强行抽象,避免各个环节均在判断的情况。
    2. 接口不强行抽象,根据业务适度抽象定义接口,避免大而全的接口出现
  3. 注重非功能性质量要求:
    • 性能:避免不必要的性能损耗,合适的追求性能提升
      • 异步优于同步,示例如下:
        • 如果微服务A的业务处理过程中,需要驱动微服务B进行相关处理,但是并不依赖微服务B的处理结果,则使用异步消息机制,避免各个微服务之间产生不必要的性能耦合;例如清算服务异步通知支付服务清算结果,账务系统驱动会计系统执行会计分录等。
        • 对上游渠道的通知处理,仅完成必要的处理后即返回,保证对上游渠道系统的友好性
      • 不追求强一致性,保证最终一致性
      • 微服务间同步调用采用HTTP协议,不使用二进制协议,保证数据交互的良好可读性
    • 可用性:充分考虑各种情况
      • 所有服务均采用集群+业务调用无状态化
      • 自动降级、限流

              3. 安全性

3.3 架构逻辑

系统整体采用微服务架构,各个微服务独立开发、独立部署、独立运行、拥有独立的数据库,各个微服务之间接口进行通信,不共享任何文件、数据。

系统逻辑上分为产品应用层、接入层,公共服务层、基础业务服务层和基础支撑服务层五层,外加跨各层的运维支撑的系统,如下图所示。

支付系统整体架构图

 

四、支付产品

支付产品是由支付系统对支付渠道进行封装而对业务方提供的支付能力,基础支付产品分类如下:

  • 账户产品:企业账户服务(充值、提现、转账等) 集团账户(分级管理、资金调拨等)
  • 基础收款产品:代收代付、分账、分润等
  • 基础付款产品:批量付款、委托结算等

互联网支付产品,结合支付场景和流程,产品的主要应用和分类又分为如下所示:

互联网支付产品场景

 

详细可查看移动支付网一篇较为经典的文章,既介绍了支付产品的业务和场景,支付系统的架构,又把几个典型的互联网电子商务公司的支付系统整体架构图罗列和讲解了一番,非常值得推荐:

                                         互联网支付系统整体架构详解

 

 

同名原创公众号: 程序大视界

 

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
对于大中台来讲,现在并没有十分严格的定义,每个企业对其的理解都是不同的,有的在技术上使用大中台模式,有的在业务上使用大中台模式,有的将两者相结合。“大中台,小前台”的机制最初阿里提出的时候,主要应用于O2O线上线下协同、电商等场景,对于电商来说,市场环境是瞬息万变的,而前台是主要的一线业务,这时就需要一个强大的技术中台提供快速设计方法和系统性后端服务,去应对市场变化,灵活快速的做出应对策略。 技术中台从技术角度出发,数据中台从业务数据角度出发,业务中台站在企业全局角度出发,从整体战略、业务支撑、连接用户、业务创新等方面进行统筹规划,由基础中台、技术中台、数据中台L合支撑来建设业务中台。 本套中台案例基于真实工业界业务讲解,将多种经过工业界验证的成熟技术解决方案呈现给大家,本套课程拒绝枯燥的理论,全程代码实操,通过项目驱动的方式,让大家能够真实体验中台工业界开发过程,帮助大家建立中台思维,学习本套课程全部内容可以帮助提高自主开发一套高性能高可用高扩展的中台系统的能力。本套案例集后端+前台+测试+运维一体,多方位的带你熟悉全过程。本课程将带大家实现一个真实的工业界中台项目,该项目是基于真实的知名互联网企业项目讲解,本课程将分为4个阶段: 第一阶段:会实现中台系统的大部分核心服务,包括:会员中心,商品中心,交易中心,商家中心,支付中心,友凡商城等等。 第二阶段:进一步完善中台系统的核心服务以及优化,包括:营销中心,搜索中心,店铺中心,缓存优化,数据库优化等等。 第三阶段:进一步优化以及完善产品服务,包括:前台系统,中台系统,友凡商城 友凡生鲜,友凡超市等等。 第四阶段:项目收尾阶段以及运维阶段,包括:压力测试,系统维护,系统部署,虚拟化方案,测试方案等等。 本课程包含的技术: IDEA集成开发工具 SpringBoot 2.0.8.RELEASE SpringCloud Finchley.SR2 Thymeleaf(模板引擎技术) 支付支付MyCat、MySQL、Druid  持续集成解决方案(Jenkins) 认证解决方案(JWT) 网关解决方案(Zuul) 负载均衡解决方案(Ribbon) 分布式事务+多线程+事件驱动 MyBatis+Redis+Quartz Ehcache+Hystrix Nginx(Web服务器) Restful AOP技术 性能压力测试Jemter VUE+jQuery+Ajax+NodeJS VUE+Element-UI 容器部署Docker Kubertenes Lucene、ElasticSearch(搜索) 设计模式、RabbitMQ Swagger2 文档生成工具 人工智能(RNN、LSTM)多语言开发(Python、Django)课程亮点: 1.与企业无缝对接、工业界真实业务场景 2.集后端+前台+测试+运维一体,多面学习技术链 3.多语言协调开发,熟悉语言应用场景 4.支持项目快速迭代和开发 5.引入人工智能智能客服系统6.使用微服务技术栈+前后端分离构建项目 7.引入全新的设计理念 8.全链路性能压力测试 9.分布式事务解决方案 10.事件驱动设计解决方案 11.多线程技术+设计模式的实战应用 12.分布式架构下实现分布式定时调度 13.集成MyBatis实现多数据源路由实战 14.集成SpringCloud实现统一整合方案 15 Kubernetes+Docker容器化部署和管理 16.大型系统分布式部署方案 17.高性能系统(支撑海量数据) 18.高并发下的服务降级、限流实战 19.实现高并发请求和实现高可用架构解决方案 20.全程代码实操,提供全部代码和资料 21.提供答疑和提供企业技术方案咨询企业一线架构师讲授,代码在老师的指导下企业可以复用,提供企业落地方案。  版权归作者所有,盗版将进行法律维权。 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序大视界

原创不易,请给点支持和鼓励吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值