Python client for Paynova's API. For Django framework.
Project description
Paynova Aero for Django
Implementation of Paynova Aero work flow for Django. Using Paynova API python library: paynova-api-python-client.
Installation
Install django-paynova:
pip install django-paynova
Python 2.7, 3.3, 3.4, PyPy are supported Django 1.6, 1.7 are supported
Add django-paynova to INSTALLED_APPS:
INSTALLED_APPS = ( ... 'django_paynova', ... )
Configure settings:
PAYNOVA_MERCHANT_ID = 'MERCHANT_ID' PAYNOVA_PASSWORD = 'PASSWORD' PAYNOVA_SECRET = 'SECRET' PAYNOVA_CALLBACK_URL = 'http://mysite.com'
For production:
PAYNOVA_LIVE = True
Run ./manage migrate
Add urls to handle Paynova’s callbacks:
urlpatterns = patterns('', url(r'^(?i)payments/paynova/', include('django_paynova.urls')), )
Usage
Create order and init payment with default params:
from django_paynova import create_order, PaynovaException try: pp = create_order({ 'orderNumber': '0001', 'currencyCode': 'EUR', 'totalAmount': 10 }) # TODO: redirect to pp.url except PaynovaException as e: # TODO: handle exception
create_order takes dictionary with Create Order parameters
Handle Event Hook Notifications:
from django.dispatch import receiver from django_paynova.signals import paynova_payment @receiver(paynova_payment) def paynova_payment_signal(sender, status, params, **kwargs): # TODO: handle paynova payment notification
where
sender - PaynovaPayment model
status - status of payment
params - payment params from Paynova
Advanced
Also you can create order and initialize payment separately:
from django_paynova import create_order, initialize_payment, PaynovaException
try:
# create order
pp = create_order({
'orderNumber': '0005',
'currencyCode': 'EUR',
'totalAmount': 10
}, init_payment=False)
# init payment. http://docs.paynova.com/display/API/Initialize+Payment
pp = initialize_payment({'orderId': pp.order_id})
# TODO: redirect to pp.url
except PaynovaException as e:
# TODO: handle exception
create_order takes dictionary with Create Order parameters
initialize_payment takes dictionary with Initialize Payment parameters
Errors
If Paynova return an error, PaynovaException will be raised
from django-paynova import create_order, PaynovaException
try:
pp = create_order()
except PaynovaException as e:
# process exception
# e.errorNumber, e.statusKey, e.statusMessage, e.errors
pass
Tests
At first make sure that you are in virtualenv.
Install all dependencies:
make setup
To run tests:
make test
License
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
File details
Details for the file django-paynova-0.1.6.tar.gz
.
File metadata
- Download URL: django-paynova-0.1.6.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 252b7b8a00a01b08e1f0a145f9b58450b365f1b10bee50dc009241b67c4c0d7f |
|
MD5 | 9958e5624bfed0d9dc1d0730979464a2 |
|
BLAKE2b-256 | 6bfe52093ffbdaf9c5d03e8740a354346a41e9225fd23f044b88e8a1069a6716 |