Sobes.tech
Back to questions
Junior
3

Как обеспечивалась идемпотентность при retry запросов к платёжным шлюзам?

Companies where asked
СБК ПАРУС

Answer from AI

sobes.tech AI

Идемпотентность при повторных запросах к платёжным шлюзам обеспечивалась за счёт использования уникальных идентификаторов транзакций (например, idempotency key). При повторной отправке запроса с тем же идентификатором шлюз распознавал, что это повтор и не создавал дубликат платежа, а возвращал результат предыдущей операции.

Пример:

  • Клиент генерирует уникальный idempotency key для каждой попытки платежа.
  • При отправке запроса к шлюзу этот ключ передаётся в заголовках или теле.
  • Если запрос повторяется из-за таймаута или ошибки, тот же ключ используется повторно.
  • Шлюз проверяет ключ и, если операция с таким ключом уже выполнена, возвращает сохранённый результат без повторного списания средств.

Это позволяет безопасно повторять запросы без риска двойного списания.