django-trustpay

Django app for Trustpay payment gateway API.


Keywords
django, trustpay, payment, gateway, API
License
BSD-3-Clause
Install
pip install django-trustpay==0.2.2

Documentation

django-trustpay

Django app for TrustPayClient payment gateway API.

Tested on Django 1.4.5.

Requirements

  • Django

Recommendations

  • django-detective (It is useful, but no necessary. It tracks all site requests.)

Installation

  1. Install python library using pip: pip install django-trustpay
  2. Add trustpay to INSTALLED_APPS in your Django settings file
  3. Add trustpay.urls to urls.py in your Django project
  4. Set HOST_URL to be your host name with http/https protocol prefix. For example: https://www.mysite.com
  5. Set TrustPay settings. See below.
  6. Sync your database

Settings

TRUSTPAY_AID_TEST
Client's AID for TEST environment.
TRUSTPAY_AID_LIVE
Client's AID for LIVE environment.
TRUSTPAY_SECRET_KEY_TEST
Client's Secret key for TEST environment.
TRUSTPAY_SECRET_KEY_LIVE
Client's Secret key for LIVE environment.
TRUSTPAY_PAYMENT_SERVICE_URL_TEST
TrustPay PAYMENT SERVICE URL for TEST environment. Default: 'https://test.trustpay.eu/mapi/paymentservice.aspx'
TRUSTPAY_PAYMENT_SERVICE_URL_LIVE
TrustPay PAYMENT SERVICE URL for LIVE environment. Default: 'https://ib.trustpay.eu/mapi/paymentservice.aspx'
TRUSTPAY_CLIENT_REDIRECT_URL_TEST
TrustPay CLIENT REDIRECT URL for TEST environment. Default: 'https://test.trustpay.eu/mapi/pay.aspx'
TRUSTPAY_CLIENT_REDIRECT_URL_LIVE
TrustPay CLIENT REDIRECT URL for LIVE environment. Default: 'https://ib.trustpay.eu/mapi/pay.aspx'
TRUSTPAY_SUCCESS_RETURN_URL
Success return URL. Default: u'%s%s' % (settings.HOST_URL, reverse_lazy('trustpay_success_return'))
TRUSTPAY_ERROR_RETURN_URL
Error return URL. Default: u'%s%s' % (settings.HOST_URL, reverse_lazy('trustpay_error_return'))
TRUSTPAY_CANCEL_RETURN_URL
Cancel return URL. Default: u'%s%s' % (settings.HOST_URL, reverse_lazy('trustpay_cancel_return'))
TRUSTPAY_NOTIFICATION_URL
Notification URL. Default: u'%s%s' % (settings.HOST_URL, reverse_lazy('trustpay_notification'))
TRUSTPAY_NOTIFICATION_EMAIL
Notification email. Default: ADMINS[0][0] or None

Usage

Prepare payment data

In your checkout view prepare TrustPay payment data:

trustpay_payment_data = {
    # required
    'amount': 123.45,
    'currency': trustpay.CURRENCY_EUR,
    'reference': u'ORDER-123',  # Don't put # sign in reference. It will be returned back as GET parameter.

    # not required
    'language': get_language_code(request),
    'country': trustpay.COUNTRY_SLOVAK_REPUBLIC,
    'description': u'This is Trustpay test payment',
    'customer_email': u'example@example.net'
}

and create TrustPay form with hidden fields and 'Pay' submit button:

trustpayform = TrustPayClient(is_test=settings.DEBUG).get_form(**trustpay_payment_data)

Render payment form

Put TrustPay form to your template:

{% include 'trustpay/helpers/form.html' with form=trustpayform submit_label='Pay with TrustPay' %}

Handle return views

By default, SuccessReturnView, ErrorReturnView, CancelReturnView simply print request data and error message if any. You should override templates trustpay/success_return.html, trustpay/error_return.html and trustpay/cancel_return.html or define your own return views. If you decide to use your own return views, don't forget to set TRUSTPAY_SUCCESS_RETURN_URL, TRUSTPAY_ERROR_RETURN_URL and TRUSTPAY_CANCEL_RETURN_URL settings.

Handle notification view

trustpay.views.NotificationView stores every notification from TrustPay service to database. You shouldn't have set BasicAuth or any other authentication on this view (reverse('trustpay_notification')), because TrustPay won't be able to access it.

I recommend you to create a cron job which will handle each safe notification (with flag is_safe - it means the payment request from merchant was signed and return signature is correct).

Helpers

get_result_message(result_code)
returns result message by result code
get_language_code(request)
returns TrustPay supported language code by request

Constants

trustpay package contains all TrustPay supported currencies and countries.

Authors

Library is by Erik Telepovsky from Pragmatic Mates. See our other libraries.