SDK Django pour GeniusPay - paiements Mobile Money en Afrique
Project description
GeniusPay Django SDK
Un SDK Django robuste, sécurisé et "Plug-and-Play" pour intégrer facilement l'API GeniusPay dans vos projets.
Ce que ce SDK fait pour vous
- Paiements : Création, récupération et listage avec gestion complète de l'autorouting et des gateways (Wave, Paystack, CinetPay, PawaPay...).
- Webhooks Sécurisés : Réception automatique des webhooks avec vérification cryptographique (
HMAC-SHA256) et protection anti-rejeu. - Base de Données Automatique : Sauvegarde transparente de chaque transaction et mise à jour de son statut dans votre base de données locale.
- Signaux Django : Plus besoin de créer des vues pour traiter les paiements, connectez-vous simplement aux signaux natifs (
payment_success,payment_failed). - Panneau d'Administration : Visualisez l'historique de vos paiements GeniusPay directement dans votre espace Django Admin.
1. Installation & Configuration
Installez le package et ajoutez 'geniuspay' à vos applications installées :
# settings.py
INSTALLED_APPS = [
# ...
'geniuspay',
]
# Configurez vos clés GeniusPay
GENIUSPAY = {
"API_KEY": "pk_live_xxxx",
"API_SECRET": "sk_live_xxxx",
"WEBHOOK_SECRET": "whsec_xxxx", # Obligatoire pour sécuriser les webhooks
}
Appliquez les migrations pour créer la table de suivi des transactions :
python manage.py makemigrations geniuspay
python manage.py migrate
2. Recevoir des Webhooks (La magie des Signaux)
Le SDK s'occupe de la sécurité et de la mise à jour en base de données. Vous n'avez qu'à exposer la route et écouter le signal.
Dans votre urls.py principal :
from django.urls import path, include
urlpatterns = [
# ...
path('geniuspay/', include('geniuspay.urls')),
# Votre URL webhook sera : https://votre-site.com/geniuspay/webhook/
]
Dans n'importe quel fichier de votre projet (ex: signals.py ou views.py) :
from django.dispatch import receiver
from geniuspay.signals import payment_success, payment_failed
@receiver(payment_success)
def valider_commande(sender, transaction, raw_event, **kwargs):
print(f"Le paiement {transaction.reference} de {transaction.amount} {transaction.currency} a réussi !")
# Mettez à jour votre panier, envoyez un email au client, etc.
@receiver(payment_failed)
def annuler_commande(sender, transaction, raw_event, **kwargs):
print(f"Le paiement {transaction.reference} a échoué.")
3. Initier un Paiement
C'est aussi simple que d'instancier le client.
from geniuspay.client import GeniusPayClient
def payer_commande(request):
client = GeniusPayClient()
payment = client.payments.create(
amount=5000,
description="Achat de chaussures",
customer={"name": "Jean Dupont", "phone": "+22500000000"},
success_url="https://monsite.com/merci",
# gateway="wave" # Optionnel : Laissez vide pour l'autorouting de GeniusPay !
)
# Redirigez l'utilisateur vers la page de paiement sécurisée
return redirect(payment.checkout_url)
4. Lister les Opérateurs (Providers)
Si vous construisez votre propre interface, vous pouvez lister dynamiquement les opérateurs disponibles.
client = GeniusPayClient()
providers = client.providers.list(country="CI", gateway="pawapay")
for p in providers:
print(p.name) # ex: Orange Money, MTN Mobile Money...
5. Gestion des Erreurs
Le SDK expose des exceptions propres pour vous faciliter la vie :
GeniusPayNetworkError, GeniusPayAuthError, GeniusPayValidationError, GeniusPayWebhookError.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file geniuspay-1.2.2.tar.gz.
File metadata
- Download URL: geniuspay-1.2.2.tar.gz
- Upload date:
- Size: 20.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d75f0386feec193c7ed7277d35e9b16460dcf408930976ae0150bc4b990f0c56
|
|
| MD5 |
0b74c62fa2c420a317b1e0aaee85435f
|
|
| BLAKE2b-256 |
54cbb541e8b9d16795863bb173e4b8c12b0c5648e00a0a5bab8c23768d17f859
|
File details
Details for the file geniuspay-1.2.2-py3-none-any.whl.
File metadata
- Download URL: geniuspay-1.2.2-py3-none-any.whl
- Upload date:
- Size: 20.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b1486bd599bc83342ff5f6bd6a2d283a37bb5566e230d9dd0bd2c4629f4671b
|
|
| MD5 |
76e51e345583148e9b836baa5b1f5941
|
|
| BLAKE2b-256 |
55dbce9d2693b830640fa25b46aea511cd6cd003e9c4db3eb7faf27df324e8c3
|