All checks were successful
Deploy Trade-In / changes (push) Successful in 12s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / test (push) Successful in 3m3s
Deploy Trade-In / build-backend (push) Successful in 1m9s
Deploy Trade-In / deploy (push) Successful in 1m24s
PR-C платёжного контура: token.py (sign + verify_notification_token, оба эталонных вектора Т-Банка перепроверены независимо), receipt.py (54-ФЗ ФФД 1.05, целые копейки), tbank_client.py (Init/GetState/CheckOrder/Confirm/Cancel, таймаут 15с, 4xx не ретраится). Слой инертный: 0 импортёров, роутеров нет. Co-authored-by: bot-backend <bot-backend@gendsgn.local> Co-committed-by: bot-backend <bot-backend@gendsgn.local>
17 lines
1.1 KiB
Python
17 lines
1.1 KiB
Python
"""Т-Банк интернет-эквайринг — чистый интеграционный слой (PR-C).
|
||
|
||
Модули здесь НЕ импортируют `app.core.config` и не пишут в БД: все секреты
|
||
(`terminal_key`, `password`, `base_url`) принимаются аргументами функций/
|
||
конструктора. Причина — параллельный PR-B вводит эти поля в `config.py`,
|
||
а проводку (роутер, `_PUBLIC_PATHS`, `payments`-таблицы, статус-машина)
|
||
делает следующий PR-D. См. `mera-tbank-acquiring-recon.md` (корень репо)
|
||
§3/§9 для полной схемы разбивки.
|
||
|
||
- `token.py` — подпись `Token` запросов + проверка подписи нотификаций.
|
||
- `receipt.py` — сборка `Receipt` (54-ФЗ, ФФД 1.05) для услуги.
|
||
- `tbank_client.py` — httpx-клиент `Init/GetState/CheckOrder/Confirm/Cancel`.
|
||
|
||
Docs: https://developer.tbank.ru/eacq/intro
|
||
"""
|
||
|
||
from __future__ import annotations
|