@Domovik93
BackEndDev

Респонс от платёжной системы приходит очень долго и пользователь делает 2 заказа, как это можно исправить?

60a374cf10b07676713038.png
Есть два ордера от одного человека, разница во времени создания минута (человек просто не дождался ответа и начал оформлять второй заказ), а проблема собственно в том что ответ от платёжной системы authorize пришел через 1.5 минуты , что для одного заказа , что для другого (почти в одно и тоже время) и только после этого создался ордер.
Какие есть варианты решения?!
1) Оборвать скрипт я не могу , деньги всё равно спишутся с карты 2 раза , так как заказ оформляется на стороне платёжной системы.
2) У меня есть ключ идемпотентности, но покупатель просто обновляет страницу и всё.
Жду любых предложений
  • Вопрос задан
  • 207 просмотров
Пригласить эксперта
Ответы на вопрос 1
@oxidmod
Обычно с платежками работают асинхронно
Вы забрасываете ей реквест на списание денег с карты (при этом либо платежка дает вам идентификатор этого запроса, либо вы ей даете идентифкатор своего ордера) и маркаете у себе ордер, что он ожидает оплаты
Клиенту при этом показываете, что ордер оформлен, ждите сообщений об отправке\доставке

Через пару минут или часов платежка спишет деньги и дергает специальный эндпоинт у вас в системе, и говорит что платеж вот такой-то успешно проведен (или что ордер ваш оплачен, если она принимает ваш идентификатор) или же не проведен по какой-то причине (недостаток средств, антифрод и тому подобное)

В этот момент вы меняете статус заказа на оплачен у себя в бд и запускаете уже процесс сбора и отправки заказа
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы