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/