專案概覽
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 的事件驅動架構,以實現可靠的高吞吐量支付處理

