Мы интегрируемся с SagePay с использованием метода интеграции с сервером.Обработка уведомлений о доставке, которые могут занимать более 20 секунд
Уведомление POST от SagePay обращается к скрипту PHP на нашей стороне.
Наш обратный вызов PHP сам должен вызывать несколько методов на внешнем веб-сервисе.
Иногда из-за сетевой латентности наш сценарий обратного вызова занимает более 20 секунд. SagePay не нравится и переиздает новое уведомление POST. Это приводит к тому, что наш обратный вызов в конечном счете работает в два раза или более, что является менее идеальным (отправляет несколько электронных писем с полной оплатой и т. Д.). В основном SagePay продолжает выдавать уведомления, пока не получит ответ менее чем за 20 секунд.
Мы не можем просто игнорировать последний запрос POST от SagePay, поскольку они «забывают» о любых предыдущих уведомлениях и хотят получить ответ от самого последнего. Мы также не можем ничего делать с задержкой в сети.
Есть ли у кого-нибудь советы о том, что делать в такой ситуации?
Спасибо, Ян, сохраняя сообщение, а затем продолжая обработку, не будет работать. На веб-сайте SagePay говорится: «Если ваш сервер не отвечает на сообщение уведомления, мы отправим еще одну попытку. Ваш сервер должен ответить на последнее сообщение, отправленное Sage Pay. Любые ответы на более старые сообщения в сообщениях Sage Pay игнорируют его. В итоге нам удалось ускорить несколько звонков, которые помогли. Нам нужно дождаться, когда вызовы веб-сервиса будут проверены, следует ли возвращать «ok» в SagePay или нет. – CJD