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
1XStore.getOrderStatus(object : OrderStatusListener() {
2
3 override fun onStatusUpdate(status: OrderResponse.Status) {
4
5 if(status == OrderResponse.Status.DONE) {
6
7 Log.d("MainActivity", "Success")
8
9 }
10
11 }
12
13 override fun onFailure() {
14
15 Log.d("MainActivity", "Failure")
16
17 }
18
19 }, 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
doneodercancelä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
doneodercancelä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.IntentBuilderden RückrufStatusReceivedCallbackmithilfe der MethodesetStatusReceivedCallback. - Implementieren Sie die Methode
onSuccessim 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
1val intent = XPayments.createIntentBuilder(this)
2 .accessToken(<accessToken>)
3 .isSandbox(<isSandbox>)
4 .setStatusReceivedCallback(object : StatusReceivedCallback {
5 override fun onSuccess(data: InvoicesDataResponse) {
6 Log.d(TAG, "StatusReceivedCallback is fired. Result data = $data")
7 }
8 })
9 .build()
Bestellstatus abfragen
- Rufen Sie die Methode
getOrderaus 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 MethodenonSuccessundonError, 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
1
2XPayments.getStatus(<token>, <isSandbox>, object : GetStatusCallback {
3 override fun onSuccess(data: InvoicesDataResponse?) {
4 Log.d(TAG, "onSuccess is fired. Result data = $data")
5 }
6
7 override fun onError(throwable: Throwable?, errorMessage: String?) {
8 Log.d(TAG, "onError is fired. ErrorMessage = $errorMessage")
9 }
10
11})
Nützliche Links
Letztmalig aktualisiert: 5. Dezember 2025Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.