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
Install python library using pip: pip install django-trustpay
Add trustpay to INSTALLED_APPS in your Django settings file
Add trustpay.urls to urls.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
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.
Metadata
Release files for django-trustpay 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django-trustpay-0.4.0.tar.gz | 8.9 kB | Details |
Release files / django-trustpay-0.4.0.tar.gz
| Download URL | django-trustpay-0.4.0.tar.gz |
|---|---|
| Size | 8.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a86566ee20e2b62526d890bcc284b1838eab87c97c67f36186266b116bd31381
|
|
BLAKE2b-256 checksum How to use checksums |
6c7ae36a655e650c6e35819d660c95959fbf993c1fd8a10f7971f3d3eb393a22
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.2.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.5
|