Python low-level client for DPS Payment Express PxPost and PxFusion API's
pip install dps-pxpy
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
Instantiate a client with your PxPost username and password:
from dps.pxpost import PxPostClient client = PxPostClient("username", "password")
PxPostClient relies on the popular requests.
To complete an authorization and transfer funds:
response = client.complete(dps_txn_ref="reference")
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.
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")
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 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
Instantiate a client with your PxFusion username and password:
from dps.pxfusion import PxFusionClient client = PxFusionClient("username", "password")
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.
To check the outcome of a transaction:
response = client.status(transaction_id="sessionid")
To prevent a transaction from taking place:
response = client.cancel(transaction_id="sessionid")
Get a copy of the repository:
git clone email@example.com:OohlaLabs/dps-pxpy.git .
pip install tox
Run the tests:
All contributions and comments are welcome.
- Switch to Semantic Versioning
- Fix issue with parse_requirements for newer versions of pip (>=6.0.0)
- Fix setup.py for distribution
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Hashes for dps_pxpy-0.2.1-py2.py3-none-any.whl