2016-05-02 10 views
0

Ich verwende Bluepay, um Zahlungen für eine Xamarin-Anwendung zu verarbeiten. Wenn eine Zahlung oder Rückerstattung bearbeitet wird, wird BluePay von einer Anfrage gelöscht und Bluepay antwortet mit Erfolg oder Misserfolg. Danach sendet die Anwendung die Transaktionsinformationen an unsere Datenbank, um sie zu speichern. Das Problem, wie Sie vielleicht sehen können, ist, dass der Drittanbieter-Zahlungsprozessor und unsere Datenbank leicht aus der Synchronität geraten könnten, wenn die App abstürzt, bevor die Antwort empfangen wurde oder bevor der Datenbankanruf durchgeführt werden kann.Halten Sie meine Datenbank mit Drittanbieter-Zahlungsprozessor (Bluepay) synchronisiert?

Wenn der DB-Aufruf aus irgendeinem Grund fehlschlägt, könnte dies wahrscheinlich erkannt werden und die Transaktionsinformationen könnten erneut gesendet werden, aber wenn die Transaktionsdaten nie tatsächlich von Bluepay empfangen werden (wir stürzen vor der Antwort oder etwas in diesen Zeilen) Wie ist es möglich, etwas, das wir nicht haben, erneut zu senden?

Ich dachte, das war ein häufiges und gelöstes Problem, aber ich kann keine ähnliche Frage/Antwort finden.

Antwort

0

Sie möchten die Anfrage protokollieren, sobald sie erstellt wurde. Wenn Sie in einem definierten Zeitraum keine Antwort erhalten, fordern Sie die Transaktion bei Bluepay an. Wenn Bluepay nicht antwortet oder die Transaktion nicht kennt, protokollieren Sie ein Timeout und versuchen, auf die Anwendung mit dem Timeout-Status zu reagieren. Auch sollte Ihre App eine interne Behandlung für Timeouts haben, zum Beispiel wenn die Verbindung unterbrochen wird.

Verwandte Themen