Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

TrustPay payments integration library.

Project description

https://travis-ci.org/beezz/trustpaylib.svg?branch=master https://coveralls.io/repos/beezz/trustpaylib/badge.png

TrustPay payment solution integration helpers.

Install

$ pip install trustpaylib

Usage

Form approach

First merge payment request with environment variables, validate it and sign. trustpaylib.TrustPay.finalize_request returns prepared payment request. As form action use trustpay_client.environment.api_url.

>>> pay_request = trustpay_client.finalize_request(pay_request)
>>> trustpay_client.initial_data(pay_request)
{'AID': '9876543210', 'REF': u'1234567890', 'AMT': u'123.45', 'SIG': 'DF174E635DABBFF7897A82822521DD739AE8CC2F83D65F6448DD2FF991481EA3', 'CUR': u'EUR'}
>>> trustpay_client.environment.api_url
'https://ib.trustpay.eu/mapi/paymentservice.aspx'

Redirects handling

There’s not much you can (or should) do with redirect.

Note

Official TrustPay documentation: DO NOT PERFORM ANY ACTION ON THIS REDIRECT. Data is not signed and therefore cannot beconsidered as a verified payment result, such as the signed results sent to Notification URL or NotificationEmail.

But at least you can check the result code.

>>> # data received as get params to redirect
... redirect_data = {"REF": "1234567890", "RES": 3, "PID": "1212321"}
>>> redirect = trustpaylib.build_redirect(**redirect_data)
>>>
>>> trustpay_client.get_result_desc_from_redirect(redirect).short
'Authorized'
>>> trustpay_client.get_result_desc_from_redirect(redirect).long
'Payment was successfully authorized. Another notification (with result code 0 - success) will be sent when TrustPay receives and processes payment from 3rd party.'

Notifications handling

For received notification, first check signature.

>>> notification_data = {
...     "AID": "1234567890",
...     "TYP": "CRDT",
...     "AMT": "123.45",
...     "CUR": "EUR",
...     "REF": "9876543210",
...     "RES": "0",
...     "TID": "11111",
...     "OID": "1122334455",
...     "TSS": "Y",
...     "SIG": (
...         "97C92D7A0C0AD99CE5DE55C3597D5ADA"
...         "0D423991E2D01938BC0F684244814A37"
...     ),
... }
>>> notification = trustpaylib.build_notification(**notification_data)
>>> assert trustpay_client.check_notification_signature(notification)

Then check result code.

>>> trustpay_client.get_result_desc_from_notification(notification).short
'Success'
>>> trustpay_client.get_result_desc_from_notification(notification).long
'Payment was successfully processed.'

Project details


Release history Release notifications

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for trustpaylib, version 0.0.1
Filename, size File type Python version Upload date Hashes
Filename, size trustpaylib-0.0.1.tar.gz (8.7 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page