This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
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

0.2.1

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

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 HPE HPE Development 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