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
Поддержка 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(),
)
# Вызов методов
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('Аккаунт не найден')
...
# Ну и пример загрузки документа
import datetime, time
rv = api.upload_document(
'beneficiary',
open('/path/to/offer.pdf', 'rb'), # можно передать любой объект, имеющий метод read, например, `requests.get('https://target/path/to/file.pdf')`, но тогда придется указать content_type
beneficiary_id='...',
document_type='contract_offer',
document_date=datetime.datetime.now().strftime("%Y-%m-%d"),
document_number=f"{int(time.time())}",
)
print(rv.document_id) # cyclops-231020230621590-98a669e2-859b-44ac-9831-4a964ac7e49b
Все мыслимые права защищены в натуре (с) 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
Close
Hashes for tochka_cyclops_api-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6370de27a6ceea1354c8b81fefa98d8f0639a0d49034e6391e3da72495578646 |
|
MD5 | 91b4ea6d95a3cb7e94ff59d518c0464d |
|
BLAKE2b-256 | 48ea49f6421c2d087a774672a22ba451d0bab9304e9e93508bdf0efbd557f097 |