Logo : un manchot sur fond d'étoile rouge
Alexandre Norman
de choses et d’autres
  • Blog
  • Projets
  • CV
Projets Python
  • python-gantt
  • python-nmap
  • pyClamd
Catégories
  • Asterisk
  • django
  • Outils
  • Poules
  • Raspberry Pi
  • Archives
Tags
  • asterisk (1)
  • bash (2)
  • Bricolage (1)
  • debian (6)
  • django (1)
  • dovecot (1)
  • lighttpd (1)
  • méthode (2)
  • mpd (1)
  • Nagios (1)
  • openvpn (1)
  • OSM (2)
  • outils (5)
  • Palettes (1)
  • postfix (1)
  • postgrey (1)
  • Poules (1)
  • Python (5)
  • Raspberry Pi (6)
  • raspbian (6)
  • selenium (1)
  • shellscript (2)
  • voip (1)
  • wazo (1)
  • wifi (1)

payplug-dj - le paiement en ligne facile avec PayPlug

Publication : 2016.03.19
Catégorie : django

Tags: Python django

Installation

Pour installer le module, vous pouvez l’installer via pip :

pip install payplug-dj

Il vous faudra en outre un compte https://www.payplug.com et votre clef privée pour l’accès API.

Dans le module settings.py de votre application Django, ajoutez la ligne suivante :

'payplug-dj',

à la liste des applications installées INSTALLED_APPS.

Ajoutez également votre clef privée pour l’accès API :

PAYPLUG_API_KEY = 'sk_test_XXXXxxxXXXX'

Utilisation

from payplug_dj.models import Payment
from payplug_dj.signals import payment_return
from payplug_dj.signals import payment_cancel

def my_view(request):
    # Création d'une demande de paiement
    # Avec des templates personnalisés
    payment = Payment.objects.create(
        email='mail@example.com,
        firstname='Alexandre',
        lastname='Norman',
        amount=12.45,
        currency='EUR',
        template_return='myapp/payment_return.html',
        template_cancel='myapp/payment_cancel.html',
    )

    # Crée le ticket de paiment chez PayPlug
    # en y associant des métadonnées personnalisées
    # que l'on pourra récupérer plus tard
    # lorsque l'on sera rappelé par le signal
    payment.create_payment(
        metadata={
            'my_invoice_id': '2016-0002',
            'my_client_id': 142,
        }
    )

    # Connexion des signaux de retour
    payment_return.connect(PaymentOk)
    payment_cancel.connect(PaymentCancelled)

    # Redirection vers le site de PayPlug pour
    # réaliser le paiement
    return redirect(payment.payplug_url)

def PaymentOk(sender, **kwargs):
    """
    Fonction callback appelée quand un paiement 
    a été validé
    """
    # Récupération des arguments
    # la requête
    request = kwargs.get("request")
    # le paiement
    payment = kwargs.get("payment")
    # les métadonnées
    metadata = payment.get_payplug_metadata()
    my_invoice_id = metadata['my_invoice_id']

    # Set payment OK
    if payment.state == 'P':
        # Do something
        pass
    return

def PaymentCancelled(sender, **kwargs):
    """
    Fonction callback appelée quand un paiement 
    a été annulé
    """
    # Do something
    return

La séquence consiste à créer un ticket, se connecter aux signaux de retour. Et lorsque le paiement a été validé ou pas sur le site de PayPlug, faire ce que l’on a à faire dans les fonctions de callback. C’est aussi simple que ça.

Le dépôt du projet

Le dépôt du projet se trouve ici : https://bitbucket.org/xael/payplug_dj/

Site géré avec Pelican - thème personnel
font dyslexia Increase text size Decrease text size Flux RSS Twitter