Metadata-Version: 1.1
Name: django-paynova
Version: 0.1.4
Summary: Python client for Paynova's API. For Django framework.
Home-page: https://github.com/akolpakov/django-paynova
Author: Andrey Kolpakov
Author-email: aakolpakov@gmail.com
License: MIT
Description: Paynova Aero for Django
        =======================
        
        Implementation of `Paynova
        Aero <http://docs.paynova.com/display/AERO/Payment+Flow>`__ work flow
        for Django. Using `Paynova
        API <http://docs.paynova.com/display/API/Paynova+API+Home>`__ python
        library:
        `paynova-api-python-client <https://github.com/akolpakov/paynova-api-python-client>`__.
        
        Installation
        ============
        
        1. Install ``django-paynova``:
        
           ::
        
               pip install django-paynova
        
           Python 2.7, 3.3, 3.4, PyPy are supported Django 1.6, 1.7 are
           supported
        
        2. Add ``django-paynova`` to ``INSTALLED_APPS``:
        
           .. code:: python
        
               INSTALLED_APPS = (
                   ...
                   'django_paynova',
                   ...
               )
        
        3. Configure settings:
        
           .. code:: python
        
               PAYNOVA_MERCHANT_ID = 'MERCHANT_ID'
               PAYNOVA_PASSWORD = 'PASSWORD'
               PAYNOVA_SECRET = 'SECRET'
               PAYNOVA_CALLBACK_URL = 'http://mysite.com'
        
        4. Run ``syncdb``
        
        5. Add urls to handle Paynova's callbacks:
        
           .. code:: python
        
               urlpatterns = patterns('',
                   url(r'^(?i)payments/paynova/', include('django_paynova.urls')),
               )
        
        Usage
        =====
        
        1. Create order and init payment with default params:
        
           .. code:: python
        
               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 <http://docs.paynova.com/display/API/Create+Order>`__
        
        2. Handle `Event Hook
           Notifications <http://docs.paynova.com/display/EVENTHOOKS/Event+Hook+Notifications+Home>`__:
        
           .. code:: python
        
               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 <http://docs.paynova.com/display/EVENTHOOKS/EHN%3A+Payment>`__
              from Paynova
        
        Advanced
        ~~~~~~~~
        
        Also you can create order and initialize payment separately:
        
        .. code:: python
        
            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 <http://docs.paynova.com/display/API/Create+Order>`__
        -  ``initialize_payment`` takes dictionary with `Initialize Payment
           parameters <http://docs.paynova.com/display/API/Initialize+Payment>`__
        
        Errors
        ~~~~~~
        
        If Paynova return an error, ``PaynovaException`` will be raised
        
        .. code:: python
        
            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 tests
        
        License
        =======
        
        `MIT licence <./LICENSE>`__
        
Keywords: Paynova API client python django
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Operating System :: OS Independent
