图解收银台

news/2025/2/3 3:09:00/文章来源:https://www.cnblogs.com/IT-Evan/p/18696469

收银核心和支付引擎是支付系统最核心的两个子系统之一。本篇主要讲清楚收银核心的设计与实现,包括收银核心如何渲染可用支付方式,如何做可支付检查,收银台核心的系统架构、领域模型,常见支付方式等。

如果说电子商务是现代经济的繁华都市,那么在线支付系统无疑就是最繁忙的交通大动脉。

在这个每年数十万亿规模的在线支付交易世界中,有两个默契十足的队友密切配合,确保每一笔交易都像优雅的华尔兹舞步一样流畅 — 那就是:收银核心和支付引擎。

今天我们先讲“收银核心”。

 

一、协同作战

先给一个直观的协同作战的图,有一个整体的印象。

 

二、收银核心:交易的军机处

想象一下,你走进了一家精品咖啡店,在这里收银核心就好比是那位亲切的侍者,不仅为你呈上菜单上各式支付方式的大餐,还会确保核验你的身份,然后查出你留存在咖啡店的预存款。

在支付你的账单时,还会偷偷做个背景调查(风控检查),以确保你不是正在洗钱或冒名顶替。

 

三、收银核心在支付系统中的位置

收银核心是支付系统的门面,负责处理用户的支付请求,核心能力就两个:

1)支付方式咨询,告诉用户本次可以使用哪些支付方式。

2)提交支付后的各种校验,比如订单是否有效,商户权限,用户身份,风控等。

 

四、支付咨询

上面的图分别是电商(京东)的收银台,支付平台(微信支付)的收银台。

支付咨询阶段,需要做以下几个工作:

  • 基础检查:可支付检查(有可能订单已经已经被支付),用户检查,商户检查等。
  • 资产咨询:绑卡数据,账户余额,营销(比如满减、红包等)。
  • 渠道咨询:通过币种、金额、渠道开关等。
  • 额度咨询:单笔限额、日累计限额、月累计限额等。
  • 支付方式组装:把上面的资产、渠道等组装成用户方便理解的支付方式。
  • 支付方式排序:把用户可用支付方式做好推荐排序(既要考虑用户体验,又要考虑营销策略)。

最后把支付方式返回给用户,供用户在支付时选择。

 

五、支付受理

用户选择支付方式后,点击“确认支付”,就到了支付受理阶段。主要做以下几个工作:

  • 在支付咨询阶段的工作全部做一遍。因为用户在支付方式渲染后有可能过了很久才支付,很多数据在后台可能已经发生变化,比如余额变了,或者订单已经过期了等情况。
  • 全部通过后,调用风控进行风险判断。
  • 如果是外部渠道的卡支付,还需要调用渠道路由,选择出一条最优的渠道。
  • 然后是提交支付请求到支付引擎进行真实扣款。
  • 最后是从收单平台轮询交易结果。

特别说明一下:为什么轮询结果是以收单平台为准而不是以支付引擎为准?因为对用户而言,收单的结果代表最终的支付结果。比如用户支付回来后,支付引擎是成功的,但是收单平台因为已经订单过期关闭,就会发起资金退回操作,这样收单平台的订单实际是没有支付成功的。就会类似这样提示用户:“订单已关闭,如果已经扣款,支付款项预计在15个工作日内原路退回。”

 

六、收银核心系统架构

提供给用户有多种支付方式:卡、余额、网银等。

收单产品主要包括:标准收银台,前置收银台,扫码付等。

其中标准收银是由支付平台提供,需要跳转到支付平台,而前置收银台是直接嵌入到商户收银台里面完成支付。

核心服务包括:支付咨询、支付受理、风控挑战并支付等。

外部依赖主要有:会员、商服、卡中心、风控、渠道网关、支付引擎等。

 

七、收银核心领域模型

有人好奇:为什么收银台连数据库都没有,却也设计模型?不设计行不行?

之所以设计设计模型,就是为了更好地理解和体现业务的本质。

不设计也是可以的,简单实用,但对于一些复杂的场景或新增的能力,就容易修改出问题。

模型最大的好处是把各种要素分门别类好,减少杂乱,能快速评估出需要修改模型的哪个点。

 

八、常见支付方式

快捷支付

通过在支付系统中提前绑定银行卡信息,快速完成支付交易,不需要每次都填写完整的卡详情。

代扣/协议支付个人授权商户直接去支付平台或银行进行扣款,不需要用户参与支付过程。比如水电煤代扣,滴滴打车代扣。

卡支付

使用信用卡或借记卡支付。

网银支付

需要跳转到银行提供的支付页面,输入银行账户信息进行支付。

VA支付

Virtual Account。虚拟账户是银行临时生成的一个账户,与用户和订单临时关联。一般在东南亚的支付场景,或者国际收款场景下使用得比较多。东南亚很多人没有银行卡,但又要在线买东西,就可以临时生成一个VA。以支付流程为例:用户选择某个银行的VA支付方式,支付系统调用银行接口,先为用户订单生成一个VA号,用户拿着VA去钱下ATM机转账,银行收到钱后,通知支付系统,支付系统再通知商户,商户给用户发货。

OTC支付

Over-the-Counter。柜台支付。一般指大型连锁线下零售商提供的支付能力,比如7-11或肯德基提供的支付能力。整体流程和VA很像。区别在于VA通常指银行提供的。

同样以支付流程为例:用户选择某个OTC服务提供商的OTC支付方式,比如7-11,支付系统调用7-11接口,先为用户订单生成一个OTC码,用户拿着OTC码去钱下7-11柜台拿现金充值,7-11收到钱后,通知支付系统,支付系统再通知商户,商户给用户发货。

第三方钱包支付

非银行机构提供的在线支付服务。比如支付宝、微信支付,国外的PayPal等。

余额支付使用账户余额进行支付。

正扫

商户生成二维码,用户扫商户二维码。

反扫

消费者生成二维码,商户扫消费者的二维码。

九、结束语

每个公司对于收银核心的设计可能各有不同,但无外乎就是如何为用户计算出可用的支付方式,提交支付后做各种检查,然后调用支付引擎去做真正的支付。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Easysearch 集群重置 admin 用户密码

admin 用户是 Easysearch 通过配置文件 user.yml 默认添加的,配置如下: ## Demo users admin:hash: "$2y$12$mA9DDk7iOBQA3u.Ebc0QSOVKsgwlkm6OJcrEcpyrTrT5M5It86usq" # 465f7466f79a67b9039dreserved: trueexternal_roles:- "admin"description: "…

Linux 中awk命令自定义函数

001、[root@PC1 test]# echo a | awk function my_length(str) {return length(str)}; {text = "Hello"; print "Length of text:", my_length(text)} Length of text: 5 。

【CodeForces训练记录】Codeforces Round 1002 (Div. 2)

训练情况赛后反思 这个B题感觉太猜猜乐了,个人感觉B难度远大于C A题 想要数组 \(c\) 至少有三个不同的元素,数组 \(a,b\) 的元素数的和必须 \(\ge 4\),如果种类和为 \(3\) 种,最多能凑出两种不同的数字点击查看代码 #include <bits/stdc++.h> // #define int long lo…

进程的基本概念

写在前面 这是一篇十分简短的文章,主要讲述了进程的基本概念,如何创建进程以及一些细节问题,为接下来学习进程调度打好基础。 什么是进程 简单来说,进程就是运行中的程序。比如,我们双击了存放在硬盘中的某个exe程序,程序被加载到内存中运行起来后,就是所谓的进程。所以…

python 中实现gz文件的解压

python 中实现gz文件的解压。001、(base) [root@PC1 test]# ls a.txt.gz test.py (base) [root@PC1 test]# zcat a.txt.gz ## 测试的压缩文件 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 (base) [root@PC1 test]# cat test.py ## 测试的py…

【模拟电子技术】19-差分放大电路的构成

【模拟电子技术】19-差分放大电路的构成 我们知道在直接耦合放大电路中零点漂移是一个很困扰的问题(可以理解为静态工作点稳定问题),我们通过增加电阻Re来抑制温漂,前面我们也提到过有一种电路可以在直流的时候doubleRe,而交流的时候使得Re消失我们想要抑制这种现象,想到…

球钟问题

球钟问题,对栈和队列的实际应用球钟问题 1. 问题背景 ​ 球钟是一个利用球的移动来记录时间的简单装置。它有三个可以容纳若干个球的指示器:分钟指示器,五分钟指示器和小时指示器。 举例:若分钟指示器中有2个球,五分钟指示器中有6个球,小时指示器中有5个球,则时间为5:32…

本地部署deepseek

前言 如果你电脑配置不错,且期望不受网络限制也可以流畅使用deepseek,那就本地部署deepseek试试吧。下载并安装Ollama Ollama是一个开源的 LLM(大型语言模型)服务工具(就是大模型运行工具),用于简化在本地运行大语言模型,降低使用大语言模型的门槛,使得大模型的开发者…

【邮件安全】近期常见的钓鱼邮件(202411期)

本期主要分享自2024年11月至今几种典型的钓鱼邮件样本。希望通过这种分享,可以帮助广大用户提高警惕性,增强识别与防范钓鱼邮件的能力。 邮箱账户异常类 以下图为例,该钓鱼邮件伪造用户账户出现异常登录情况,引导用户点击“认证账户”按钮进入钓鱼页面。 下图是一封伪造用户…

AI医院:大语言模型在多智能体医疗交互模拟器中的表现如何?

近年来,人工智能(AI)技术,尤其是大语言模型(LLMs),在医学领域取得了显著进展。这些模型在静态医疗问答任务中表现优异,甚至在某些情况下能够媲美人类专家。然而,医学诊断并非单一静态的任务,而是一个动态、复杂的过程,涉及多轮互动和信息收集。 为了更全面地评估LLM…

万字综述|一文掌握大语言模型在生物信息学中的应用

随着大语言模型(LLMs)技术的飞速发展,其在自然语言处理(NLP)领域的成功应用逐渐扩展到了生物信息学领域。生物信息学作为一个跨学科的领域,涉及基因组学、蛋白质组学、药物发现等多个方向,LLMs的引入为这些领域带来了新的研究工具和方法。 2025年1月,佐治亚大学Tianmin…

自主做前端页面小工程07

通过使用elementui和js部分代码实现 其重点在于导航栏与弹窗和数据的回显与数据只可预览,基本完成 这是补发昨天学习记录