Bestellstatus tracken
Nachdem ein Benutzer etwas gekauft hat, kann Ihre Anwendung die folgenden Aktionen durchführen:
- den Bestellstatus auf der Benutzeroberfläche anzeigen
- das Guthaben eines Benutzers nach einer erfolgreichen Zahlung belasten
- die gekauften Artikel nach erfolgreicher Zahlung gewähren
Wird die Logik dieser Aktionen mithilfe des SDK implementiert, können Sie den Bestellstatus auf einen der folgende Wege tracken:
Wenn Sie in Ihrer Anwendung sowohl die Store- als auch die Payments-Bibliothek verwenden, empfehlen wir Ihnen, die Bestellung mithilfe der Store-Bibliotheksmethode zu tracken.
Wenn Sie nur die Payments-Bibliothek verwenden, abonnieren Sie die Bestellstatusänderung mithilfe der Payments-Bibliothekmethode. Verwenden Sie die Methode zur Abfrage des Bestellstatus nur als Ausweichmethode zum Datenabruf, um eine Überlastung der Xsolla-Systeme zu vermeiden.
Bestellstatusänderungen abonnieren
Store-Bibliothekmethode verwenden
Übermitteln Sie der SDK-Methode getOrderStatus
aus der Store-Bibliothek die folgenden Parameter, um Bestellstatusänderungen zu abonnieren:
listener
– Listener-Objekt vom TypOrderStatusListener
.orderId
– Bestell-ID, die Sie beim Kauf über den Warenkorb, beim One-Click-Kauf oder beim Kauf gegen virtuelle Währung erhalten haben, als Parameter.
Beispielhafter Aufruf der Methode XStore.getOrderStatus:
- kotlin
XStore.getOrderStatus(object : OrderStatusListener() {
override fun onStatusUpdate(status: OrderResponse.Status) {
if(status == OrderResponse.Status.DONE) {
Log.d("MainActivity", "Success")
}
}
override fun onFailure() {
Log.d("MainActivity", "Failure")
}
}, orderId)
Wir empfehlen, die Methode XStore.getOrderStatus
beim Öffnen des Zahlungsportals aufzurufen.
Die Kaufmethoden kapseln mehrere Methoden zum Tracken des Bestellstatus. Das Tracking erfolgt nach dem folgenden Algorithmus:
- Eine Websocket-Verbindung wird hergestellt.
- Wenn eine Websocket-Verbindung erfolgreich hergestellt wurde und sich der Bestellstatus in
done
odercancel
ändert, endet das Tracking. Wenn eine Websocket-Verbindung fehlschlägt oder die Antwort falsche Daten enthält, wird der Bestellstatus per Short-polling getrackt. - Das Tracking des Bestellstatus wird per Short-polling fortgesetzt. Alle drei Sekunden wird eine einfache HTTP-Bestellstatusanfrage gesendet. Das Tracking endet, wenn sich der Bestellstatus in
done
odercancel
ändert.
Payments-Bibliothekmethode verwenden
Verwenden Sie den Zahlungsstatus-Rückruf, um Bestellstatusänderungen mithilfe der Payments-Bibliothek zu tracken. Gehen Sie dazu wie folgt vor:- Übermitteln Sie beim Erstellen des Objekts
XPayments.IntentBuilder
den RückrufStatusReceivedCallback
mithilfe der MethodesetStatusReceivedCallback
. - Implementieren Sie die Methode
onSuccess
im RückrufStatusReceivedCallback
, der bei jeder individuellen Statusänderung aufgerufen wird.
Bestellstatusinformationen werden an die Methode onSuccess
in einem Objekt vom Typ InvoicesDataResponse
übermittelt. Das Objekt enthält ein Array von InvoiceData
-Objekten. Jedes InvoiceData
-Objekt entspricht einer bestimmten Bestellabwicklungsphase und enthält den Status dieser Phase.
Wenn der Nutzer beispielsweise bei der Bestellung zunächst ungültige Daten eingegeben hat, erscheint in der Liste InvoiceData
ein Objekt mit dem Status InvoicesDataResponse.CANCELED
. Wenn der Nutzer dann die Daten korrigiert und die Bestellung erfolgreich bezahlt, erscheint ein neues InvoiceData
-Objekt im Array, diesmal mit dem Status InvoicesDataResponse.Status.DONE
.
Das Status-Tracking endet, wenn der finale Zahlungsstatus (InvoicesDataResponse.Status.DONE
oder InvoicesDataResponse.Status.ERROR
) empfangen wird.
Beispiel:
- kotlin
val intent = XPayments.createIntentBuilder(this)
.accessToken(<accessToken>)
.isSandbox(<isSandbox>)
.setStatusReceivedCallback(object : StatusReceivedCallback {
override fun onSuccess(data: InvoicesDataResponse) {
Log.d(TAG, "StatusReceivedCallback is fired. Result data = $data")
}
})
.build()
Bestellstatus abfragen
- Rufen Sie die Methode
getOrder
aus der Login-Bibliothek auf, und übermitteln Sie die folgenden Parameter, um den aktuellen Zahlungsstatus abzurufen:
orderId
– die Bestell-ID, die beim Kauf über den Warenkorb, beim One-Click-Kauf oder beim Kauf gegen virtuelle Währung empfangen wurde.callback
– der Rückruf bei einem erfolgreichen Abruf der Bestellinformationen. Nutzen Sie dieGetStatusCallback
-Schnittstelle, und implementieren Sie die beiden MethodenonSuccess
undonError
, um den Rückruf zu implementieren.
Bestellstatusinformationen werden an die Methode onSuccess
in einem Objekt vom Typ InvoicesDataResponse
übermittelt. Das Objekt enthält ein Array von InvoiceData
-Objekten. Jedes InvoiceData
-Objekt entspricht einer bestimmten Bestellabwicklungsphase und enthält den Status dieser Phase.
Wenn der Nutzer beispielsweise bei der Bestellung zunächst ungültige Daten eingegeben hat, erscheint in der Liste InvoiceData
ein Objekt mit dem Status InvoicesDataResponse.CANCELED
. Wenn der Nutzer dann die Daten korrigiert und die Bestellung erfolgreich bezahlt, erscheint ein neues InvoiceData
-Objekt im Array, diesmal mit dem Status InvoicesDataResponse.Status.DONE
.
Das Status-Tracking endet, wenn der finale Zahlungsstatus (InvoicesDataResponse.Status.DONE
oder InvoicesDataResponse.Status.ERROR
) empfangen wird.
Beispiel:
- kotlin
XPayments.getStatus(<token>, <isSandbox>, object : GetStatusCallback {
override fun onSuccess(data: InvoicesDataResponse?) {
Log.d(TAG, "onSuccess is fired. Result data = $data")
}
override fun onError(throwable: Throwable?, errorMessage: String?) {
Log.d(TAG, "onError is fired. ErrorMessage = $errorMessage")
}
})
Nützliche Links
Letztmalig aktualisiert: 5. September 2024Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.