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.1.tar.gz (18.2 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.1-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

File details

Details for the file geniuspay-1.2.1.tar.gz.

File metadata

  • Download URL: geniuspay-1.2.1.tar.gz
  • Upload date:
  • Size: 18.2 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.1.tar.gz
Algorithm Hash digest
SHA256 c3e6e5d24a4d2ff3a848ce31ab44232e21fe29c80adc9b432de603d870648f70
MD5 76ac50aba6c97b915742b9e8da637729
BLAKE2b-256 0da5b9d39d199df493ab5925609b422972dffd5f13a18bbcf224985013ec0316

See more details on using hashes here.

File details

Details for the file geniuspay-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: geniuspay-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 18.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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f42705ecee850e82642b2ac3a2dab43b617b5e2f334f913dc95c15da02ad57f6
MD5 6eaaee3ab20d019c3dbf85c027ff1aa5
BLAKE2b-256 dff94a0feb11468eaf9accc39b3f6175fce10ec779984f07756bdc4e9c7c3a22

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