Платёжные события
Повторный или запоздалый вебхук не должен повторять списание и ломать состояние заказа.
Проверено Изменено
Плохо
Каждый payment_intent.succeeded повторно выдаёт покупку.
Хорошо
event_id сохранён.
Переход состояния проверен. Повтор безопасен.
Почему это важно
Доставка события и бизнес-операция не образуют общую сетевую транзакцию.
Когда применять
При неоднозначности уточняйте актуальное состояние у провайдера. Сохранение event_id и изменение локального состояния связываются транзакционно. Разные event_id тоже могут описывать один объект и тип события: выдачу покупки дополнительно защищает уникальность бизнес-операции по payment_id.
Кто что делает
Человек
Определяет допустимые переходы статусов, отмены и возвраты.
AI-агент
Реализует серверную обработку событий и проверяет дубликат, ошибку и сверку в тестовом окружении.
Контроль результата:
- Отправьте одно событие дважды и поменяйте порядок событий.
Как проверить у себя
- Отправьте одно событие дважды и поменяйте порядок событий.
Первоисточники
История изменений на GitHubДата проверки отражает содержательную сверку. Синхронизация сайта не обновляет её автоматически.