Фрилансеры предложат решение вашей задачи уже через несколько минут!
Публикация заказа не займет много времени.
Сергей Суханов
29 лет, Россия
3 месяца в сервисе
Был онлайн 5 дней назад

Не знаю как еще назвать эту задачу)

Есть страница заказа, она работает по следующему принципу:
1. При загрузке страницы отправляет аякс-запрос на сторонний сервис в ожидании ссылки на оплату.
2. Если пользователь нажал на кнопку "оплатить" раньше, чем эта ссылка прилетела, скрывается див контента и показывается див аякс-прелоудера.
3. Как только аякс-ответ пришел, страница либо переадресовывается, либо открывается новое окно на шлюз оплаты.

Какие изменения нужно внести:
1. Если страница была вызвана с параметром "sms_validation: 1" во входящем POST, то срабатывает SMS-валидация
2. После нажатия на кнопку "Оплатить", вызывается еще один сервис, отправляющий аякс-запрос с целью проверки инициирования отправки SMS.
3. Функция вызывается рекурсивно, ожидая ответ "SMS отправлено" от стороннего сервиса. Пока этого ответа нет, ничего не происходит — аякс прелоудер продолжает работать.
4. Как только ответ от стороннего сервиса прилетел, скрываем див аякс прелоудера, показываем див формы ввода кода из СМС.
5. Форма с вводом цифр. Кнопка отправить — аякс-запрос на сторонний сервис с введенным кодом. Див формы ввода скрывается, аякс прелоудер появляется.
6. Если рекурсивная функция получила ответ "SMS-код неверен", в ответе отрисовать ошибку "Введите новый SMS-код".

То есть на выходе мы просто вмешиваемся в уже существующий процесс только для тех сценариев, когда приходит определенный параметр.