Library for communication with ČSOB API
Project description
CSOB client
Python library for communicating with ČSOB (https://platbakartou.csob.cz/) payment gateway API. The API is described here: https://github.com/csob/paymentgateway.
The library currently implements ČSOB API v.1.9.
Installation
pip install csobpg
Basic usage
API client initialization
The APIClient
provides the interface to communicate with the API.
from csobpg.v19 import APIClient
client = APIClient("merchantId", "merch_private.key", "csob.pub", base_url=..., http_client=...)
# Use the client to interact with the API:
client.init_payment(...)
HTTP client
The library uses the httprest library for making HTTP requests.
By default it will use httprest.http.urllib_client.UrllibHTTPClient
.
But you may use any other httprest's
HTTP client, or even write your own client.
Base methods
The library supports all base API methods. For example, that's how to initialize a payment:
from csobpg.v19.models import cart
response = client.init_payment(
order_no="2233823251",
total_amount=100,
return_url="http://127.0.0.1:5000",
cart=cart.Cart([cart.CartItem("Apples", 1, 100)]),
merchant_data=b"Hello, World!",
)
OneClick methods
Here are the steps to perform a OneClick payment.
Step 1 - make a regular payment
First, make a regular payment using the "payment/init":
response = client.payment_init(...)
# finalize payment...
Preserve the response.pay_id
, it will be used to refer to the OneClick template.
Step 2 - initialize OneClick payment
Now, having the template ID, initialize the OneClick payment. First, check that the template ID exists (optional):
response = client.oneclick_echo(template_id)
assert response.success
Then, initiate the payment:
response = client.oneclick_init_payment(template_id=..., ...)
Step 3 - process OneClick payment
Finally, process the payment:
response = client.oneclick_process(pay_id, fingerprint=...)
Exceptions handling
from csobpg.v19.errors import APIError, APIClientError
from httprest.http import HTTPRequestError
response = client.<operation>(...)
# you can access the response_code directly:
assert response.result_code == 0
# or call the `raise_for_result_code` method and handle exceptions:
try:
response.raise_for_result_code()
except APIError as exc:
# handle API error
# it is raised on any API error. You may also catch the specific API error
except APIClientError as exc:
# handle API client error
# it is raised when API returns unexpected response (e.g. invalid JSON, invalid signature)
except HTTPRequestError as exc:
# handle HTTP error
# it is raised on any HTTP error
except ValueError as exc:
# handle value error
# it is raised on any library's misuse (e.g. passing invalid parameters)
# it always means developer's mistake
RSA keys management
The simples way to pass RSA keys is to pass their file paths:
from csobpg.v19 import APIClient
client = APIClient(..., "merch_private.key", "csob.pub")
The library will read the private key from the file when needed. The public key will be cached into the RAM.
If you want to change it, use special classes:
from csobpg.v19 import APIClient
from csobpg.v19.key import FileRSAKey, CachedRSAKey
client = APIClient(..., FileRSAKey("merch_private.key"), FileRSAKey("csob.pub"))
You may also override the base RSAKey class to define your own key access strategy:
from csobpg.v19.key import RSAKey
class MyRSAKey(RSAKey):
def __str__(self) -> str:
return "my key"
Project details
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
File details
Details for the file csobpg-0.3.0.tar.gz
.
File metadata
- Download URL: csobpg-0.3.0.tar.gz
- Upload date:
- Size: 21.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.9 Linux/6.8.0-1014-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c5e1ff5b86cc47b7bed02d309c8295b9efadfb187686c48c96c4f2f4098488e |
|
MD5 | dff4615357f4e9a3ca151958340a6ee9 |
|
BLAKE2b-256 | 0276be7b52872b4b4354bb627356dc34c68022eee4383ecb5add050a8d24f0b9 |
File details
Details for the file csobpg-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: csobpg-0.3.0-py3-none-any.whl
- Upload date:
- Size: 37.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.9 Linux/6.8.0-1014-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d5b2ce7bfd0cb8c8bf89ad01b086f6bb0e8a7026236da7216359540668b6c24 |
|
MD5 | 2c9e72faaa1aa6b9f8ee052c3df52121 |
|
BLAKE2b-256 | 25cd45f6feb791dbec46d1ec68568a58b50b259b73f4b04bcc2b27f0dd3548df |