PeachPayments Partner Library is a platform agnostic Python package to help integrating PeachPayments with their partners.
Project description
Peach Partner Library
Overview
Peach Partner Library is a platform-agnostic Python package to help Payment Service Providers in integrating with PeachPayments.
Documentation:
Source Code: https://gitlab.com/peachpayments/peach-partner-python/
Key terms
Term | Definition |
---|---|
Partner API | A service provided by Peach Payments to enable Payment Service Providers to become available on the Peach Platform |
Payment Service Provider | A payment service provider who integrates with the Partner API |
Installation
Package requires Python 3.9+
# pip
$ pip3 install peachpayments-partner
# poetry
$ poetry add peachpayments-partner
Result codes
from peachpayments_partner.result_codes import result_codes
result_codes.TRANSACTION_SUCCEEDED.code == "000.000.000"
result_codes.get("000.000.000").name == "TRANSACTION_SUCCEEDED"
result_codes.get("000.000.000").description == "Transaction succeeded"
Authentication
Requests to Payment Service Provider
PeachPayments uses an authorization token (JWT) in each request made to the Payment Service Provider.
This library provides the authentication.is_authenticated
method, which takes the token as an argument and the authentication.get_key
to collect the signing_key.
The is_authenticated
method has only one required argument, the token. If it's called without the optional signing_key
it will collect the key using the get_key
method. If it's called without the optional audience
it will try to use the environment variable AUTH0_AUDIENCE
.
The method decodes the token. If that succeeds, it returns True
. Otherwise, it raises an AuthError
exception.
Formatting error responses
PeachPayments requires the error responses to be formatted in a specific way. This library provides the format_error_response
method, which takes a dict containing error response as an argument and returns a formatted error response.
def format_error_response(code, errors, data):
The errors
dict might look like this:
{
"status": ["Not a valid string."],
"code": ["Missing data for required field."],
}
The data
dict might look like this:
{
"status": 10
}
With the code
as ResultCodes.INVALID_OR_MISSING_PARAMETER
, the formatted error response will look similar to this:
{
"result": {
"code": "200.300.404",
"description": "invalid or missing parameter",
"parameterErrors": [
{
"value": 10,
"name": "status",
"message": "Not a valid string."
},
{
"name": "code",
"message": "Missing data for required field."
}
]
},
"timestamp": "2021-08-03T16:16:30.992618Z"
}
Fixtures
This library provides examples of valid requests and responses.
An example of the recommended usage for testing:
import pytest
from copy import deepcopy
from peachpayments_partner.fixtures import DEBIT_RESPONSE
@pytest.fixture
def debit_response():
return deepcopy(DEBIT_RESPONSE)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for peachpayments-partner-0.1.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28c8e90efd86cd70b78d06d7780072fa268a8af3d1ece335a314ada855271c20 |
|
MD5 | 35b3d51c6b844836e68ef511d170315d |
|
BLAKE2b-256 | d939aaaa581a40d31126ac2b65d61c2a6497a087e46f213198f6fa84c24011d9 |
Hashes for peachpayments_partner-0.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1aa70d0db4ecfb78d1acb00eb7da7b4a203b28e3a6eb6b6a0077edcf6ce5636 |
|
MD5 | c0b09d079d8d311d57758b41c8157875 |
|
BLAKE2b-256 | 245c691f61d2539c6c7cad3f6c46e4cc47b361bd8d99eb764b81ad11769757f3 |