feat(payments): add LAVA Business payment provider

Add a new provider module for LAVA Business (api.lava.ru):

- invoice creation via POST /business/invoice/create signed with
  HMAC-SHA256 over the raw request body in the Signature header
- webhook handling with Authorization-header signature verification
  that accepts both raw-body and sorted-keys JSON canonicalizations
  (legacy PHP SDK shops sign the latter), plus amount cross-check
  before finalizing a successful payment
- pending invoice reuse through /business/invoice/status
- Telegram pay_lava callback flow and Web App payment creation
- admin settings manifest fields, presentation overrides, and
  RUB-only currency support declared on the provider SPEC

Register the SPEC in the provider registry and wire the provider into
the payment method order, success-email labels, and locale override
prefixes.
This commit is contained in:
3252a8
2026-06-10 23:32:09 +03:00
parent 1d43606446
commit bb844869ee
6 changed files with 895 additions and 3 deletions
+13 -1
View File
@@ -2,7 +2,18 @@ from __future__ import annotations
from typing import Any, Dict, Iterable, List, Mapping, Optional
from . import cryptopay, freekassa, heleket, paykilla, platega, severpay, stars, wata, yookassa
from . import (
cryptopay,
freekassa,
heleket,
lava,
paykilla,
platega,
severpay,
stars,
wata,
yookassa,
)
from .base import (
PaymentProviderPresentation,
PaymentProviderSpec,
@@ -22,6 +33,7 @@ PAYMENT_PROVIDER_SPECS: tuple[PaymentProviderSpec, ...] = (
cryptopay.SPEC,
heleket.SPEC,
paykilla.SPEC,
lava.SPEC,
)