Wir integrieren SagePay mithilfe der Serverintegrationsmethode.Behandlung von Postbenachrichtigungen, die mehr als 20 Sekunden dauern können
Die Benachrichtigung POST von SagePay ruft zurück zu einem PHP-Skript unserer Seite.
Unser PHP-Callback muss mehrere Methoden auf einem externen Webservice aufrufen.
Manchmal dauert unser Callback-Skript aufgrund der Netzwerklatenz mehr als 20 Sekunden. SagePay mag dies nicht und gibt einen neuen Benachrichtigungs-POST erneut aus. Dies führt dazu, dass unser Rückruf letztendlich zweimal oder mehr läuft, was weniger als ideal ist (sendet mehrere Bezahlungs-E-Mails usw.). Grundsätzlich gibt SagePay Benachrichtigungen aus, bis es in weniger als 20 Sekunden eine Antwort erhält.
Wir können nicht einfach die letzte POST-Anfrage von SagePay ignorieren, da sie alle vorherigen Benachrichtigungen "vergessen" und eine Antwort von der letzten erhalten möchten. Wir können auch nichts über die Netzwerklatenz machen.
Hat jemand einen Ratschlag, was in einer solchen Situation zu tun ist?
Dank Ian, Speichern der Nachricht und dann mit der Verarbeitung fortfahren würde nicht funktionieren. SagePay sagt: "Wenn Ihr Server nicht auf den Benachrichtigungsposten reagiert, senden wir einen weiteren Versuch. Ihr Server muss auf den neuesten Benachrichtigungspost antworten, der von Sage Pay gesendet wurde. Alle Antworten auf ältere bis Benachrichtigungs-Posts werden von Sage Pay ignoriert. ' Am Ende haben wir es geschafft, die Anrufe etwas zu beschleunigen, was geholfen hat. Wir müssen warten, bis die Web-Service-Aufrufe ausgeführt werden, um zu wissen, ob SagePay "ok" zurückgegeben wird oder nicht. – CJD