一 概述

可能你在使用支付宝时,感觉蛮简单的,不外乎就是绑个卡,验一下支付密码,银行卡的资金就被扣掉了;但是背后涉及的技术架构其实蛮复杂的,比如从外部合作来说,就涉及到了银行,银联,网联,商户,用户,公安,电信运营商,安全防控公司,服务器运营商等等;如果从具体业务来说,大致分成入金类业务,出金类业务,清算对账类业务,差错处理类业务;因为支付业务涉及的方方面面很多,所以导致了技术架构蛮复杂的,所以本来试描绘一下支付系统的轮廓,能让人对第三方支付有一个全貌的大致了解。

二 支付系统架构

1 支付系统的整体介绍

一般来说,支付系统从架构上来说,分为四层;分成网关层,核心层,产品层和运营支撑层;

网关层:网关一般是通过对银行,银联,网联,第三方支付的能力进行包装然后提供原子能力给上层系统调用;比如接入网联的快捷,网关,代付,清算对账,差错处理能力后,提供给其上层系统调用;另外网关一般还会维护路由系统(简单来说,路由就是帮一笔交易通过一定规则比较后,选择合适的道路到渠道侧)。

核心层:支付系统的核心模块,一般包括会员系统,风控系统,交易系统,收费系统,订单系统,清算系统,账务系统,签约系统,数据系统等;

产品层: 通过对核心层提供的服务组合起来,大体来分,可以组合成入金类产品,比如组合成充值产品,转账产品等,还有出金类产品,比如提现产品,结算产品;然后通过接口,收银台,钱包,官网,内部运营后台等具体产品系统来提供服务;

运营支撑层: 用来支持核心系统的服务, 包括运维监控系统、日志分析系统等。

简单来说,一笔交易进入第三方支付系统,首先会经过产品层,然后经过核心层,最后经过网关到达渠道侧,同时支付机构还可以通过运营支撑层对这笔交易进行监控维护;

比如用户买一个肾X,需要支付9998元,那么调用支付机构的服务后进入收银台,选择快捷支付,那么这个其实就是首先经过了产品层的收银台,然后产品层收银台的背后核心层也会参与本次交易,比如涉及到了会员系统,对该用户会进行校验,还涉及到风控系统,风控会对这笔交易进行判断,能否放行,还涉及到了签约系统,用户选择的银行卡是否进行了签约,还涉及到了收费系统,该笔交易手续费多少,还涉及到了订单和交易系统,为该交易生成订单,方便以后查询核对;如果交易完成后,还涉及到清算对账系统,该笔交易与渠道侧进行对账,商户侧对账,内部对账等,然后还会结算相应款项给商户;最后还会经过网关层,网关会为该笔交易选择合适的渠道进行资金转移,然后调用合适渠道的能力进行业务处理;同时支付机构可通过运营支撑,对该交易进行监测管理。

2 网关层

上文已经提到过,网关主要是封装各个渠道的差异,呈现统一的接口,然后提供给上层系统调用。同时路由一般也维护在网关层;这里重点介绍一下路由。

简单来说,路由就是找合适的路。支付机构一般会对接很多渠道,比如直连渠道,间连网联,银联,还有其他第三方支付机构等,那么一笔交易来了,到底该走哪条路呢,这就是路由干的事。

路由一般分成人工路由,规则路由;人工路由指运营人员指定支付渠道和产品之间的映射关系,就是人工帮忙找路;规则路由就是按照业务要求设置各种路由规则,系统帮忙找路;

路由设计时,一般从以下方面进行考虑;费率,单笔费率,总额费率,阶梯费率等;营销策略,比如渠道侧提供优惠,单笔优惠金额,单笔折扣比例,补贴总额度,活动时间等;交易限额,日限,笔限等;渠道类型,代扣,快捷,网银,第三方支付等;银行卡类型,借贷记类型,对公对私等;服务质量,掉单率,网络延迟等;

3 核心层

一般包括会员系统,风控系统,交易系统,收费系统,订单系统,清算系统,账务系统,签约系统等;

交易系统:交易系统是一种组合能力,比如一笔交易进来,交易系统可能会调用会员系统,风控系统,充值产品,订单系统,收费系统等等对该笔交易进行处理;

会员系统:包括对用户、商户的实名身份、银行卡、基本信息、协议的管理;

订单系统:对交易订单的管理,比如单笔顶单,多笔订单支付请求的处理,还有查询订单的处理等;

收费系统:支付机构的盈利方式之一,一笔交易通过第三方支付完成,总得给点过路费吧;收费系统一般按照单笔定额,单笔比例,混合收费,包月年封顶收费等进行;

签约系统:如果通过银行卡进行快捷支付,签约是需要进行签约的,那么银行提供的签约能力,解约能力等都由签约系统提供;

清算,账务系统指围绕财务会计而产生的后台资金核实、调度和管理的系统,包括会计核算: 提供会计科目、内部账务、试算平衡、日切、流水登记、核算和归档的功能。资金管理: 管理公司在各个支付渠道的头寸,在余额不足时进行打款,对第三方支付公司,还需要对备付金进行管理。清算分润:对于有分润需求的业务,还需要提供清分清算、对账处理功能。

风控系统是支付系统必备的基础功能,所有的支付行为必须做风险评估并采取对应的措施;信用系统是在风控基础上发展的高级功能,京东的白条,蚂蚁花呗等,都是成功的案例。风控系统一般进行三种校验,交易放行,交易拦截,交易验证增强;

4 产品层

通过对核心层提供的服务组合起来,大体来分,可以组合成入金类产品,比如组合成充值产品,转账产品等,还有出金类产品,比如提现产品,结算产品;然后通过接口,收银台,钱包,官网,内部运营后台等具体产品系统来提供服务;

入金类产品整体上来说,可以提供如下能力:

(1)快捷,代扣支付

用户在完成绑卡之后,在支付的时候,不需要再输入卡或者身份信息,仅需要输入支付密码就可以完成支付。对于小额度的支付,甚至可以开通小额免密,直接完成支付。 这种支付方式不会打断用户的体验,是目前主要的在线支付方式。

(2) 网银支付

用户在支付的时候,需要跳转到银行网银页面来完成支付。在网银页面,需要输入用户的卡号和身份信息。这种支付方式会中断用户当前的体验,一般仅用于PC Web上的支付。 网银支付是封装银行提供的网银支付来实现。

(3)第三方支付

使用微信、支付宝等第三方支付平台来完成支付。使用时,一般需要用户预先安装支付平台系统(手机上),注册并登录到第三方支付平台,并且已经在该平台上完成绑卡等操作。 由于微信、支付宝已经被大量使用,用户也产生对这些平台的信任,该类支付往往是电商公司的主要支付方式。

(4)账户支付

也成为余额支付、零钱支付等。 指为用户建立本地账户, 支持充值,之后可以使用这个账户来完成支付。

(5)信用支付

如京东的白条,蚂蚁花呗等,指使用信用账户进行透支,类似信用卡支付。

出金类产品整体来说,就是提供转账、结算等能力

5 运营支撑层

支撑系统是一个公司提供给支付系统运行的基础设施。 主要包括如下子系统:

运维监控: 支付系统在下运行过程中不可避免的会受到各种内部和外部的干扰,光纤被挖断、黑客攻击、数据库被误删、上线系统中有bug等等,运维人员必须在第一时间内对这些意外事件作出响应,又不能够一天24小时盯着。这就需要一个运维监控系统来协助完成。

日志分析: 日志是支付系统统计分析、运维监控的重要依据。公司需要提供基础设施来支持日志统一收集和分析。

短信平台: 短信在支付系统中有重要作用: 身份验证、安全登录、找回密码、以及报警监控,都需要短信的支持。

安全机制: 安全是支付的生命线。 SSL、证书系统、防刷接口等,都是支付的必要设施。

统计报表: 支付数据的可视化展示,是公司进行决策的基础。

远程连接管理、分布式计算、消息机制、全文检索、文件传输、数据存储、机器学习等,都是构建大型系统所必须的基础软件,这里不再一一详细介绍。

三 支付业务商户侧流程

一般支付机构会通过接口,收银台,钱包,官网等具象产品为商户提供服务;那么商户侧使用支付机构的服务一般涉及到以下几方面。

  1. 签约和解约

在快捷支付、代扣等产品中,用户在使用前,需要先完成签约。商户侧负责收集用户银行卡的信息,然后调用支付机构的接口进行签约,可能支付机构会调用银行和银联的接口进行签约。签约后,后续的支付行为就使用签约号来进行,无需再输入个人信息。 和签约相对应,解约则是取消签约关系。

  1. 支付

支付是少不了的操作。支付前,商户需向支付机构下单,然后调用付款接口进行支付,一般提供快捷支付和网银支付能力;

  1. 撤销和退款

商户向支付机构下单或付款后,该笔订单由于一些原因,并不想真的执行,那么就可使用支付机构的能力进行撤销或退款;

  1. 查询签约状态

对于需要签约的交易,可以通过这个接口来查询签约状态。

  1. 查询订单状态

通过这个接口来查询订单状态以及退款的订单状态。

6 对账

通过FTP或者HTTP方式提供对账文件供商户侧对账。

四 支付业务中支付机构内部流程

一般会包括参数校验,支付路由,生成订单,风险评估,调用渠道服务,更新订单和发送消息这7步,对于一些比较复杂的服务,还会涉及到异步同通知处理的步骤。

  1. 执行参数校验

所有的支付操作,都需要对输入执行参数校验,避免接口受到攻击。

验证输入参数中各字段的有效性验证,比如用户ID,商户ID,价格,返回地址等参数。

验证账户状态。交易主体、交易对手等账户的状态是处于可交易的状态。

验证订单:如果涉及到预单,还需要验证订单号的有效性,订单状态是未支付。为了避免用户缓存某个URL地址,还需要校验下单时间和支付时间是否超过预定的间隔。

验证签名。签名也是为了防止支付接口被伪造。 一般签名是使用分发给商户的key来对输入参数拼接成的字符串做MD5 Hash或者RSA加密,然后作为一个参数随其他参数一起提交到服务器端。如支付网关设计所介绍,签名验证也可以在网关中统一完成。

  1. 根据支付路由寻找合适的支付服务

根据用户选择的支付方式确定用来完成该操作的合适的支付渠道。用户指定的支付方式不一定是最终的执行支付的渠道。比如用户选择通过工行信用卡来执行支付,但是我们没有实现和工行的对接,而是可以通过第三方支付,比如支付宝、微信支付、易宝支付,或者银联来完成。那如何选择合适的支付渠道,就通过支付路由来实现。支付路由会综合考虑收费、渠道的可用性等因素来选择最优方案。

  1. 评估交易风险

检查本次交易是否有风险。风控接口返回三种结果:阻断交易、增强验证和放行交易。

  1. 阻断交易,说明该交易是高风险的,需要终止,不执行第5个步骤;

  2. 增强验证,说明该交易有一定的风险,需要确认下是不是用户本人在操作。这可以通过发送短信验证码或者其他可以验证用户身份的方式来做校验,验证通过后,可以继续执行该交易。

  3. 放行交易,即本次交易是安全的,可以继续往下走。

  1. 生成交易订单

将订单信息持久化到数据库中。

  1. 调用支付渠道提供的服务

所有的支付服务都需要第三方通道来完成执行。一般银行渠道的调用比较简单,可以直接返回结果。一些第三方支付,支付宝,微信支付等,会通过异步接口来告知支付结果。

  1. 更新订单

对于同步返回的结果,需要在主线程中更新订单的状态,标记是支付成功还是失败。对于异步返回的渠道,需要在异步程序中处理。

  1. 发送消息

通过消息来通知相关系统关于订单的变更。风控,数据系统等,都需要依赖这数据做准实时计算。

  1. 异步通知

如上述流程,其中涉及到调用远程接口,其延迟不可控。如果调用方一直阻塞等待,很容易超时。引入异步通知机制,可以让调用方在主线程中尽快返回,通过异步线程来得到支付结果。对于通过异步来获取支付结果的渠道接口,也需要对应的在异步通知中将结果返回给调用方。 异步通知需要调用方提供一个回调地址,一般以http或者https的方式。这就有技术风险,如果调用失败,还需要重试。而重试不能过于频繁,需要逐步拉大每一次重试的时间间隔。 在异步处理程序中,订单根据处理结果变更状态后,也要发消息通知相关系统。

第三方支付业务流程介绍相关推荐

  1. 浅析我国第三方支付平台

    一.第三方支付平台介绍. 第三方支付平台是指前端联系着广大的消费者和商户,后端联系着各个金融银行,并且具备一定经济实力和信誉保障的第三方独立机构.国内的第三方支付产品主要有支付宝( 阿里巴巴旗下) . ...

  2. 西米支付:第三方支付的类型

    第三方支付的类型 本办法所称非金融机构支付服务,是指非金融机构在收付款人之间作为中介机构提供下列部分或全部货币资金转移服务: (一)网络支付: (二)预付卡的发行与受理: (三)银行卡收单: (四)中 ...

  3. 支付宝、微信等常用第三方支付接口费率介绍

    当前第三方支付接口接入主要包含的支付模式有电脑网站支付.手机网站支付.APP支付等,各第三方支付公司的支付接口费率也趋于相同,一般行业费率在0.6%左右,游戏.娱乐等虚拟业务的费率为1%,下面就整理出 ...

  4. 第三方支付机构和非银行支付机构的区别?第三方支付客户备付金介绍

    随着网络信息.通信技术的快速发展和支付服务的不断分工细化,越来越多的非金融机构借助互联网.手机等信息技术广泛参与支付业务.非金融机构提供支付服务.与银行业既合作又竞争,已经成为一支重要的力量.传统的支 ...

  5. 提现业务流程介绍与设计

    本文由作者 小狼Man 于社区发布 在上期文章"关于异步处理在支付环节的思考",笔者跟大家介绍了支付环节的一般流程.支付业务的关键在于入金,即把资金从消费者的银行卡转入第三方支付机 ...

  6. 第三方支付接口测试面试要点

    第三方支付接口测试面试要点 第三方支付接口测试,主要是看你的接口功能实现的是否满足需求,以及你的测试思路是否正确.因此,接口测试工程师要从以下几个方面来准备. 首先,我们需要了解第三方支付的流程; 最 ...

  7. 说说第三方支付接口开发及开发中遇到的坑爹问题

    前言 最近在做公司的支付接口,从微信支付到各种第三方的支付接口,还有点卡等支付,微信支付文档相对比较详细,虽然也不少坑,被各路开发人员吐槽,但是填的人多啊,所以是最好开发的,但是公司还有用到一些第三方 ...

  8. 曝华为新成立10大预备军团;被罚2500万欧元,苹果开放第三方支付;GitLab 14.8发布 | 极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 苏宓 出品 | CSDN(ID:CSDNnews) ...

  9. 央行发布声纹识别安全应用技术标准,适用手机银行、第三方支付

    雷锋网AI金融评论报道,10月9日,<移动金融基于声纹识别的安全应用技术规范(标准编号:JR/T 0164-2018)>由中国人民银行正式发布,即日起实施.也在近日,知情人士告诉雷锋网,& ...

  10. 区块链第三方支付已登陆菲律宾

    全球都在争先恐后的加快对区块链支付布局,在去年,区块链第三方支付平台秒链付就已登陆菲律宾,秒链付一上线,便抢占了区块链支付的制高点,率先完成数字货币支付的全面布局. 区块链第三方支付已登陆菲律宾 在论 ...

最新文章

  1. VS2013在Windows7 64位上变慢的解决方法
  2. SQL Server中的分页查询
  3. thymeleaf加载不了js引用_web前端教程之js中的模块化一
  4. Jenkins与Docker的持续集成实践
  5. python3连接mysql使用mysqldb_Python3 连接Mysql数据库
  6. BestCoder Round #39 解题报告
  7. Linux工作笔记-Linux常用命令(一)
  8. 你还不知道Redis 高延迟时发生了啥嘛?
  9. ubuntu18.04 ROS melodic—创建简单的机器人模型smartcar
  10. JSONOBject的fluentPut(key,value)方法:可链式设置元素
  11. OpenShift Security (1) - 红帽多集群安全管理 RHACS 的主要功能和技术架构
  12. 计算机安全最基础知识,计算机的分类(信息安全基础知识)
  13. Atlassian 修复严重的 Jira 认证绕过漏洞
  14. idea前进和后退快捷键_PR快捷键大全(喜欢记得收藏!)
  15. 再探结构体字节对齐问题
  16. 给oracle数据库某一列数据的前面或者后面增加字符,合并两列的值
  17. 软件测试论坛_进阶测试攻略——价值驱动的软件测试
  18. 如何用ESP32+LVGL实现给路由器加装屏幕
  19. JAVA程序入门(✨详解✨)
  20. 在线Api接口,网易云音乐api数据完整接口文档,QQ音乐在线api接口文档,电商api开放数据接口文档分享,小说ap接口,漫画api接口

热门文章

  1. 取石子游戏,威佐夫博弈的推理
  2. 希腊字母|罗马数字|中文数字大写
  3. Win10系统解决图片打开方式没有照片查看器
  4. matlab转换器dcdc,用 Simulink 设计 DC/DC 转换器
  5. HAL库配置 ADF4351 pll锁相环
  6. 英特尔hd630驱动_英特尔Iris HD Graphics显卡驱动64位_ intel驱动-PChome下载中心
  7. 海康网络摄像头实时预览OCX控件
  8. 云计算机根据部署,华为云计算FusionCompute环境部署实验之使用批量部署工具安装...
  9. XAMPP的安装及配置使用教程
  10. win10不能拖动文件到其它软件