@flammerman
Web Developer / И фронт и сервер

Как заставить отработать скрипт заного при разрые соединения с сервером?

Здравствуйте уважаемые пользователи

Вот такая недавно возникла проблема.

На сайте есть некий товар, который оплачивается через робокассу. Список товаров берется через протокол SOAP с локального сервера. Там есть своеобразный API для этого, состоящий из 2-х основных методов:

ReserveService - отвечает за резервирование в системе единицы товара.
SoldService - тут содержится список товаров, которые перед оплатой ранее были зарезервированы в ReserveService и затем были оплачены через платежную систему.

То есть система работает очень просто. Товар создается в ReserveService, затем если оплата прошла успешно, создается еще и в SoldService

А проблема вот в чем, когда все прошло успешно, товар был зарезервирован и далее его идентификатор заказа был отправлен в робокассу, и человек успешно перевел деньги на счет системы оплаты, робокасса отправила в специальный скрипт (как по документации это result.php) некие данные что все прошло.
Далее, скрипт эти данные принял, попытался соединиться с сервером (где содержится метод SoldService, чтобы создать как бы оплаченный товар) и не смог, возникла ошибка соединения, товар в SoldService не создался, но оплата в робокассе прошла, в этом то вся и проблема.

Фактически у нас есть все данные какие товары были в заказе и так далее, но не совсем понятно как можно повторить такую операцию повторно, даже если пользователь закроет браузер. Как-то отследить такие проблемные товары, и попробовать автоматически(например через мин 5) повторить их создание, до победного.

Спасибо, заранее, за ответы
  • Вопрос задан
  • 122 просмотра
Пригласить эксперта
Ответы на вопрос 1
crazy_str
@crazy_str
web-программист
Проверяешь если к базе не было соединения то создаёшь файл с этой транзакцией к примеру
transaction.ini или json с информацией которую нужно было занести в базу а потом кроном чекаешь каждые 5 минут обработчик который будет выполнять необходимые запросы из файла.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы