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.13.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 458cad7b364d4f10ebdb3c5f5de7239750497fcf6a58cf052fe67aea29fb4fa8 |
|
MD5 | 060e281415c27e3b826e35281dc815f1 |
|
BLAKE2b-256 | c7b9bfcd6e2b9b6972afe1a069e9a41dabba6c7aeac86abef20631ab15d03721 |
Hashes for peachpayments_partner-0.1.13-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 372131cdbcb22c331e1520561856b8dc3c861d77dadd2e8c0eac5c6b3f5d50ef |
|
MD5 | b9b1b18b5a7759cb0c0a1e709b68beb0 |
|
BLAKE2b-256 | 0d6074eedb302f35e7c88a757cb3f2aed732598d0f55747dedf0396c0b335730 |