项目概览
MEXAR 国际汇款系统的 payment gateway microservice。通过集成第三方支付供应商(Bayarind、Xendit、iPaymu)处理入款收款,处理其 webhook 回调,并通过 Webhook 与 Kafka 发出结构化的服务间事件以通知支付状态变更。由于合规要求,生产环境中仅启用 Bayarind。
技术栈
- Backend — Python/FastAPI
- Database — PostgreSQL
- Message Queue — Kafka、RabbitMQ
- 服务间通信 — Webhook、Kafka
核心功能
- 多供应商集成 — 抽象化的 gateway 层支持 Bayarind、Xendit 与 iPaymu;与供应商无关的设计使得在合规要求变动时得以快速切换
- Webhook 处理 — 处理第三方入款回调,并通过 Kafka 向核心后端发出结构化事件
- 支付状态生命周期 — 从付款发起到供应商确认的端到端状态跟踪
安全性
- IP Whitelist — 将 webhook 回调端点限制于受信任的供应商 IP
- Signature Verification — 对所有入款供应商回调进行请求签名验证
- SSL/TLS — 与所有第三方供应商强制加密通信
设计原则
- Idempotency — 幂等的支付处理,确保在分布式回调之间不会重复扣款
- Extensibility — 与供应商无关的 gateway 抽象,使得因应法规限制而快速更换支付合作伙伴成为可能
- Scalability — 通过 Kafka 的事件驱动架构,以实现可靠的高吞吐量支付处理

