跨境支付系统的技术架构设计,涵盖核心系统、网关、清算、容灾和性能优化。
┌─────────────────────────────────────────────────────────────┐
│ 接入层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 商户API │ │ 管理后台 │ │ 移动App │ │ 第三方 │ │
│ │ (REST) │ │ (Web) │ │ (SDK) │ │ (OpenAPI)│ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
└───────┼────────────┼────────────┼────────────┼───────────┘
│ │ │ │
└────────────┴────────────┴────────────┘
│
┌─────────────────────────▼─────────────────────────────────┐
│ API Gateway │
│ (限流、鉴权、路由、WAF、日志) │
└─────────────────────────┬─────────────────────────────────┘
│
┌─────────────────────┼─────────────────────┐
│ │ │
▼ ▼ ▼
┌────────┐ ┌────────┐ ┌────────┐
│ 收单服务 │ │ 收付款服务 │ │ 发卡服务 │
│ │ │ │ │ │
│- 收银台 │ │- 付款 │ │- 卡管理 │
│- 风控 │ │- 收款 │ │- 授权 │
│- 路由 │ │- 归集 │ │- 清算 │
│- 3DS │ │- 换汇 │ │- 争议 │
└────┬───┘ └────┬───┘ └────┬───┘
│ │ │
└───────────────────┼───────────────────┘
│
┌────────────────────────▼─────────────────────────────────┐
│ 统一清算核心 │
│ (交易记录、对账、结算、核算) │
└────────────────────────┬─────────────────────────────────┘
│
┌────────────────────┼────────────────────┐
│ │ │
▼ ▼ ▼
┌────────┐ ┌────────┐ ┌────────┐
│ 风控引擎 │ │ 合规引擎 │ │ 账务系统 │
│(实时评分)│ │(KYC/AML)│ │(复式记账)│
└────────┘ └────────┘ └────────┘
| 模块 |
功能 |
性能要求 |
| 订单系统 |
生成唯一订单号、幂等控制 |
P99 < 10ms |
| 路由引擎 |
智能选择最优通道 |
P99 < 50ms |
| 风控引擎 |
实时评分、决策 |
P99 < 100ms |
| 授权引擎 |
对接卡组织/银行 |
P99 < 500ms |
| 清算引擎 |
日终对账、资金结算 |
批处理 |
交易生命周期状态机:
INITIATED(已发起)
↓
PENDING_AUTH(待授权)
↓
├─ AUTH_SUCCESS → AUTHORIZED(已授权)
│ ↓
│ PENDING_CAPTURE(待捕获)
│ ↓
│ ├─ CAPTURE_SUCCESS → CAPTURED(已捕获)
│ │ ↓
│ │ PENDING_SETTLEMENT(待结算)
│ │ ↓
│ │ SETTLED(已结算)
│ │
│ └─ CAPTURE_FAIL → CAPTURE_FAILED(捕获失败)
│
├─ AUTH_FAIL → AUTH_FAILED(授权失败)
│
└─ AUTH_TIMEOUT → AUTH_PENDING(授权超时)
可逆操作:
- AUTHORIZED → VOIDED(撤销)
- CAPTURED → REFUNDED(退款)
- SETTLED → CHARGEBACK(拒付)
┌─────────────────────────────────────────────┐
│ 全局负载均衡(GSLB) │
│ (DNS + Anycast + 健康检查) │
└──────────────────┬──────────────────────────┘
│
┌──────────────┼──────────────┐
▼ ▼ ▼
┌────────┐ ┌────────┐ ┌────────┐
│ 北京机房 │ │ 上海机房 │ │ 香港机房 │
│ (主) │ │ (热备) │ │ (灾备) │
│ │ │ │ │ │
│ 写+读 │ │ 读+写 │ │ 读 │
└────────┘ └────────┘ └────────┘
数据同步:
- 同城:同步复制(RPO ≈ 0)
- 异地:异步复制(RPO < 1min)
| 指标 |
定义 |
目标 |
| RTO |
恢复时间目标 |
< 5分钟 |
| RPO |
恢复点目标 |
< 1分钟 |
| 可用性 |
年度可用时间 |
99.99% |
| 故障切换 |
自动切换时间 |
< 30秒 |
| 场景 |
降级措施 |
影响 |
| 风控服务故障 |
降级为规则引擎,跳过ML模型 |
误杀率上升 |
| 通道故障 |
自动切换备用通道 |
成功率略降 |
| 数据库主库故障 |
切换只读模式,暂停写入 |
新交易暂停 |
| 核心系统故障 |
启用离线模式,记录待处理 |
实时性下降 |
| 指标 |
定义 |
目标 |
| 交易延迟 |
从请求到响应 |
P99 < 500ms |
| 授权延迟 |
到卡组织的往返 |
P99 < 300ms |
| 吞吐量 |
每秒处理交易数 |
> 10,000 TPS |
| 并发连接 |
同时处理请求数 |
> 100,000 |
| 数据库QPS |
数据库查询/秒 |
> 500,000 |
| 层面 |
策略 |
效果 |
| 网络 |
专线 + Anycast + 边缘缓存 |
延迟降低 50% |
| 应用 |
异步化 + 连接池 + 本地缓存 |
吞吐量提升 3x |
| 数据库 |
分库分表 + 读写分离 + 索引优化 |
QPS 提升 10x |
| 缓存 |
Redis Cluster + 多级缓存 |
读延迟 < 1ms |
| 消息 |
Kafka + 批量处理 |
吞吐提升 5x |
| 方案 |
适用 |
实现 |
| SAGA |
长事务、跨服务 |
补偿事务 |
| TCC |
短事务、强一致 |
Try-Confirm-Cancel |
| 本地消息表 |
最终一致 |
异步可靠通知 |
| 最大努力通知 |
非关键 |
多次重试 |
日终对账流程:
1. 数据采集
├── 内部交易日志
├── 通道清算文件
└── 银行流水
2. 数据匹配
├── 逐笔匹配(订单号、金额、时间)
├── 模糊匹配(时间差容忍)
└── 批量匹配(汇总核对)
3. 差异处理
├── 单边账(有内无外/有外无内)
├── 金额差(手续费、汇率差异)
├── 时间差(T+1/T+2 延迟)
└── 异常账(重复、遗漏)
4. 调账
├── 自动调账(规则匹配)
└── 人工审核(异常差异)
| 层级 |
措施 |
工具 |
| 网络层 |
WAF、DDoS防护、IP白名单 |
Cloudflare、AWS Shield |
| 应用层 |
输入校验、防重放、防篡改 |
自定义中间件 |
| 数据层 |
加密、脱敏、访问控制 |
HSM、KMS |
| 运维层 |
堡垒机、审计日志、监控 |
ELK、Prometheus |
密钥生命周期:
生成 → 存储 → 分发 → 使用 → 轮换 → 销毁
- 生成:HSM 内生成,不可导出
- 存储:HSM 或 KMS,分级存储
- 分发:加密传输,最小权限
- 使用:API调用,不接触明文
- 轮换:定期自动轮换
- 销毁:安全擦除,审计记录
创建时间:2026-05-29
维护者:Lucy 🐾