Tochka API v2 aka Cyclops API
Project description
Tochka API v2 aka Cyclops API Library for Python
Ставьте звезды, суки бесполезные! Мне от ваших 100 установок в первый день НИКАКОЙ ПОЛЬЗЫ
Unofficial Python Library for Tochka API
Неофициальная библиотека на Python для работы с АПИ Точка Банка (я его предпочитаю называть Дрочка банком). Документация туть.
- Работает через JSONRPC.
- Может грузить документы.
- Содержит магию "Лунной призмы" 🪄 💫 ✨
Установка:
pip install tochka-cyclops-api
# Если текущая версия падает с ошибкой, установите предыдущую
pip install tochka-cyclops-api==0.3.0
# или так
poetry add tochka-cyclops-api
poetry add git+https://github.com/s3rgeym/tochka-cyclops-api.git
git clone https://github.com/s3rgeym/tochka-cyclops-api.git
cd tochka-cyclops-api
# что-то правим
poetry install --no-dev
Поддержка asyncio пока не планируется, но за звезду и донат в пару тысяч оперативно добавлю.
В эпоху Docker использовать версии Python, отличные от последних — моветон, поэтому поддержка более старых точно не планируется.
Использование:
from tochka_cyclops_api import ApiTochka, ApiError
api = ApiTochka(
base_url='<API_URL>',
sign_system='<SIGN_SYSTEM>',
sign_thumbprint='<SIGN_THUMBPRINT>',
pkey_data=open('/path/to/rsaprivkey.pem').read(),
)
# Методы генерируются динамически. Вызов несуществующих атрибутов инстанса ApiTochka преобразуется в запросы к API.
try:
"""
Отправит запрос с таким телом:
{
"id": "0d6a26ea-84f0-4be2-9999-b46edc9b59b6",
"jsonrpc": "2.0",
"method": "identification_payment",
"params": {
"payment_id": "cyclops-b9eabfd7-eead-4940-a6b1-4654850664f5",
"owners":[{
"virtual_account": "859b645a-ebb8-4f91-8b05-b433c85dc662",
"amount": 1000
}]
}
}
* camelCase преобразуется в snake_case: identificationPayment,
IdentificationPayment и identification_payment равнозначны.
* Вместо именованных параметров можно передать словарь.
* Если словарь и именованные параметры передаются вместе, то они мержатся,
причем именованные параметры перезапишут элементы словаря.
Результат будет примерно таким:
{
"virtual_accounts": [{
"code": "859b645a-ebb8-4f91-8b05-b433c85dc662",
"cash": 1000
}]
}
"""
res = api.identificationPayment(payment_id="cyclops-b9eabfd7-eead-4940-a6b1-4654850664f5", owners=[{
"virtual_account": "859b645a-ebb8-4f91-8b05-b433c85dc662",
"amount": 1000
}])
# Вместо словаря при парсинге объектов используется AttrDict,
# который позволяет к полям обращаться как к атрибутам, а не только по индексу
print(rv.virtual_accounts[0])
except ApiError as ex:
if ex.code == '4411':
print('Аккаунт не найден')
...
rv = api.upload_document(
'beneficiary',
# можно передать любой объект, имеющий метод read, например, `requests.get('https://target/path/to/file.pdf')`,
# но тогда придется указать content_type
open('/path/to/offer.pdf', 'rb'),
beneficiary_id='...',
document_type='contract_offer',
# Эти параметры можно опустить, они сгенерируются автоматически
document_date='2023-11-12',
document_number='12345',
)
print(rv.document_id) # cyclops-231020230621590-98a669e2-859b-44ac-9831-4a964ac7e49b
Запуск тестов:
poetry run python -m unittest
Все мыслимые права защищены в натуре (с) 2023.
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
File details
Details for the file tochka_cyclops_api-0.3.1.tar.gz
.
File metadata
- Download URL: tochka_cyclops_api-0.3.1.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.11.0 Linux/6.2.0-1016-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
3582238bb6a288f425ccb7ca563cffae888a09229666c0a4ce039bb1db2f6e99
|
|
MD5 |
83240799d1e1221708dd1b5d5cbef3ed
|
|
BLAKE2b-256 |
4ed3e5fb5b04f433fe28054c6852a6b9379b790dddfae4a63356549367098ac6
|
File details
Details for the file tochka_cyclops_api-0.3.1-py3-none-any.whl
.
File metadata
- Download URL: tochka_cyclops_api-0.3.1-py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.11.0 Linux/6.2.0-1016-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
214e86a891e8fca4707b4411eebf8a65739b71f84128e8efbe01ec7a176a3f81
|
|
MD5 |
7193aebc671fa2ac3e6f63a6796e56c6
|
|
BLAKE2b-256 |
ac3d39dec50d7823dc0f7f36004dbab5a4a592f93c5666dfe8d4473e730467f1
|