3. 统一收单核心概念

在支付系统建设中,“收单”并不是一个孤立动作,而是一组围绕商户收款请求展开的能力集合。要理解统一收单与交易编排,必须先厘清收单、聚合支付、统一收单、交易编排、路由、渠道路由、支付产品与支付方式这八个核心概念之间的层次与关系。它们分别回答“谁在收钱”“收什么钱”“怎么选通道”“怎么走流程”等不同问题。

一、从收单到统一收单:概念分层

收单指收单机构为商户提供受理支付工具、完成资金结算的服务。传统收单中,商户与某一家银行或持牌机构签约,交易只能走该机构通道。聚合支付则是在商户与多个支付通道之间增加一层技术服务,把微信、支付宝、银联等多种支付方式聚合到同一接口,商户无需分别对接。聚合支付解决的是“接口数量多”的问题,但并未必然解决交易规则、路由策略和资金清分的一致性问题。

统一收单是在聚合支付基础上进一步抽象:对外提供统一的收单API、统一的订单模型、统一的状态机和统一的对账口径;对内把不同通道的差异封装在适配层。它强调“一次接入、多通道可用、规则可编排”。因此,统一收单不仅是接口聚合,更是交易语义的统一。

一句话区分:聚合支付是“多通道接进来”,统一收单是“多通道接进来之后,还能用同一套规则管起来”。

二、交易编排与路由:统一收单的调度中枢

交易编排负责把一笔支付请求拆解为有序步骤,例如参数校验、风控检查、路由选择、通道调用、结果落库、异步通知、对账登记。编排关注的是“先后顺序、条件分支、失败补偿”。路由是编排中的一个关键决策节点,决定这笔交易交给哪个通道处理。渠道路由则更具体,指在多个支付渠道之间按规则选择,例如按费率、成功率、限额、商户资质、通道健康度进行加权。

路由策略通常包含静态规则与动态规则。静态规则如“商户A的微信支付走通道1”;动态规则如“通道1成功率低于95%时自动切到通道2”。编排与路由的关系可以理解为:编排是流程骨架,路由是骨架中的决策开关。

统一收单:概念层次与调度关系 商户请求 订单号 / 金额 / 支付方式 统一收单API 统一参数 / 统一状态机 交易编排 校验→风控→路由→调用 渠道路由 费率/成功率/限额 支付产品 微信支付 / 支付宝 / 银联 面向商户的收款能力 支付方式 扫码 / 被扫 / JSAPI / APP 用户实际使用的付款形态 通道适配层 参数转换 / 签名 / 重试 屏蔽各通道差异 支付产品决定“能收什么”,支付方式决定“用户怎么付”,通道适配层决定“实际走哪条路”

三、支付产品与支付方式:容易混淆的一对概念

支付产品是面向商户签约和计费的能力单元,例如“微信支付”“支付宝”“银联云闪付”。支付方式是用户在支付产品下选择的具体付款形态,例如扫码支付、被扫支付、JSAPI支付、APP支付、H5支付。同一支付产品可以支持多种支付方式;同一支付方式也可能由多个支付产品提供。统一收单系统需要在订单中同时记录支付产品与支付方式,才能正确路由和后续对账。

概念 回答的问题 典型示例 在系统中的位置
收单 谁为商户完成资金结算 银行收单、第三方收单 业务资质与资金层
聚合支付 如何用一个接口接多个通道 聚合码、聚合API 接入层
统一收单 如何统一订单、状态与规则 统一收单平台 平台核心层
交易编排 一笔交易按什么顺序执行 校验→风控→路由→调用 流程调度层
路由 / 渠道路由 这笔交易交给哪个通道 按费率、成功率、限额选择 决策层
支付产品 商户签约了哪种收款能力 微信支付、支付宝 产品与计费层
支付方式 用户具体怎么付款 扫码、JSAPI、APP 交互与通道参数层

四、案例与常见误区

假设商户下单请求为:支付产品“微信支付”,支付方式“JSAPI”,金额100元。统一收单平台收到请求后,交易编排依次执行参数校验、商户限额检查、风控评分、渠道路由。路由模块发现商户签约了两个微信通道:通道A费率0.38%、当前成功率99.2%;通道B费率0.35%、当前成功率96.8%。若策略以成功率优先,则选择通道A;若策略以费率优先且成功率阈值设为95%,则选择通道B。选定后,通道适配层把统一参数转换为微信JSAPI下单参数,调用通道并处理返回。

常见误区一:把聚合支付等同于统一收单。聚合只解决接口数量,统一收单还要解决订单模型、状态机、路由规则和对账口径。误区二:把支付产品与支付方式混为一谈,导致路由参数缺失。误区三:路由只按费率选择,忽略成功率和通道健康度,短期省钱、长期掉单。

复盘要点:统一收单的核心不是“接了多少通道”,而是“能否用一套订单、一套状态、一套规则管理所有通道”。交易编排决定流程是否可扩展,渠道路由决定交易是否稳定且成本可控,支付产品与支付方式的清晰区分决定参数是否正确传递。

统一收单请求示例(简化):
{
  "merchantId": "M10086",
  "orderNo": "ORD202501010001",
  "amount": 10000,
  "payProduct": "WECHAT",
  "payMethod": "JSAPI",
  "routeStrategy": "SUCCESS_RATE_FIRST"
}

路由决策日志示例:
[ROUTE] merchant=M10086 product=WECHAT method=JSAPI
[ROUTE] candidate=A rate=0.38% success=99.2% health=UP
[ROUTE] candidate=B rate=0.35% success=96.8% health=UP
[ROUTE] strategy=SUCCESS_RATE_FIRST selected=A