Мы интегрируемся с SagePay методом серверной интеграции.
POST-уведомление от SagePay вызывает PHP-скрипт на нашей стороне.
Сам наш обратный вызов PHP должен вызывать несколько методов внешнего веб-сервиса.
Иногда из-за сетевой задержки выполнение нашего сценария обратного вызова занимает более 20 секунд. SagePay это не нравится, и он повторно отправляет новое уведомление POST. Это приводит к тому, что наш обратный вызов в конечном итоге выполняется дважды или более, что далеко от идеала (отправляет несколько электронных писем с завершением платежа и т. д.). По сути, SagePay продолжает выдавать уведомления, пока не получит ответ менее чем за 20 секунд.
Мы не можем просто игнорировать последний запрос POST от SagePay, поскольку они «забывают» о любых предыдущих уведомлениях и ищут ответ от самого последнего. Мы также ничего не можем сделать с сетевой задержкой.
Кто-нибудь может дать совет, что делать в такой ситуации?