Django app for TrustPayClient payment gateway API.
Tested on Django 1.4.5.
- Django
- django-detective (It is useful, but no necessary. It tracks all site requests.)
- Install python library using pip:
pip install django-trustpay
- Add
trustpay
toINSTALLED_APPS
in your Django settings file - Add
trustpay.urls
tourls.py
in your Django project - Set
HOST_URL
to be your host name with http/https protocol prefix. For example:https://www.mysite.com
- Set TrustPay settings. See below.
- Sync your database
- 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
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'[email protected]' }
and create TrustPay form with hidden fields and 'Pay' submit button:
trustpayform = TrustPayClient(is_test=settings.DEBUG).get_form(**trustpay_payment_data)
Put TrustPay form to your template:
{% include 'trustpay/helpers/form.html' with form=trustpayform submit_label='Pay with TrustPay' %}
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.
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).
get_result_message(result_code)
- returns result message by result code
get_language_code(request)
- returns TrustPay supported language code by request
trustpay
package contains all TrustPay supported currencies and countries.
Library is by Erik Telepovsky from Pragmatic Mates. See our other libraries.