Aller au contenu

paygate-africa

Module Python d'abstraction des passerelles de paiement africaines — Sans dépendances.

Il fournit une interface unifiée pour intégrer plusieurs fournisseurs sans coupler le reste de l'application à un SDK tiers.

  • Performance Ultra-Légère

    Zéro dépendance, moins de 50KB. Utilise uniquement la bibliothèque standard Python (urllib, asyncio).

  • Sécurisé par Design

    Aucun stockage de secrets en base. Validation stricte via les Protocols Python (PEP 544).

  • Interface Unifiée

    Une seule interface, quel que soit le moyen de paiement (Mobile Money, Carte, etc.).

  • Async-First

    Conçu pour s'intégrer nativement avec FastAPI ou tout environnement asynchrone moderne.


Providers supportés

Provider Mécanisme Statut
CinetPay Redirection vers page de paiement hébergée ✅ Disponible
Kkiapay Widget frontend + vérification API ✅ Disponible

Aperçu rapide

from paygate_africa.factory import PaymentProviderPath, select_provider

# 1. Sélectionner le provider (CINETPAY ou KKIAPAY)
provider = select_provider(PaymentProviderPath.CINETPAY)

# 2. Initier un paiement
url = await provider.initiate_payment(transaction)

# 3. Vérifier le statut
result = await provider.verify_payment(transaction.id)
# {"status": "SUCCESS", "raw_data": {...}}

Architecture

classDiagram
    class PaymentProvider {
        <<interface>>
        +initiate_payment(tx: Transaction) str*
        +verify_payment(transaction_id: str) dict*
    }
    class CinetPayProvider {
        +initiate_payment(tx)
        +verify_payment(id)
    }
    class KkiapayProvider {
        +initiate_payment(tx)
        +verify_payment(id)
    }
    class PaymentProviderPath {
        <<enumeration>>
        CINETPAY
        KKIAPAY
    }

    PaymentProvider <|-- CinetPayProvider
    PaymentProvider <|-- KkiapayProvider
    PaymentProviderPath ..> PaymentProvider : selects

Structure du projet

paygate_africa/
├── base.py          # Contrat abstrait (ABC) + Protocol Transaction
├── factory.py       # Chargement dynamique des providers
├── cinetpay/        # Implémentation CinetPay
└── kkiapay/         # Implémentation Kkiapay

Consulte le Guide de démarrage pour commencer.