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 |
| Outbound API call | API calls sent from Partner API to the Payment Service Provider |
| Inbound API call | API calls sent from Payment Service Provider to 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)
Release files for peachpayments-partner 0.1.15
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| peachpayments_partner-0.1.15.tar.gz | 34.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| peachpayments_partner-0.1.15-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 70.6 kB
Release files / peachpayments_partner-0.1.15.tar.gz
| Download URL | peachpayments_partner-0.1.15.tar.gz |
|---|---|
| Size | 34.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ce759c28fa31eaec9588e6e899b3575f289dab886cacd2dcedd8905b710baab9
|
|
BLAKE2b-256 checksum How to use checksums |
bccf58cd8edee5733d25be3d90cf8658ab9eda1b90d7ee3abd1a11789a9f8a92
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.3 CPython/3.9.25 Linux/6.8.0-1033-aws
|
Release files / peachpayments_partner-0.1.15-py3-none-any.whl
| Download URL | peachpayments_partner-0.1.15-py3-none-any.whl |
|---|---|
| Size | 36.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
334113f70a7736dd08301fe18b005b2eb7d206458e893743415c009f4f1b2406
|
|
BLAKE2b-256 checksum How to use checksums |
5c53ec885fe2971389dad4906a751f4efd2417a086dfeb580080a3b19177b0ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.3 CPython/3.9.25 Linux/6.8.0-1033-aws
|