Skip to main content

Python low-level client for DPS Payment Express PxPost and PxFusion API's

Project description

https://pypip.in/version/dps-pxpy/badge.svg https://pypip.in/format/dps-pxpy/badge.svg https://travis-ci.org/jthi3rry/dps-pxpy.svg?branch=master https://coveralls.io/repos/jthi3rry/dps-pxpy/badge.png?branch=master https://pypip.in/py_versions/dps-pxpy/badge.svg https://pypip.in/license/dps-pxpy/badge.svg

This package provides a Python low-level client for the DPS Payment Express API’s. Clients for both PxPost and PxFusion are available.

Installation

pip install dps-pxpy

Usage

PxPost

PxPost allows merchants to handle the entire lifecycle of payment transactions using HTTPS POST requests.

For a complete documentation of the PxPost API: https://www.paymentexpress.com/Technical_Resources/Ecommerce_NonHosted/PxPost.aspx

Client

Instantiate a client with your PxPost username and password:

from dps.pxpost import PxPostClient

client = PxPostClient("username", "password")

PxPostClient relies on the popular requests.

Authorize

To issue an authorization on a credit or debit card:

response = client.authorize(amount="10.01",
                            input_currency="NZD",
                            card_number="4111111111111111",
                            card_holder_name="Holder Name",
                            date_expiry="1114",
                            cvc2="123")

You can also use a DPS billing token:

response = client.authorize(amount="10.01",
                            input_currency="NZD",
                            dps_billing_id="billingtoken")

Or, a custom billing token:

response = client.authorize(amount="10.01",
                            input_currency="NZD",
                            billing_id="custombillingtoken")

Complete

To complete an authorization and transfer funds:

response = client.complete(dps_txn_ref="reference")

Purchase

purchase is similar to authorize, but funds are transferred immediately:

response = client.purchase(amount="10.01",
                           input_currency="NZD",
                           card_number="4111111111111111",
                           card_holder_name="Holder Name",
                           date_expiry="1114",
                           cvc2="123")

You can also use a DPS or custom billing token.

Refund

To perform a complete or partial refund, use the dps transaction id returned by purchase or complete:

response = client.refund(dps_txn_ref="reference",
                         amount="5.01",
                         merchant_reference="reason for refund")

Status

To query the status of a transaction, use your merchant transaction id (authorize and purchase can take an optional txn_id used as a unique merchant reference):

response = client.status(txn_id="inv1234")

PxFusion

PxFusion allows merchants to accept credit card details within a form on their own web page. The form posts sensitive data directly to DPS, which processes the transaction and redirects the user’s browser to the merchant’s website in a way that is totally transparent to the cardholder.

For a complete documentation of the PxFusion API: https://www.paymentexpress.com/Technical_Resources/Ecommerce_NonHosted/PxFusion.aspx

Client

Instantiate a client with your PxFusion username and password:

from dps.pxfusion import PxFusionClient

client = PxFusionClient("username", "password")

PxFusionClient relies on suds-jurko for SOAP requests and ships with suds_requests to take advantage of requests.

Transaction

To retrieve a session ID where funds are transferred immediately:

response = client.purchase(amount="10.01",
                           currency="NZD",
                           return_url="https://yourdomain.com/pxfusion-callback",
                           txn_ref="ref")

You can also issue authorizations:

response = client.authorize(amount="10.01",
                            currency="NZD",
                            return_url="https://yourdomain.com/pxfusion-callback",
                            txn_ref="ref")

Note that completing an authorization transaction must be done via PxPost’s complete.

After posting the payment details and session ID to the PxFusion endpoint (https://sec.paymentexpress.com/pxmi3/pxfusionauth), DPS redirects your customer to return_url with the session ID in the query string.

Status

To check the outcome of a transaction:

response = client.status(transaction_id="sessionid")

Cancellation

To prevent a transaction from taking place:

response = client.cancel(transaction_id="sessionid")

Running Tests

Get a copy of the repository:

git clone git@github.com:OohlaLabs/dps-pxpy.git .

Install tox:

pip install tox

Run the tests:

tox

Contributions

All contributions and comments are welcome.

Change Log

v0.2.1

  • Switch to Semantic Versioning

  • Fix issue with parse_requirements for newer versions of pip (>=6.0.0)

v0.2

  • Fix setup.py for distribution

v0.1

  • Initial

Project details


Download files

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

Source Distribution

dps-pxpy-0.2.1.tar.gz (22.5 kB view details)

Uploaded Source

Built Distribution

dps_pxpy-0.2.1-py2.py3-none-any.whl (31.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file dps-pxpy-0.2.1.tar.gz.

File metadata

  • Download URL: dps-pxpy-0.2.1.tar.gz
  • Upload date:
  • Size: 22.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for dps-pxpy-0.2.1.tar.gz
Algorithm Hash digest
SHA256 4dc65dbaa04d4baf482f7be0edd690bdf80a19d0a1118e92d5e0f765aa63c56b
MD5 8678123a0f02c786d820ac7c742d2358
BLAKE2b-256 e531bf69e8fdb128c2c97a2326c6d58cd8622ba3ab138061f1777fce392273ec

See more details on using hashes here.

File details

Details for the file dps_pxpy-0.2.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for dps_pxpy-0.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e9de35632855af42824412acce84bfd000ac7de666d1abfea205184db7e939c9
MD5 484e538167d78bc25812da98084628db
BLAKE2b-256 6273cf6445ae5725b4028a6cbef0402eb6af14978ba825f9d7ded4c805331bde

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page