4. Payment Factory核心架构
Payment Factory(支付工厂)不是一套简单的付款审批系统,而是一个把企业分散在各银行、各区域、各ERP中的支付能力集中化、标准化、服务化的企业级支付中台。它的核心价值在于:用统一架构承接多银行、多币种、多法人、多支付方式的复杂支付需求,同时把合规、风控、对账、清算等能力沉淀为可复用的共享服务。理解Payment Factory,关键要抓住它的分层设计、模块划分、核心组件与整体蓝图。
一、核心原理:分层解耦与支付生命周期
Payment Factory架构的第一性原理是分层解耦。传统支付模式下,业务系统直接对接银行接口,导致每新增一家银行就要改一次业务代码,形成“N个业务系统×M家银行”的网状耦合。Payment Factory通过引入中间层,把耦合关系收敛为“业务系统→支付工厂→银行”的星型结构,将复杂度从N×M降为N+M。
从支付生命周期看,一笔支付要经历指令接收、校验、路由、组装、发送、回执、对账、清算八个阶段。Payment Factory的分层设计正是围绕这条生命周期展开:接入层负责接收,处理层负责校验与路由,通道层负责组装与发送,清算层负责回执与对账。每一层只关注自己的职责,层与层之间通过标准报文和内部消息解耦。
二、分层设计:四层架构与职责边界
成熟的Payment Factory通常采用四层架构,每层有明确的职责边界和对外契约:
- 接入层(Access Layer):面向业务系统、ERP、费控、供应链金融等上游,提供API、文件、消息队列等多种接入方式,完成身份认证、限流、幂等控制和报文格式转换。
- 处理层(Processing Layer):支付工厂的“大脑”,负责支付指令校验、合规检查、余额与额度控制、路由决策、支付方式选择、批量拆分与合并。
- 通道层(Channel Layer):对接银行、第三方支付、SWIFT、银企直联等外部通道,负责报文组装、签名加密、协议适配、发送与回执接收。
- 清算层(Clearing Layer):负责支付结果回执、银行对账单获取、自动对账、差异处理、账务清算与会计凭证生成。
四层之间通过内部标准支付报文(如统一Payment Instruction)和事件消息通信,任何一层的技术升级或通道替换都不应影响其他层。这种设计让Payment Factory具备可替换、可扩展、可灰度的工程特性。
三、模块划分与核心组件
在分层之下,Payment Factory由若干核心模块组成。下表列出主要模块及其关键组件与职责:
| 模块 | 核心组件 | 主要职责 |
|---|---|---|
| 接入模块 | API网关、文件适配器、消息监听器 | 多协议接入、认证、限流、幂等 |
| 指令管理 | 支付指令池、状态机、指令校验器 | 指令生命周期管理、状态流转 |
| 路由引擎 | 路由规则库、决策引擎、优先级队列 | 按币种、金额、银行、成本选路 |
| 合规风控 | 黑名单、制裁筛查、额度控制 | 反洗钱、合规校验、风险拦截 |
| 通道适配 | 银行适配器、报文模板、签名服务 | 报文组装、加密签名、协议转换 |
| 对账清算 | 对账引擎、差异池、凭证生成器 | 自动对账、差异处理、账务清算 |
| 监控运维 | 支付看板、告警中心、日志审计 | 实时监控、异常告警、审计追溯 |
其中,路由引擎和通道适配器是Payment Factory技术含量最高的两个组件。路由引擎决定一笔支付走哪家银行、哪种通道、什么时间发送,直接影响支付成本和成功率;通道适配器则把银行各异的接口协议、报文格式、签名方式封装成统一接口,是“新增银行不改业务”的关键。
四、整体蓝图与典型场景
把分层、模块和组件组合起来,Payment Factory的整体蓝图可以概括为:上游多系统接入、中间统一处理、下游多通道输出、旁路统一监控与对账。下面用一个简化的配置示例说明通道适配器的参数化设计:
channel:
bank_code: ICBC
protocol: HTTPS
endpoint: https://gw.icbc.com/pay/v2
auth:
type: CERT
cert_path: /certs/icbc_client.pfx
message:
format: XML
template: icbc_payment_v2.ftl
sign_algorithm: SHA256withRSA
timeout_ms: 8000
retry:
max_attempts: 3
backoff_ms: 2000
在典型场景中,一家跨国企业需要向供应商支付美元、欧元和人民币。业务系统只提交一笔标准支付指令,Payment Factory完成:合规筛查→按币种和银行成本路由→选择SWIFT或本地清算通道→组装对应报文→发送→接收回执→自动对账→生成凭证。整个过程业务系统无感知,新增一家本地银行只需在通道层增加一个适配器配置。
五、常见误区与复盘
在Payment Factory架构设计中,常见的误区有三个:
- 把Payment Factory做成“银行接口集合”:只关注对接银行,忽视路由、合规、对账等共享能力,结果只是把点对点耦合换了个地方,没有真正解耦。
- 分层不彻底,处理层直接调用银行SDK:导致通道替换时处理层被迫修改,破坏了分层契约。正确做法是处理层只依赖通道层的抽象接口。
- 忽视状态机与幂等设计:支付是典型的“至少一次”场景,网络超时、回执丢失都会导致重复支付。必须在指令层和通道层同时做幂等控制。
复盘一个真实案例:某集团初期把Payment Factory做成“大泥球”,所有逻辑写在一个服务里,新增一家银行需要改动路由、校验、对账三处代码,上线周期长达两个月。重构后采用四层架构,把银行差异收敛到通道适配器,新增银行只需增加配置和适配器,上线周期缩短到三天。这说明架构分层的价值最终体现在变更成本上。
总结来看,Payment Factory的核心架构可以浓缩为一句话:以分层解耦为原则,以标准报文和状态机为纽带,以路由引擎和通道适配器为关键组件,把支付能力从业务系统中剥离出来,形成可复用、可扩展、可监控的企业级支付中台。掌握这一蓝图,后续的银行对接、路由策略、对账清算等实战内容才有稳固的架构基础。