Logo Lanfrica

flavien-hugs/paygate-africa

Domaine:

digital infrastructure

Type de record:

software
Créateur:
fla
Hôte:
Abstraction unifiée des passerelles de paiement africaines (CinetPay, Kkiapay...) - Zéro dépendance externe. # paygate-africa **paygate-africa** est une passerelle d'abstraction Python ultra-légère conçue pour unifier les paiements en Afrique. Intégrez **CinetPay**, **Kkiapay** et bien d'autres avec une seule interface, sans coupler votre code à des SDK tiers volumineux. --- ## Pourquoi paygate-africa ? Intégrer les paiements africains est souvent synonyme de dépendances lourdes (`httpx`, `pydantic`, `requests`) et de structures de données incompatibles. Nous avons créé ce module pour offrir une alternative **indépendante** et **unifiée**. | Caractéristique | SDK Traditionnels | paygate-africa | | :--- | :---: | :---: | | **Dépendances** | 10MB+ (httpx, pydantic...) | **0MB (Standard Lib)** | | **Utilisation** | SDK spécifique par provider | **Interface Unique (Factory)** | | **Poids** | Lourd | **Ultra-léger (< 50KB)** | | **Couplage** | Fort (modèles dictés) | **Faible (Duck Typing / Protocol)** | --- ## Fonctionnalités Clés - **Unified Interface** : Une seule méthode `initiate_payment` et `verify_payment` pour tous les providers. - **Asynchrone par défaut** : Conçu pour s'intégrer parfaitement avec FastAPI ou Django (avec `sync_to_async`). - **Type Safety** : Utilisation des `Protocols` Python (PEP 544) pour une validation stricte sans dépendance `pydantic`. - **Extensible** : Ajoutez un nouveau provider en créant seulement deux classes. - **Zero Side-Effects** : Aucun logger imposé, aucune surcharge mémoire. --- ## Installation ```bash pip install paygate-africa ``` --- ## Exemple : Intégrer un paiement en 30 secondes ### 1. Définissez votre objet Transaction (Duck Typing) Pas besoin d'hériter d'une classe. N'importe quel objet avec ces attributs fera l'affaire. ```python class MyTransaction: id = "ORDER_123" amount = 5000.0 currency = "XOF" user_email = "client@email.com" user_name = "Jean Dupont" # Optionnel description = "Achat Pack Pro" # Optionnel user_phone = "+22501020304" # Optionnel ``` ### 2. Le code d'intégration ```python import asyncio …