專案概覽
MEXAR 國際匯款系統的 payout gateway microservice。透過整合第三方出款供應商(EasyLink、TransfeZ)處理向收款人的出款撥付,處理其 webhook 回呼,並透過 Webhook 與 Kafka 發出結構化的服務間事件以通知出款狀態變更。由於法遵要求,正式環境中僅啟用 TransfeZ。
技術棧
- Backend — Python/FastAPI
- Database — PostgreSQL
- Message Queue — Kafka、RabbitMQ
- 服務間通訊 — Webhook、Kafka
核心功能
- 多供應商整合 — 抽象化的 gateway 層支援 EasyLink 與 TransfeZ;與供應商無關的設計使得在法遵要求變動時得以快速切換
- Webhook 處理 — 處理第三方入款回呼,並透過 Kafka 向核心後端發出結構化事件
- 出款狀態生命週期 — 從撥款發起到供應商確認的端到端狀態追蹤
安全性
- IP Whitelist — 將 webhook 回呼端點限制於受信任的供應商 IP
- Signature Verification — 對所有入款供應商回呼進行請求簽章驗證
- SSL/TLS — 與所有第三方供應商強制加密通訊
設計原則
- Idempotency — 冪等的撥款處理,防止在非同步的供應商回呼之間發生重複出款
- Extensibility — 與供應商無關的 gateway 抽象,使得因應法規限制而快速更換出款合作夥伴成為可能
- Scalability — 透過 Kafka 的事件驅動架構,以實現可靠的跨境出款處理

