%global _empty_manifest_terminate_build 0
Name: python-peachpayments-partner
Version: 0.1.11
Release: 1
Summary: PeachPayments Partner Library is a platform agnostic Python package to help integrating PeachPayments with their partners.
License: MIT
URL: https://gitlab.com/peachpayments/peach-partner-python/
Source0: https://mirrors.aliyun.com/pypi/web/packages/d9/62/69dff8e406adb5aceb724a5614331b300a7cb4219fdb4c4e3346163ba933/peachpayments_partner-0.1.11.tar.gz
BuildArch: noarch
Requires: python3-iso4217
Requires: python3-requests
Requires: python3-cryptography
Requires: python3-PyJWT
%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**:
* * *
### 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+
```sh
# pip
$ pip3 install peachpayments-partner
```
```sh
# poetry
$ poetry add peachpayments-partner
```
## Result codes
```python
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.
```python
def format_error_response(code, errors, data):
```
The `errors` dict might look like this:
```python
{
"status": ["Not a valid string."],
"code": ["Missing data for required field."],
}
```
The `data` dict might look like this:
```python
{
"status": 10
}
```
With the `code` as `ResultCodes.INVALID_OR_MISSING_PARAMETER`, the formatted error response will look similar to this:
```python
{
"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:
```python
import pytest
from copy import deepcopy
from peachpayments_partner.fixtures import DEBIT_RESPONSE
@pytest.fixture
def debit_response():
return deepcopy(DEBIT_RESPONSE)
```
%package -n python3-peachpayments-partner
Summary: PeachPayments Partner Library is a platform agnostic Python package to help integrating PeachPayments with their partners.
Provides: python-peachpayments-partner
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-peachpayments-partner
# 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**:
* * *
### 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+
```sh
# pip
$ pip3 install peachpayments-partner
```
```sh
# poetry
$ poetry add peachpayments-partner
```
## Result codes
```python
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.
```python
def format_error_response(code, errors, data):
```
The `errors` dict might look like this:
```python
{
"status": ["Not a valid string."],
"code": ["Missing data for required field."],
}
```
The `data` dict might look like this:
```python
{
"status": 10
}
```
With the `code` as `ResultCodes.INVALID_OR_MISSING_PARAMETER`, the formatted error response will look similar to this:
```python
{
"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:
```python
import pytest
from copy import deepcopy
from peachpayments_partner.fixtures import DEBIT_RESPONSE
@pytest.fixture
def debit_response():
return deepcopy(DEBIT_RESPONSE)
```
%package help
Summary: Development documents and examples for peachpayments-partner
Provides: python3-peachpayments-partner-doc
%description help
# 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**:
* * *
### 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+
```sh
# pip
$ pip3 install peachpayments-partner
```
```sh
# poetry
$ poetry add peachpayments-partner
```
## Result codes
```python
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.
```python
def format_error_response(code, errors, data):
```
The `errors` dict might look like this:
```python
{
"status": ["Not a valid string."],
"code": ["Missing data for required field."],
}
```
The `data` dict might look like this:
```python
{
"status": 10
}
```
With the `code` as `ResultCodes.INVALID_OR_MISSING_PARAMETER`, the formatted error response will look similar to this:
```python
{
"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:
```python
import pytest
from copy import deepcopy
from peachpayments_partner.fixtures import DEBIT_RESPONSE
@pytest.fixture
def debit_response():
return deepcopy(DEBIT_RESPONSE)
```
%prep
%autosetup -n peachpayments_partner-0.1.11
%build
%py3_build
%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .
%files -n python3-peachpayments-partner -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Thu Jun 08 2023 Python_Bot - 0.1.11-1
- Package Spec generated