Umstellung von Android SDK v1.1.0 auf v2.x.x

  Zuletzt aktualisiert: 

 

Die folgende Dokumentation erläutert, was sich zwischen v1.1.0 und v2.x.x des Android SDK geändert hat und was bei der Migration auf die neueste Version zu beachten ist.

 

Änderungen in v2.x.x

Wir haben die Parameter aktualisiert, die bei Zahlungsabschluss zurückgegeben werden. Dies beinhaltet nun:

  • Liste der Antworten auf die Anfrage.
  • Das Feld threedresponse (falls vorhanden).
  • Alle aufgetretenen Fehler.
v2.x.x Antwort v1.1.0 Antwort
data class Response(
val responseJwtList: List<String> = emptyList(),
val threeDResponse: ThreeDResponse? = null,
val error: Error? = null)

In v1.1.0 wurde als Teil der Success und TransactionFailure Objekten haben wir ein geparstes Transaktionsantwortobjekt zurückgegeben.

In v2.x.x haben wir jedoch nur eine Response Objekt, weil wir unseren Händlern mehr Kontrolle darüber geben wollten, wie sie die Antwort interpretieren.

Beispielszenario

In v1.1.0 wurde bei einer Anfrage von "THREEDQUERY","AUTH","SUBSCRIPTION", bei der THREEDQUERY und AUTH erfolgreich waren, aber bei SUBSCRIPTION ein Fehler auftrat, vom SDK eine TransactionFailure Objekts, obwohl die THREEDQUERY und AUTH erfolgreich verarbeitet wurden. Die Anzeige einer Fehlermeldung für den Kunden kann in diesem speziellen Szenario irreführend sein, da Gelder auf seinem Bankkonto reserviert wurden.

Um die Wahrscheinlichkeit zu verringern, dass der Kunde falsch über das Ergebnis der Zahlungstransaktion informiert wird, unterscheiden wir in v2.x.x nicht mehr zwischen Erfolg und Misserfolg, sondern geben nur noch die vollständige Liste der Ergebnisse zurück, die Sie zunächst überprüfen, analysieren und dann die errorcode in jeder der Antworten zurück.

In Bezug auf das obige Szenario könnten Sie Ihr System so konfigurieren, dass es die Antworten THREEDQUERY und AUTH als Erfolg behandelt und die entsprechende Antwortmeldung im Browser des Kunden anzeigt (um anzuzeigen, dass Mittel für die Zahlung reserviert wurden), aber auch eine Fehlermeldung anzeigt, um den Kunden darüber zu informieren, dass die automatischen Abonnementzahlungen aufgrund eines Fehlers noch nicht geplant werden konnten und dass dem Kunden empfohlen wird, sich mit Ihnen in Verbindung zu setzen.

Bevor die Informationen im Antwortobjekt vertrauenswürdig sind, müssen Sie die Signatur jeder JWT-Antwort überprüfen.

Wir stellen ein Parsing-Dienstprogramm zur Verfügung, um die Daten des Feldes payload als Teil der Überprüfung der Zahlungsantwortfelder zu extrahieren:

(Kotlin)

val response: PaymentTransactionManager.Response = paymentTransactionManager.executeSession(paymentSession)

//Every JWT returned from the SDK should be verified before further usage.
for (jwt in response.responseJwtList) {
if (!verifyJwtIntegrity(jwt)) {
throw SecurityException("JWT verification failed!")
}
}

val parsedResponse = ResponseParser.parse(response.responseJwtList)

//Process parsedResponse object in a similar manner as in v1.1.0
War dieser Artikel hilfreich?
0 von 0 Personen fanden dies hilfreich