Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

geniuspay-1.2.2.tar.gz (20.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

geniuspay-1.2.2-py3-none-any.whl (20.6 kB view details)

Uploaded Python 3

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

Hashes for geniuspay-1.2.2.tar.gz
Algorithm Hash digest
SHA256 d75f0386feec193c7ed7277d35e9b16460dcf408930976ae0150bc4b990f0c56
MD5 0b74c62fa2c420a317b1e0aaee85435f
BLAKE2b-256 54cbb541e8b9d16795863bb173e4b8c12b0c5648e00a0a5bab8c23768d17f859

See more details on using hashes here.

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

Hashes for geniuspay-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2b1486bd599bc83342ff5f6bd6a2d283a37bb5566e230d9dd0bd2c4629f4671b
MD5 76e51e345583148e9b836baa5b1f5941
BLAKE2b-256 55dbce9d2693b830640fa25b46aea511cd6cd003e9c4db3eb7faf27df324e8c3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page