图解渠道网关:不只是对接渠道的接口(一)

这是《百图解码支付系统设计与实现》专栏系列文章中的第(20)篇。点击上方关注,深入了解支付系统的方方面面。

主要讲清楚什么是渠道,有哪些类型的渠道,什么是渠道网关,渠道网关在支付系统中定位、核心功能、常见渠道类型、渠道网关的产品架构、系统架构等。

1. 前言

数字经济持续高歌猛进,支付系统每年数十万亿规模的交易额全部都需要和银行打交道,毕竟钱都在银行账户里。支付系统如何安全高效地和银行交互,准确无误地把钱从一个账户搬到另一个账户?答案就是渠道网关。

渠道网关是一个幕后英雄,终端用户是无法感知的,这个金融界的多面手,搭建起了用户、支付系统、银行、外汇机构间的桥梁。

今天我们将走进渠道网关的世界,揭秘它是如何长袖善舞,把各位高富帅和白富美的钱准确无误地从银行间账户搬来搬去。

2. 渠道网关在支付系统中的定位

从图中,我们可以看到,所有外部金融机构(渠道)打交道,全部都要通过渠道网关出去。不同的公司有不同的叫法,比如:渠道网关,金融网关等,本质就是一个意思。个人认为叫渠道网关更直白。

3. 渠道网关不只是对接渠道的接口

很多人以为渠道网关只是对接渠道提供的接口,其实没有这么简单。报文对接只是最基础的能力,大致有以下能力:

渠道接口对接:包括报文映射,加密解密,签名验签,文件下载,文件解析等。

渠道开关:渠道可用性管理。

渠道路由:渠道择优能力。

渠道咨询:业务适配管理。

差异处理:退款重发管理。

渠道网关的更多的核心能力介绍可以参考“5.渠道网关的产品架构”。

4. 常见渠道类型

渠道类型在各个公司的定义是不一样的,没有一个行业标准,且持续在发展。先讲几个当前仍然通用的分类。

4.1. 渠道分类

从资金流转的角度,渠道分为三大类:

4.1.1. 支付类渠道

这类渠道的核心作用是实现用户资金的流入。具体来说,它们将用户在银行账户中的资金转移到支付平台在银行的备付金账户。这个过程在我们日常生活中极为常见,典型的场景包括用户的充值操作和在线支付。例如,当你使用手机应用进行购物支付时,资金从你的银行账户流向商家的账户,就是通过这类渠道完成的。

4.1.2. 流出类渠道

相对于资金的流入,流出类渠道则处理资金的流出。这包括两种主要情形:一是将支付平台的备付金转移至用户个人或商户的银行账户,常见于用户提现或商户收款的场景;二是将资金从一个备付金账户转移到另一个,通常用于支付平台内部的资金流动性调配。这类渠道确保了资金在用户和商户之间的顺畅流动,是整个支付系统的重要支撑。

4.1.3. 外汇渠道

这类渠道涉及货币兑换和跨国资金转移,支持不同货币间的转换和结算。在跨境电商、国际旅游等场景中,外汇渠道提供了资金转换和结算的关键服务。随着全球化贸易的增长,跨境支付需求日益增加,外汇渠道的作用变得更加重要。

4.2. 支付类渠道

随着业务和技术的发展,支付类的渠道定义也是千奇百怪,或者说是与时俱进。下面是个人见解,仅供参考。

4.2.1. 卡

借记卡/信用卡支付:这是最传统且广泛使用的支付方式之一。用户通过输入卡信息进行支付,资金直接从其银行账户扣除。其中信用卡还有预授权、请款,2D、3D等场景。

还有所谓的预付卡,就是提前充值的支付卡,用户支付时,资金从预付卡余额中扣除。这个在支付平台一般不感知。

国外的信用卡普遍使用得比较多。

先绑定后使用token支付模式:

支付流程和明文支付差不多,只是发给渠道时发token,而不是卡明文。

卡的交易有所谓的四方模式:商户、收单行、卡组、发卡行。这里的四方指的是四种类型的机构。

4.2.2. 网银

通过跳转到银行网站完成支付。这个操作麻烦,成功率不高,在中国已经很少使用。国外还有不少。

4.2.3. 快捷支付

用户事先在支付平台绑定银行卡,支付时无需重复输入卡信息,便捷快速。这个是率先被支付宝发明出来的。

国外有些叫“一键支付”,差不多一个意思。

4.2.4. 代扣

代扣支付是一种银行或第三方支付平台在用户授权的基础上,直接从用户的银行账户或关联的支付账户中自动扣除款项的支付方式。

这种方式和快捷支付最大的区别在于:快捷支付是用户实时参与交易过程,有可能出风控挑战,比如OTP(短信验证码),或者密码等。代扣是提前授权,交易过程用户不会实时参与,也就没办法出挑战,要不成功,要不失败。

代扣广泛用于定期支付场景,如水电费自动缴纳、会员服务费、订阅服务等,还有就是滴滴打车这种,下车就走。这种方式免去了用户每次手动支付的麻烦,特别适合固定周期的定期付款。

4.2.5. 第三方钱包

基于第三方钱包账户基础之上的支付。在中国有支付宝、微信支付等,在国外有paypal,gcash等。

第三方钱包通常是一个综合支付工具,比如有钱包余额,钱包里面可能还绑定了银行卡、网银等。

跳转类:比如在京东APP下单,选择使用微信支付,就会跳转到微信APP。

非跳转类:比如在淘宝APP下单,直接后台调用支付宝的免密支付。

4.2.6. VA

Virtual Account, 虚拟账户。用户通过银行生成的虚拟账号进行支付,常用于无卡支付场景。在东南亚用得特别多。

简单地说,就是用户没有银行卡,但是又要在网上购物,那么支付平台调用银行生成一个VA,并把这个VA和订单绑定,再展示给用户,用户拿着这个VA,去银行的ATM把现金存进去,银行通知支付平台这个VA入账成功,支付平台通知商户发货。

4.2.7. OTC

Over-The-Counter。在支付场景下,和VA很类似,也是生成一个支付码,只是这个支付码是由7-11,肯德基等这些连锁店生成的,而VA是真实的银行账户。用户拿着这个OTC码去线下连锁店,给店员现金,店员给这个OTC码充值,连锁店系统通知支付平台支付成功,支付平台通知商户发货。

3.2.8 信用付

渠道根据用户的信用授予一定的额度,可以先消费,后还款。国外通常叫BNPL(Buy Now Pay Later)。

国内有支付宝的花呗,京东的白条。国外也有各种第三方金融机构,比如AKULAKU就是一个中国人在东南亚开的信贷平台。

支付流程和第三方钱包差不多,只是需要先做授权。

信用付与信用卡分期的区别:信用卡分期是以银行发行的信用卡为基础,信用付不是基于卡。在一些银行卡普及率不高的国家地区,信用付就很有优势。

4.3. 流出渠道

流出类渠道处理资金的流出。国际上通常是花旗,汇丰等这些全球性银行。国内的话各大银行都可以。

在国际上,同一家银行,可以指定不同的清算网络,这些清算网络有不同的额度、到账时效、手续费要求。比如同样的花旗,走ACH和RTGS的额度、到账时效、手续费就不同,需要根据业务类型来选择清算网络。

下面只做一些简单的科普。后面有时间单独开一章节讲流出。

1.TT(电汇 Telegraphic Transfer

  • 特点:通过电子方式进行的国际资金转账,常用于大额跨国交易。
  • 优势:速度较快,可以跨不同国家和货币。
  • 局限:手续费相对较高。

2. ACH(Automated Clearing House)

  • 特点:处理电子转账和直接借记业务,通常用于批量、小额、定期支付。
  • 优势:成本低,适合定期账单支付。
  • 局限:处理速度相对较慢。

3. RTGS(Real-Time Gross Settlement)

  • 特点:即时大额支付系统,按交易逐笔即时结算。
  • 优势:实时结算,安全性高。
  • 局限:主要用于大额交易。

4. BOOK(银行内部转账)

  • 特点:同一银行内部账户之间的转账。
  • 优势:实时处理,无需外部清算。
  • 局限:只限于同一银行的账户。

5. SWIFT(全球银行金融电讯协会)

  • 特点:提供安全、可靠的国际金融交易信息传输。
  • 优势:广泛的国际接受度。
  • 局限:不直接处理资金转移,只是信息传输。

6. SEPA(Single Euro Payments Area)

  • 特点:简化欧洲国家之间的银行转账,统一欧元区支付市场。
  • 优势:提高跨境支付的效率和降低成本。
  • 局限:只限于欧元支付。

7. FPS(Faster Payments Service)

  • 特点:英国的即时支付系统,提供快速支付处理服务。
  • 优势:适用于即时小额支付。
  • 局限:主要服务于英国国内。

8. CHAPS(Clearing House Automated Payment System)

  • 特点:英国的大额支付系统,提供当日结算。
  • 优势:适用于高优先级、大额交易。
  • 局限:成本较高。

9. TARGET2(Trans-European Automated Real-time Gross Settlement Express Transfer System)

  • 特点:欧洲中央银行的跨境支付系统,提供实时大额支付。
  • 优势:支持欧元区货币政策,安全稳定。
  • 局限:主要用于大额欧元交易。

中国央行清算网络:

1. 央行大额支付系统(High-value Payment System, HVPS)

  • 特点:主要处理大额和紧急支付,提供实时清算服务。
  • 应用:用于处理银行间的大额转账,如跨行转账、证券交易结算等。

2. 央行小额支付系统(Bulk Electronic Payment System, BEPS)

  • 特点:处理小额但批量的支付,通常是非实时的批量处理。
  • 应用:处理工资发放、社会保障金支付、公共事业缴费等小额批量业务。

3. 网上支付跨行清算系统(Online Payment Interbank Clearing System)

  • 特点:支持网上支付业务的跨行清算。
  • 应用:处理线上购物、电子商务等互联网支付业务。

4. 同城清算系统(City Clearing System)

  • 特点:在同一城市或地区内处理银行间的支付和清算。
  • 应用:适用于处理同城的支票、汇票等传统支付工具。

5. 跨行实时支付系统(Interbank Real-time Payment System)

  • 特点:支持银行间即时支付,提高资金流转效率。
  • 应用:常用于个人转账、即时支付需求等场景。

4.4. 外汇渠道

外汇渠道就是用于交换货币。在全球外汇市场中,主要对接的有巴克莱(Barclays)、汇丰(HSBC)、摩根大通(JPMorgan Chase)等。

外汇是一门很专业的领域,后面有时间单独开一章节讲。

5. 渠道网关的产品架构

通过上图可以看出来,渠道网关核心能力包括:

  1. 对上提供资金类和信息类服务。资金类包括支付、退款、预授权、请款、流出、外汇等,信息类包括签约、解约、渠道咨询、渠道路由等。
  2. 内部的运维运营能力。包括渠道开关、错误码管理、差错处理等。
  3. 底层的渠道接入与配置。渠道接口映射、清算文件解析等。

6. 渠道网关的系统架构

网关产品层:主要负责处理上游的业务,比如支付、退款、请款,签约解约等。

流程引擎:负责流程编排。有些渠道一次支付只需要和渠道做一次交互,有些渠道一次支付需要和渠道做2到3次交互,这个差异由流程引擎处理。

报文网关:负责实时API接口的处理。包括参数转换、报文组装解析、签名验签、加解密等。

文件网关:负责非实时类的文件交互处理。主要是清算文件、账单文件、流出文件等。包括下载、解析、组装、上传等。

运维运营平台:负责运维运营类操作,包括渠道开关、渠道路由配置、单据查询、异常推进等。

渠道接入平台:负责渠道的接入配置。

7. 结束语

今天主要讲了一些渠道相关的入门知识和渠道网关概要设计。后面还有4篇会讲一些模型、状态机、报文网关、文件网关、异常处理等细节。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/329429.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springboot第49集:【思维导图】多线程,常用类与基础API,集合框架,泛型,数据结构源码...

多线程创建方式一&#xff1a;继承Thread类多线程创建方式二&#xff1a;实现Runnable接口jdk5.0新增两种创建多线程的方式 image.png image.png image.png image.png image.png new Thread(new Runnable() {public void run() {for (int i 1; i < 100; i) {if (i % 2 0) …

基于LabVIEW的声音信号采集分析系统开发

摘要&#xff1a;以美国国家仪器(NI)公司开发的LabVIEW虚拟仪器为软件开发平台&#xff0c;设计了一个可以同步实现声音信号采集和分析的多功能模块化软件系统&#xff0e;借助LabVIEW图形化软件相应的声音读取、写入和存储函数实现对声音信号的采集、存储、时域分析和频域分析…

五、基础篇 vue列表渲染

在v-for里使用对象用 v-for 把一个数组对应为一组元素 我们可以用 v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in list形式的特殊语法&#xff0c;其中 list是源数据数组&#xff0c;而 item 则是被迭代的数组元素的别名。 <template><div clas…

C++大学教程(第九版)5.15修改GradeBook

目录 题目 代码 运行命令&#xff08;在控制台输入&#xff09; 运行截图 题目 &#xff08;修改GradeBook&#xff09;修改图5.9~图5.11所示的 GradeBook 程序&#xff0c;使它计算一组成绩的平均成绩。 成绩A为4分&#xff0c;成绩B为3分&#xff0c;依次类推。 A:4 B:3…

【数据库】聊聊数据库中的 fetchsize 参数

聊聊数据库中的 fetchsize 参数 1.介绍2.案例3.MySQL 中的 fetchsize4.Oracle 中的 fetchsize 1.介绍 在使用查询语句的时候&#xff0c;经常需要根据条件来进行查询得到最终的总记录条数&#xff0c;然后得到结果之后需要来进行处理。 场景&#xff1a;Java 端从数据库读取 …

【数据库】聊聊MVCC机制与BufferPool缓存机制

上一篇文章&#xff0c;介绍了隔离级别&#xff0c;MySQL默认是使用可重复读&#xff0c;但是在可重复读的级别下&#xff0c;可能会出现幻读&#xff0c;也就是读取到另一个session添加的数据&#xff0c;那么除了配合使用间隙锁的方式&#xff0c;还使用了MVCC机制解决&#…

Vue3响应式系统(二)

Vue3响应式系统(一)https://blog.csdn.net/qq_55806761/article/details/135587077 六、嵌套的effect与effect栈。 什么场景会用到effect嵌套呢&#xff1f;听我娓娓道来。 就用Vue.js来说吧&#xff0c;Vue.js的渲染函数就是在effect中执行的&#xff1a; /*Foo组件*/ const…

香港服务器托管:你对服务器托管了解多少?

在当今数字化的时代&#xff0c;服务器托管已成为企业和网站运营的关键一环。对于许多企业来说&#xff0c;如何选择一个安全、稳定、高效的服务器托管方案&#xff0c;成为了确保业务连续性和数据安全的重要课题。那么&#xff0c;究竟什么是服务器托管&#xff0c;它又有哪些…

SpringBoot多环境配置与添加logback日志

1、多环境配置 一个项目会有多个运行环境 所以SpringBoot提供了可以适应多个环境的配置文件 每个文件对应一个端口号 application-dev.yml 开发环境 端口8090 application-test.yml 测试环境 端口8091 application-prod.yml 生产环境 端口8092 在application中选择使用哪个…

Qt6入门教程 8:信号和槽机制(连接方式)

目录 一.一个信号与槽连接的例子 二.第五个参数 1.Qt::AutoConnection 2.Qt::DirectConnection 3.Qt::QueuedConnection 4.Qt::BlockingQueuedConnection 5.Qt::UniqueConnection 三.信号 四.connect函数原型 五.信号与槽的多种用法 六.槽的属性 一.一个信号与槽连接…

MetaGPT入门(一)

本文在Win11操作系统下进行&#xff0c;工具pycharm 一、环境准备 1.建议使用conda虚拟环境 安装anaconda参考&#xff1a;Windows10下Anaconda的安装_windows anaconda 路径-CSDN博客 打开Anaconda Powershell Prompt命令窗口&#xff0c;输入下面命令&#xff0c;创建3.1…

MyBatisPlus学习笔记三-核心功能

接上篇&#xff1a; MyBatisPlus学习笔记二-CSDN博客 1、核心功能-IService开发基础业务接口 1.1、介绍 1.2、引用依赖 1.3、配置文件 1.4、用例-新增 1.5、用例-删除 1.6、用例-根据id查询 1.7、用例-根据ids查询 2、核心功能-IService开发复杂业务接口 2.1、实例-更新 3、…

Spring高手之路-Spring在业务中常见的使用方式

目录 通过IOC实现策略模式 通过AOP实现拦截增强 1.参数检验 2.缓存逻辑 3.日志记录 通过Event异步解耦 通过Spring管理事务 1.声明式事务 2.编程式事务 3.需要注意的问题 不能在事务中处理分布式缓存 不能在事务中执行 RPC 操作 不过度使用声明式事务 通过IOC实现…

软件工程应用题汇总

绘制数据流图(L0/L1/L2) DFD/L0&#xff08;基本系统模型&#xff09; 只包含源点终点和一个处理(XXX系统) DFD/L1&#xff08;功能级数据流图&#xff09;在L0基础上进一步划分处理(XXX系统) 个人理解 DFD/L2&#xff08;在L1基础上进一步分解后的数据流图&#xff09; 数据…

蓝桥杯备赛 day 3 —— 高精度(C/C++,零基础,配图)

目录 &#x1f308;前言&#xff1a; &#x1f4c1; 高精度的概念 &#x1f4c1; 高精度加法和其模板 &#x1f4c1; 高精度减法和其模板 &#x1f4c1; 高精度乘法和其模板 &#x1f4c1; 高精度除法和其模板 &#x1f4c1; 总结 &#x1f308;前言&#xff1a; 这篇文…

C#中对浮点数NaN,PositiveInfinity,NegativeInfinity的特殊处理

NAN NAN 整体意思为Not a Number 不是一个数&#xff0c; NaN&#xff08;Not a Number&#xff0c;非数&#xff09;是计算机科学中数值数据类型的一类值&#xff0c;表示未定义或不可表示的值。常在浮点数运算中使用。首次引入NaN的是1985年的IEEE 754浮点数标准。 EEE 75…

Linux Mii management/mdio子系统分析之六 fixed-mii_bus分析(mac2mac分析)

&#xff08;转载&#xff09;原文链接&#xff1a;[https://blog.csdn.net/u014044624/article/details/130674908] (https://blog.csdn.net/u014044624/article/details/130674908) 前面几章我们介绍了MDIO模块的大部分内容&#xff0c;针对mii_bus、mdio_bus、phy_device、p…

学习鸿蒙先解决这几个是关键问题~

HarmonyOS 是最近最火的操作系统&#xff0c;HarmonyOS 宣布删除 Android 代码之后&#xff0c;正式向世界上第三大操作系统有迈进了一步&#xff0c;HarmonyOS 前期为了完成从 Android 到 HarmonyOS 的过渡&#xff0c;在设计之初 HarmonyOS 采用了双框架架构设计。 从图中可以…

【栈】【字符串和int类型转化】Leetcode 150 逆波兰表达式求值

【栈】【字符串和int类型转化】Leetcode 150 逆波兰表达式求值 解法1 栈 ---------------&#x1f388;&#x1f388;题目链接 Leetcode 150 逆波兰表达式求值 &#x1f388;&#x1f388;------------------- 解法1 栈 字符串转化为int类型数据: Integer.parseInt(s) Long.p…

SpringBoot教程(十五) | SpringBoot集成RabbitMq

SpringBoot教程(十五) | SpringBoot集成RabbitMq RabbitMq是我们在开发过程中经常会使用的一种消息队列。今天我们来研究研究rabbitMq的使用。 rabbitMq的官网&#xff1a; rabbitmq.com/ rabbitMq的安装这里先略过&#xff0c;因为我尝试了几次都失败了&#xff0c;后面等我…