Ozon Lab
Ozon Lab
@OzonLabPro

Платежный контур ломается не на happy path, а на сбоях.

Платежный контур ломается не на happy path, а на сбоях.

Схема, которая выдерживает реальность, обычно выглядит так:

1. Создаём оплату с `capture=False`.
2. Входящий webhook не считаем истиной сразу — сначала `IP-check`.
3. Событие пишем в `event log`, и только потом запускаем обработчик.
4. `capture` подтверждаем стабильным `idempotency key`, а не случайным запросом.
5. Финальный успех валидируем не только по статусу, но и по `amount`, `currency`, `metadata`.

Что это даёт на практике?

- повторный webhook не дублирует оплату;
- поздний webhook не перетирает уже актуальный локальный статус;
- ошибочный запрос с чужого IP не проходит дальше;
- расхождение между ЮKassa и базой можно догнать через ручной `confirm`.

Главный вывод: webhook — это сигнал, а не истина. Истина появляется только после проверки, журнала и идемпотентного действия. Иначе платёжная система начинает «врать» при первом же сбое.
Этот пост опубликован в Telegram-канале Ozon Lab. Подписаться можно по ссылке: @OzonLabPro.
verticals

Свежие посты в категории «Verticals & Offers»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.