API client Python non officiel pour les paiements mobiles FASO ARZEKA au Burkina Faso. Client robuste, production-ready avec gestion automatique des erreurs, retry automatique, et réauthentification automatique.
# FASO ARZEKA Mobile Money Payment API (Burkina Faso)
API client Python non officiel pour les paiements mobiles FASO ARZEKA au Burkina Faso v3.0.1.
Client robuste, production-ready avec gestion automatique des erreurs, retry automatique, et réauthentification automatique.
## ✨ Fonctionnalités principales
- ✅ **Authentification sécurisée** avec gestion automatique des tokens
- ✅ **Réauthentification automatique** quand le token expire
- ✅ **Gestion complète des erreurs** avec exceptions personnalisées
- ✅ **Retry automatique** avec backoff exponentiel
- ✅ **Logging intégré** pour traçabilité complète
- ✅ **Session persistante** pour meilleures performances
- ✅ **Type hints complets** pour meilleure auto-complétion
- ✅ **Context manager** pour gestion automatique des ressources
- ✅ **Validation des tokens** avec informations d'expiration
- ✅ **Tests unitaires complets** avec couverture >90%
## 📋 Prérequis
1. **Compte API Arzeka Money**
- Username
- Password
- Hash Secret
- Merchant ID
2. **Certificats SSL** (si fournis par l'opérateur)
3. **Python 3.8 ou supérieur**
## 📦 Dépendances
```txt
requests>=2.31.0
setuptools
urllib3
```
Le client nécessite Python 3.8 ou supérieur.
## 🚀 Installation
```bash
# Avec pip
pip install git+
github.com
# Avec poetry
poetry add git+
github.com
# Installation en mode développement
git clone
github.com
cd fasoarzeka
pip install -e .
```
## 🎯 Guide de démarrage rapide
### Option 1 : Utilisation avec fonctions de convenance (Recommandé)
```python
from fasoarzeka import authenticate, initiate_payment, check_payment
# 1. Authentifiez-vous une fois
auth = authenticate("your_username", "your_password")
print(f"Token expires in: {auth['expires_in']} seconds")
# 2. Initiez un paiement
payment_data = {
"amount": 1000, # Montant en FCFA (minimum 100)
"merchant_id": "MERCHANT_123",
"additional_info": {
"first_name": "Jean",
"last_name": "Dup …