Интеграция платежных решений

Идемпотентность ломают не платежи — её ломают кривые ключи и лень в ретраях

Идемпотентность ломают не платежи — её ломают кривые ключи и лень в ретраях

90% команд думают, что idempotency-key — это магический антидубль. Нет. Если ключ живёт 10 минут, а ваш шлюз отвечает через час, вы уже открыли дверь двойному списанию. Ключ должен покрывать весь жизненный цикл операции: создание, ретраи, вебхуки, ручную проверку статуса.

Типовые косяки:
— Ключ генерят на клиенте и меняют при каждом чихе.
— В хранилище кладут только запрос, но не ответ и финальный статус.
— Сравнивают payload «примерно такой же» и ловят фантомные дубли.
— Не отделяют sync-ответ от async-уведомления, а потом удивляются, почему платёж «успешен» дважды.

Правильная схема скучная, как аудитор PCI DSS: один бизнес-идентификатор операции, жёсткое TTL, атомарная запись результата, и неизменяемый маппинг request → response → final state. Идемпотентность должна переживать падение API, повтор webhook и ручной повтор запроса. Документация — это ложь, логи — истина.

Если у вас нет гарантии на уровне БД, а есть только “не шлите дважды”, то это не архитектура, а костыль на костыле и финтехом погоняет. Идемпотентность или смерть.
Этот пост опубликован в Telegram-канале Интеграция платежных решений. Подписаться можно по ссылке: @payment_integration_ops_arb.
tech

Свежие посты в категории «Tech Infrastructure»

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

start

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

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

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