你在网店买了一件 100 元的衣服,用钱包绑定的银行卡付款。一秒后,页面显示「支付成功」,商户马上发货。可这时,商户其实还没收到钱:它要等到第二天,才在账上看到 99.4 元。
这中间的一天里,钱在哪?少掉的 0.6 元去了哪?更重要的是:每天有海量这样的支付,为什么「扣了钱没到账」「付一次扣两次」这种事几乎不会发生?这篇跟着这 100 元走一遍,看金融系统怎样让每一分钱都对得上,以及为什么金融的数据,首先要准。
金融的生意五花八门,绕不开的是两件事:钱要算准,风险要控住
领域 | 做什么 | 主要怎么赚钱 |
|---|---|---|
支付 | 帮个人和商户转账、收款 | 向商户收取交易手续费 |
银行与信贷 | 吸收存款、发放贷款 | 存贷利差、各类服务费 |
证券 | 帮企业发行股票和债券,帮投资者买卖 | 交易佣金、承销费 |
基金与理财 | 替投资者管理资金 | 管理费;代销平台收取销售相关的费用 |
保险 | 收保费,为风险兜底 | 承保利润,加上保费的投资收益 |
互联网金融平台往往同时做好几样:既有支付,又代销基金和保险,还和银行等持牌机构合作做信贷。下面只跟着支付这一样走,因为它最直接地回答了「钱怎么才能一分不差」。
一笔支付走两条线:信息流秒级完成,资金流要等到第二天
你在网店下单,选择用支付机构的钱包付款;
支付机构校验身份、做实时风控,然后向你绑定的银行发起扣款。涉及银行账户的网络支付,从 2018 年 6 月 30 日起要通过网联(非银行支付机构网络支付清算平台)转接,支付机构不能再直接连银行,这就是常说的「断直连」;
银行扣款成功,支付机构通知商户「支付成功」,商户发货。到这里只过了一秒多;
钱这时在支付机构的客户备付金里。2019 年 1 月 14 日起,备付金要 100% 集中交存,日终全部存放在支付机构于人民银行开立的集中存管账户里,支付机构不能挪用;
按约定的周期,支付机构算清楚该给商户多少(清算),再把钱真正划过去(结算):100 元扣掉 0.6% 的手续费,商户到账 99.4 元。
信息流是订单、扣款指令、成功通知,秒级就能完成;资金流是钱真正从一个账户到另一个账户,要走清算和结算,往往比信息流慢。系统设计里很多复杂度,都来自要让这两条线最终对得上。
监管也在不断完善。2023 年 12 月国务院公布《非银行支付机构监督管理条例》,2024 年 5 月 1 日起施行:设立支付机构须经中国人民银行批准,并且应当以提供小额、便民支付服务为宗旨。
钱不能凭空多,也不能凭空少:幂等和复式记账
假设你点了「付款」,网络卡了一下,页面没反应,你又点了一次。系统收到两个请求,但它们带着同一个订单号。支付系统要保证:同一笔订单无论请求几次,都只扣一次钱。这叫幂等,是防止「付一次扣两次」的第一道关。
第二道关是复式记账:账务系统里每一笔变动,都同时记在两个账户上,一边借、一边贷,金额相等。这 100 元在账上是这样走的:
时间 | 借(钱去了哪里) | 贷(钱从哪里来) | 金额 |
|---|---|---|---|
T 日,付款 | 客户备付金 | 你的银行存款 | 100 元 |
T+1,结算 | 商户账户 | 客户备付金 | 99.4 元 |
T+1,结算 | 支付机构手续费收入 | 客户备付金 | 0.6 元 |
无论中间过了多少步,所有借方加起来永远等于所有贷方,备付金这个中转账户最后正好清零。哪天借贷不平,就说明有一笔账记错了,这是发现错账最基本的手段。
每天对一遍账:差错是怎么被发现的
幂等和复式记账管的是自己的账。可一笔支付经过支付机构、网联、银行、商户四方,每一方都有自己的记录。对账就是每天把它们逐笔核对一遍。比如某天夜里核对出这样一笔:
银行 | 支付机构 | 商户 | |
|---|---|---|---|
订单 A:100 元 | 已扣款 | 成功 | 成功 |
订单 B:100 元 | 已扣款 | 超时,记为失败 | 未发货 |
订单 B 的银行扣款其实成功了,只是成功通知在网络上丢了。用户被扣了钱,却没买到东西。对账把它找出来,作为差错单单独处理:要么补发「成功」让商户发货,要么把钱退给用户。扣了钱没到账的事之所以少见,不是因为它不发生,而是因为每天都有人把它找出来。
另外两个常见流程:信贷和基金申购
流程 | 主要步骤 | 关键在哪里 |
|---|---|---|
信贷 | 申请 → 风控审批,定额度和利率 → 放款 → 按期还款 → 逾期催收 | 风控决定借给谁、借多少、什么价格 |
基金申购 | 提交申购 → 按当日净值计算份额 → 份额确认 → 开始计算收益 | 工作日 15:00 前提交按当日净值,之后算下一个交易日 |
为什么金融系统格外较真
把上面这些放在一起,就是金融系统和一般互联网系统最不一样的地方:
要求 | 为什么 | 常见做法 |
|---|---|---|
钱不能错 | 一笔交易要么全部成功,要么全部失败,不能扣了钱没到账 | 事务、幂等、补偿、复式记账、每日对账 |
系统不能停 | 支付停一分钟,就是大量交易失败 | 多机房容灾、异地多活、灰度发布 |
风险要实时拦 | 盗刷、欺诈要在交易完成之前识别 | 实时风控:规则加模型,毫秒级决策 |
合规与隐私 | 要向监管报送数据,要保护个人信息 | 数据分级分类、脱敏、权限审批与审计 |
数据要准 | 报表直接用于经营决策和监管报送 | 统一指标口径、数据质量规则、血缘追溯 |
数据要准:大量的工作不在算出来,而在保证算得对
最后一行,就是数据团队的日常。我在蚂蚁来到了专门做数据的部门:分工比较细,每个方向都有较深的沉淀;金融业务对数据要求高,非常注重数据质量和合规;数据体量大,业务场景也足够复杂。
但正因为成熟,历史包袱也重。我做离线数据的那段时间,工作集中在取数和历史包袱治理上,其中最让我头疼的是 81 棵指标树。指标一多、口径一杂,同一个名字的指标在不同的表里就可能是不同的数,治理就成了绕不开的工作:
我对治理的体会写在工作的这五年里:治理工作一般吃力不讨好,最好当成一个专项来做,不断完善机制、持续监控。快速增长能掩盖一切问题,但降本增效的大环境来了,开发和维护就一样重要。
后来我转回实时数据,有机会用数据湖技术重塑实时研发范式、实现降本增效。数据湖是什么,见数据湖:给对象存储装上数据库的能力。
为什么扣了钱几乎总能到账
回到开头的问题。那 100 元一秒就「成功」了,但钱要在备付金里过一夜,第二天才清算、结算给商户。它几乎不会出错,靠的是三道关:同一个订单号只扣一次钱(幂等),每一笔变动借贷相等(复式记账),每天四方逐笔核对(对账)。
同样一张报表,在金融业务里背后可能是经营决策,也可能是监管报送,口径错一点就不是小事。这也是为什么金融的数据团队分工细、流程重。想把这些用到自己的钱上,见普通人理财。
参考资料
中国政府网:《非银行支付机构监督管理条例》公布,2024 年 5 月 1 日起施行。
中证网:网联正式运营进入倒计时:网络支付业务自 2018 年 6 月 30 日起全部迁移至网联平台处理。
第一财经:备付金 100% 交存倒计时:支付机构须于 2019 年 1 月 14 日前完成。
全文评论
0正在加载评论…