当前位置: 首页 > news >正文

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

这是《百图解码支付系统设计与实现》专栏系列文章中的第(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篇会讲一些模型、状态机、报文网关、文件网关、异常处理等细节。

相关文章:

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

这是《百图解码支付系统设计与实现》专栏系列文章中的第(20)篇。点击上方关注,深入了解支付系统的方方面面。 主要讲清楚什么是渠道,有哪些类型的渠道,什么是渠道网关,渠道网关在支付系统中定位、核心功能…...

【js版数据结构学习之队列】

队列 一、简要认识队列二、队列的封装三、队列的应用1.栈和队列的转换2.全排列3.任务调度4.缓存管理 一、简要认识队列 结构:一种特殊的线性表 入队:在队尾插入一个元素 出队:在队头删除一个元素 特点:先入先出 空队列&#xff1…...

iOS Xcode 升级Xcode15报错: SDK does not contain ‘libarclite‘

iOS Xcode 升级Xcode15报错: SDK does not contain libarclite 一、仔细查看报错代码: SDK does not contain libarclite at the path /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/ lib/arc/libarclite_iphonesimulator.a; try in…...

python高级练习题库实验2(B)部分

文章目录 题目1代码实验结果题目2代码实验结果题目总结题目1 注册课程小游戏程序 研究下面的例子,并编写一个与这些例子完全相同的程序。使用for loop和break来解决问题。提示用户输入课程数量,是否选择,并且课程代码,最后还需显示已经完成的课程注册数量或者未完成的注册…...

vue项目编译非常慢,经常卡在某个百分点

1、注册插件 2、在项目根目录下的 babel.config.js 文件中加入下方配置 3、将import导入方式改为require导入方式,返回promise 4、如果动态加载组件import引入组件找不到组件(Error: Cannot find module) 使用 webpack 的 require.ensure() …...

开源知识库zyplayer-doc部署指南

1.前置条件 docker已经安装 mysql已经安装且数据库zyplayer-doc存在 服务器ip:192.168.168.99/ 数据库账户:root,密码:123456 2.拉取镜像 docker pull zyplayer/zyplayer-doc:latest 3.启动 docker run -d \--restart unless-stopped \--name zyplayer-doc \-p 8083:8083 …...

第90讲:MySQL数据库主从复制集群原理概念以及搭建流程

文章目录 1.MySQL主从复制集群的核心概念1.1.什么是主从复制集群1.2.主从复制集群中的专业术语1.3.主从复制集群工作原理1.4.主从复制中的小细节1.5.搭建主从复制集群的前提条件1.6.MySQL主从复制集群的架构信息 2.搭建MySQL多实例环境2.1.在mysql-1中搭建身为主库的MySQL实例2…...

PHP反序列化漏洞-魔术方法绕过

一、__wakeup()魔法函数绕过: 在PHP中,__wakeup()是一个魔术方法,用于在反序列化对象时自动调用。当反序列化字符串中的对象属性个数大于实际属性个数时,可以利用这个漏洞进行绕过。 触发条件: PHP版本为5.6.25或早期版本,或者PHP7版本小于7.0.10。反序列化字符串中的对…...

抖店和商品橱窗的区别?这两个千万别再搞混了!

我是电商珠珠 很多人都会将抖店和商品橱窗搞混,想开抖店的人开了商品橱窗,想开橱窗的人开通了抖店。 我做抖店三年了,这种情况屡见不鲜。 那么抖店和商品橱窗究竟有什么区别呢? 1、属性不同 商品橱窗是抖音所展现商品的一个功…...

个人总结钉钉7.5新品发布会

钉钉发布了 7.5 版本,最主要推出了围绕AI能力的各项升级,通过AI“超级助理”提升组织内部的沟通协作效率、管理决策智能化程度,以及相关的音视频、在线文档、Teambition功能的升级,以满足不同企业的多元化需求。截至发布会&#x…...

连接超时的问题

连接超时的问题 通用第三方工具连接超时 connect timeout 方案一: /etc/ssh/sshd_config node1上操作,图是错的 方案二: windows上Hosts文件域名解析有问题 比如: 192.168.xx.100 node1 192.168.xx.161 node1 两个都解析成node…...

python贪吃蛇游戏

为了实现这个游戏,需要用到Python的pygame模块,它是一个专门用于开发游戏的模块,提供了很多方便的功能,比如窗口、图形、音效、事件处理等。 用pygame来创建一个窗口,设置游戏的背景色,画出蛇和食物&#…...

【Spring】Spring AOP

文章目录 前言1. 什么是 AOP2. 什么是 Spring AOP3. Spring AOP 的使用引入 AOP 依赖编写 AOP 程序 4. Spring AOP 详解4.1 Spring AOP 的概念4.1.1 切点4.1.2 连接点4.1.3 通知4.1.4 切面 4.2 通知类型4.3 切点4.4 切面优先级 Order注解4.5 切点表达式4.5.1 execution 切点表达…...

软件开发架构

【 一 】软件开发架构图 【 1】ATM和选课系统 三层的开发架构 前段展示台 后端逻辑层 数据处理层 【二】软件开发架构的步骤流程 需求分析:在软件开发架构设计之前,需要对应用系统进行需求分析,明确用户需求、功能模块、业务流程等内容。…...

计图大模型推理库部署指南,CPU跑大模型,具有高性能、配置要求低、中文支持好、可移植等特点

Excerpt 计图大模型推理库,具有高性能、配置要求低、中文支持好、可移植等特点 计图大模型推理库,具有高性能、配置要求低、中文支持好、可移植等特点 计图大模型推理库 - 笔记本没有显卡也能跑大模型 本大模型推理库JittorLLMs有以下几个特点: 成本低:相比同类框架,本库…...

CSS||Emmet语法

1、简介 ​ Emmet语法的前身是Zen coding,它使用缩写,来提高html/css的编写速度, Vscode内部已经集成该语法。 ​ 快速生成HTML结构语法 ​ 快速生成CSS样式语法 2、快速生成HTML结构语法 生成标签 直接输入标签名 按tab键即可 比如 div 然后tab 键&#xff0c; 就可以生成 <…...

Android中的anr定位指导与建议

1.背景 8月份安卓出现了一次直播间卡死(ANR)问题&#xff0c;且由于排查难度较大&#xff0c;持续了较长时间。本文针对如何快速定位安卓端出现ANR问题进行总结和探讨. 这里大致补充一下当时的情况,当时看到情景的是从某一个特定的场景下进入直播间后整个直播间界面立刻就卡住…...

YOLOV7剪枝流程

YOLOV7剪枝流程 1、训练 1&#xff09;划分数据集进行训练前的准备&#xff0c;按正常的划分流程即可 2&#xff09;修改train.py文件 第一次处在参数列表里添加剪枝的参数&#xff0c;正常训练时设置为False&#xff0c;剪枝后微调时设置为True parser.add_argument(--pr…...

【React】组件性能优化、高阶组件

文章目录 React性能优化SCUReact更新机制keys的优化render函数被调用shouldComponentUpdatePureComponentshallowEqual方法高阶组件memo 获取DOM方式refs如何使用refref的类型 受控和非受控组件认识受控组件非受控组件 React的高阶组件认识高阶函数高阶组件的定义应用一 – pro…...

前端开发中基于Web Speech API(speechSynthesis接口)实现文字转语音功能

文章目录 一、Web Speech 的概念及用法二、Web Speech 的 API 接口1、SpeechSynthesis属性方法 2、SpeechSynthesisUtterance属性方法 三、Web Speech 的 用法用法演示一用法演示二htmljs 四、扩展 一、Web Speech 的概念及用法 在开发业务系统时&#xff0c;有时候可能需要使…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...

离线语音识别方案分析

随着人工智能技术的不断发展&#xff0c;语音识别技术也得到了广泛的应用&#xff0c;从智能家居到车载系统&#xff0c;语音识别正在改变我们与设备的交互方式。尤其是离线语音识别&#xff0c;由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力&#xff0c;广…...

Linux安全加固:从攻防视角构建系统免疫

Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...