這是一個專為 Python 後端開發者設計的台灣金流整合 SDK,旨在解決第三方支付 (ECPay 綠界、TapPay) API 介面不統一、參數繁雜且缺乏型別安全的問題。
本專案採用 Strategy Pattern 與 Factory Pattern 進行架構設計,確保系統的高擴充性與可維護性,並內建嚴謹的資安驗證機制 (HMAC)。
- 統一介面 (Unified Interface): 透過
GatewayFactory與PaymentAdapter介面,標準化不同金流商的操作邏輯。 - 依賴反轉 (DIP): 核心商業邏輯不依賴底層 API 實作,方便未來替換或新增金流服務 (Open-Closed Principle)。
- 型別安全 (Type Safety): 全面採用
dataclasses定義 DTO (Data Transfer Objects),在 Runtime 前即攔截參數錯誤,拒絕 "Dict Stringly Typed" 的混亂。
- 防篡改機制: 內建 ECPay
CheckMacValue自動計算與驗證邏輯。 - 防時序攻擊 (Timing Attack Protection): 在簽章比對時,強制使用
hmac.compare_digest演算法,防止駭客透過時間差推算雜湊值。
- 模組化: 每個金流商 (ECPay, TapPay) 的邏輯完全隔離。
- 測試完整性: 包含完整的 Unit Tests,並使用 Mock 物件隔離外部 HTTP 請求,確保 CI/CD 流程穩定。
本 SDK 遵循分層架構 (Layered Architecture) 設計:
graph TD
User[Developer Code] --> Factory[GatewayFactory]
Factory --> Adapter[PaymentAdapter Interface]
subgraph "Abstraction Layer"
Adapter
end
subgraph "Implementation Layer"
Adapter --> EcpayAdapter
Adapter --> TappayAdapter
end
subgraph "Data Access Layer (DAO)"
EcpayAdapter --> EcpayDAO
TappayAdapter --> TappayDAO
end
subgraph "Security Layer"
EcpayDAO --> Security
end