%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