Skip to content

About

台灣金流sdk

Topics

Resources

Stars

3 stars

Watchers

2 watching

Forks

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Taiwan Payment Gateway SDK for Python

Python License Testing Security

這是一個專為 Python 後端開發者設計的台灣金流整合 SDK,旨在解決第三方支付 (ECPay 綠界、TapPay) API 介面不統一、參數繁雜且缺乏型別安全的問題。

本專案採用 Strategy Pattern 與 Factory Pattern 進行架構設計,確保系統的高擴充性與可維護性,並內建嚴謹的資安驗證機制 (HMAC)。


核心亮點 (Key Features)

1. 企業級架構設計

  • 統一介面 (Unified Interface): 透過 GatewayFactory 與 PaymentAdapter 介面,標準化不同金流商的操作邏輯。
  • 依賴反轉 (DIP): 核心商業邏輯不依賴底層 API 實作,方便未來替換或新增金流服務 (Open-Closed Principle)。
  • 型別安全 (Type Safety): 全面採用 dataclasses 定義 DTO (Data Transfer Objects),在 Runtime 前即攔截參數錯誤,拒絕 "Dict Stringly Typed" 的混亂。

2. 資安優先 (Security First)

  • 防篡改機制: 內建 ECPay CheckMacValue 自動計算與驗證邏輯。
  • 防時序攻擊 (Timing Attack Protection): 在簽章比對時,強制使用 hmac.compare_digest 演算法,防止駭客透過時間差推算雜湊值。

3. 開發者友善

  • 模組化: 每個金流商 (ECPay, TapPay) 的邏輯完全隔離。
  • 測試完整性: 包含完整的 Unit Tests,並使用 Mock 物件隔離外部 HTTP 請求,確保 CI/CD 流程穩定。

系統架構 (Architecture)

本 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
Loading

About

台灣金流sdk

Topics

Resources

Stars

3 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages