Создайте внутреннюю донацию с неизменяемой суммой и валютой, затем связывайте попытки оплаты с ней и идентификатором шлюза. Повторы должны использовать один ключ идемпотентности.
Как связать донацию с платёжным шлюзом? Как обеспечить идемпотентность?
Создайте внутреннюю донацию с неизменяемой суммой и валютой, затем связывайте попытки оплаты с ней и идентификатором шлюза. Повторы должны использовать один ключ идемпотентности.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Создайте внутреннюю донацию с неизменяемой суммой и валютой, затем связывайте попытки оплаты с ней и идентификатором шлюза. Повторы должны использовать один ключ идемпотентности.
Подтверждайте платёж проверенным webhook или запросом статуса, а не браузерным redirect. Уникальность события и условный переход pending → paid предотвращают повторное зачисление. Внешний вызов не удерживает долгую DB-транзакцию; при неизвестном результате нужна сверка, а не создание новой независимой оплаты.