12 подписчиков
Кейс: двойная оплата при плохом интернете
В интернет-магазине клиенты иногда сталкивались с двойным списанием при оплате. Если после нажатия кнопки "Оплатить" связь прерывалась, пользователь не получал подтверждения и нажимал кнопку снова. Сервер обрабатывал каждый запрос отдельно, списывая деньги дважды.
После пары быстрых фриланс правок в коде появились следующие конструкции:
1. (На фронте) Блокировка кнопки после нажатия: предотвращает повторные клики, но мешает повторить попытку при сбое.
2. (На беке) Отслеживание времени: игнорирование запросов, поступающих в короткий интервал, но это ненадежно при легитимных повторных попытках.
Как думаете, как можно было бы ещё закостылить решение?
Позже в комментариях напишу, как в итоге решили проблему.
Около минуты
9 ноября 2024