Go支付订单聚合领域建模与架构设计 - 第1节

1.1 支付系统核心概念

支付系统是连接用户、商户与金融机构的数字化价值交换网络。理解其核心概念是构建聚合支付领域模型的基础。

1.1.1 支付参与方

参与方 角色定义 典型实体
付款方 发起支付指令的资金提供者 消费者、企业采购员
收款方 接收资金的商品或服务提供者 电商商户、线下门店
支付机构 提供支付通道与清算服务的中间方 支付宝、支付、银联
清算组织 负责跨机构资金对账与结算 网联、银联清算中心
监管机构 制定规则并监督合规 中国人民银行、外汇管理局

1.1.2 支付核心要素

  • 订单:交易的核心载体,包含商品信息、金额、状态等字段。
  • 交易流水:每笔支付请求的原始记录,不可篡改。
  • 支付凭证:支付机构返回的确认凭据(如支付宝交易号)。
  • 对账单:支付机构定期提供的资金结算明细文件。
  • 退款:逆向资金流转,需与原订单关联。
领域建模提示: 在 DDD 中,订单 和 交易流水 通常作为聚合根存在,而 支付凭证 是值对象。区分实体与值对象是划分领域边界的第一步。

1.2 支付链路全景

一笔完整的支付从用户发起到资金到账,经历多个环节。下图展示了标准支付链路的核心阶段:

支付链路全景图 支付链路全景图 用户下单 支付请求 路由选择 渠道处理 结果通知 说明:渠道处理阶段涉及加密、签名、重试、超时等复杂逻辑,是聚合支付的核心关注点。 结果通知包括同步回调与异步通知两种模式,需保证幂等性。

1.2.1 链路关键阶段详解

  1. 用户下单:商户系统创建订单,生成唯一订单号与支付金额。
  2. 支付请求:用户选择支付方式,系统组装支付参数并调用支付网关。
  3. 路由选择:根据金额、渠道状态、费率等规则,动态选择最优支付通道。
  4. 渠道处理:与第三方支付机构交互,完成扣款、授权或签约操作。
  5. 结果通知:接收支付结果,更新订单状态,触发后续业务(如发货)。
常见陷阱: 支付结果通知可能延迟、重复或丢失。系统必须实现 幂等处理 和 定时对账补偿 机制,不能依赖单次通知的可靠性。

1.3 聚合支付的定义与价值

1.3.1 什么是聚合支付

聚合支付(Aggregate Payment)是指通过一个统一的平台,集成多家支付机构的支付能力,为商户提供一站式支付接入服务。商户无需分别对接支付宝、、银联等渠道,只需对接聚合平台即可。

对比维度 直连模式 聚合支付模式
对接成本 高:每家渠道独立开发、测试、维护 低:一次对接,多通道可用
运维复杂度 高:需监控多个渠道的接口变更 低:聚合平台统一处理升级
资金结算 多对多:各渠道分别结算 一对多:聚合平台统一结算
故障容灾 弱:单渠道故障影响该通道交易 强:自动切换备用通道

1.3.2 聚合支付的核心价值

  • 降低接入门槛:商户只需集成一套 API,即可支持多种支付方式。
  • 提升支付成功率:智能路由在渠道故障或超时时自动切换,减少支付失败。
  • 统一对账与报表:所有渠道的交易数据汇总在一个平台,便于财务核算。
  • 灵活扩展:新增支付渠道时,商户端无需改动,仅由聚合平台适配。
领域驱动视角: 聚合支付的核心领域模型应围绕 支付订单聚合 展开,将渠道适配、路由策略、对账逻辑封装在领域服务中,保持商户端接口的稳定与简洁。

1.4 聚合支付系统架构概览

下图展示了聚合支付系统的分层架构,帮助理解各模块在领域边界中的位置:

聚合支付系统分层架构 聚合支付系统分层架构 接入层(API Gateway) 统一接口 · 签名验证 · 限流熔断 · 协议转换 业务层(Order Domain) 订单聚合 · 支付指令 · 退款处理 · 状态机 路由策略 · 对账引擎 · 通知分发 渠道层(Channel Adapter) 支付宝适配器 · 适配器 · 银联适配器 · 其他 加密签名 · 报文转换 · 重试补偿 · 异步回调 基础设施层(Infrastructure) 数据库 · 缓存 · 消息队列 · 分布式锁 · 监控告警

1.4.1 各层职责说明

层级 核心职责 领域边界
接入层 对外暴露统一 API,处理鉴权、限流、协议适配 属于应用层,不包含业务逻辑
业务层 订单聚合、支付指令、路由决策、对账引擎 核心领域层,是 DDD 建模的重点
渠道层 封装各支付机构的协议差异,提供统一接口 属于基础设施层,通过端口适配器模式隔离
基础设施层 提供持久化、缓存、消息、监控等通用能力 支撑层,不包含业务语义
课程聚焦: 本课程将重点围绕 业务层(Order Domain) 展开,使用 Go 语言实现支付订单聚合的领域模型、路由策略与对账引擎,并展示如何通过 DDD 的战术设计(实体、值对象、领域服务、聚合)来构建高内聚低耦合的支付核心系统。