Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

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

Project Description

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
Release History

Release History

This version
History Node

0.2.1

History Node

0.2

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
dps_pxpy-0.2.1-py2.py3-none-any.whl (31.6 kB) Copy SHA256 Checksum SHA256 py2.py3 Wheel Jan 29, 2015
dps-pxpy-0.2.1.tar.gz (22.5 kB) Copy SHA256 Checksum SHA256 Source Jan 29, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting