Skip to main content
Python Software Foundation 20th Year Anniversary Fundraiser  Donate today!

ThePay API library

Project description

ThePay

Library for accesing ThePay payment gateway from python

https://github.com/nijel/thepay/workflows/Test/badge.svg PyPI package https://codecov.io/gh/nijel/thepay/branch/master/graph/badge.svg

Example

Configure ThePay account

from thepay.config import Config
config = Config()
config.setCredentials(12345, 12345, 'abcdefg12345', 'abcdefg12345')  # Credentials from ThePay account settings

List available payment methods

from thepay.dataApi import DataApi
data_api = DataApi(config)
payments = data_api.getPaymentMethods()

print methods as radio buttons with images

<div>
    {% for payment in payments %}
     <div class="payment-method">
        <input type="radio" name="payment_method" value="{{ payment.id }}" id="payment_{{ payment.id }}">
        <label for="payment_{{ payment.id }}" title="{{ payment.name }}">
           <img src='http://www.thepay.cz/gate/images/logos/public/209x127/{{ payment.id }}.png' alt="{{ payment.name }}">
        </label>
     </div>
    {% endfor %}
</div>

Redirect user to ThePay - create payment

from thepay.payment import Payment

payment = Payment(config)

payment.setValue(321)
payment.setMethodId(13) # ID of payment method from above
payment.setCustomerEmail('test@test.te')
payment.setDescription('Order 123 payment')
payment.setReturnUrl('https://example.com/payment')  # where to redirect user after payment
payment.setMerchantData(123)  # Any custom data - not visible to user

payment.getCreateUrl()  # Redirect user to this URL to begin payment

Check incomming payment

This code should be run on returnUrl from above code

from thepay.payment import ReturnPayment

return_payment = ReturnPayment(config)
return_payment.parseData(self.request.GET)  # Pass all GET received data in form of dict()

if not return_payment.checkSignature():
    return False  # Invalid payment signature

return_payment.getMerchantData()  # -> 123, previously saved custom data
return_payment.getValue()  # -> 321
return_payment.getStatus()  # Order status, see next paragraph
Order statuses
  • 2 = STATUS_OK
  • 3 = STATUS_CANCELED
  • 4 = STATUS_ERROR
  • 6 = STATUS_UNDERPAID
  • 7 = STATUS_WAITING
  • 9 = STATUS_CARD_DEPOSIT

Get info about payment

payment_id = return_payment.getPaymentId()
payment = data_api.getPayment(payment_id)  # returns object with all payment data

License

LGPL

Project details


Release history Release notifications | RSS feed

This version

0.5

Download files

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

Files for nijel-thepay, version 0.5
Filename, size File type Python version Upload date Hashes
Filename, size nijel_thepay-0.5-py3-none-any.whl (11.6 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size nijel-thepay-0.5.tar.gz (9.6 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page