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 |
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)
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.6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ee1871a1958f0b0bbc5f16112ebc1b78bc642c483bdcb87b59145ff60943bcb |
|
MD5 | 8e8dbc53b90d8e4afae2dd14f52c3e41 |
|
BLAKE2b-256 | db5dfd86d9e88e7cf55c5d2aad6210c9c36c5d709d5173e6507d8ba7a48aa2d6 |
Hashes for peachpayments_partner-0.1.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e70aba3aa7b5f3cbfc829711260b927c2ecd860572c6c4ec8bf61d506ee9aa2 |
|
MD5 | e6e7a9a92e2785bcbbdf4e08bbe7c656 |
|
BLAKE2b-256 | 52810294d4e0dfff17b96a2b0eef741b34c47ed12df2d35f4c03275a62434263 |