Terminal SDK-Migrationsleitfaden
Erfahren Sie, wie Sie zur Version 5.0.0 des Stripe-Terminal-SDK migrieren.
Die iOS und Android SDKs für Stripe Terminal wurden mit einer Reihe wichtiger Änderungen an APIs und Verhalten aktualisiert, von denen einige erfordern, dass Sie Ihre Integration mit dem Stripe Terminal SDK aktualisieren. Um die Konsistenz zwischen unseren SDKs zu verbessern und Ihre Anwendungslogik und -integration zu vereinfachen, nehmen wir im Rahmen wichtiger Versionsaktualisierungen nderungen vor vor, die sich auf die Funktionsweise oder das Verhalten Ihrer Integration auswirken können. In diesem Leitfaden werden die neuesten Änderungen erläutert, um Sie bei der Aktualisierung Ihrer Integration zu unterstützen.
Hinweis
Erstellen Sie gerade eine neue Stripe Terminal-Integration? Auf unserer Seite zum Entwerfen einer Integration erfahren Sie, wie Sie beginnen können.
Migration zu Version 5.0.0
Hier erfahren Sie, was Sie über die SDKs für 5.0.0 Stripe Terminal iOS und Android wissen müssen:
- Vereinfachte Integration von Zahlungen
- Zahlungsabwicklung, Setup Intents und Rückerstattungen mit einem einzigen Methodenaufruf, bei die Schritte der Erfassung und der Bestätigung kombiniert werden.
- Unterstützt moderne asynchrone Swift-Varianten und Kotlin Coroutines zur Vereinfachung komplexer asynchroner Abläufe
- Swift Concurrency (async/await) für iOS und Kotlin Coroutines für Android.
- Kundenstornierung standardmäßig aktiviert
- Auf unterstützten Lesegeräten können Kundinnen und Kunden jetzt standardmäßig Transaktionen während der Zahlung, Einrichtung, Rückerstattung und der Datenerfassung stornieren.
- Verbesserte Beobachtung der automatischen Wiederverbindung des mobilen Lesegeräts und des Tap-to-Pay-Lesegeräts
- Verbesserte automatische Behandlung der Wiederverbindung von Lesegeräten mit mehr Verbindungsstatus für mobile Lesegeräte (Bluetooth und USB) und Tap-to-Pay-Lesegeräte.
- Karten für Tap to Pay auf Android unterstützen Öffentliche Vorschau
- Discover-Kartenzahlungen mit Tap to Pay auf Android annehmen.
- Aktualisiert auf die unterstützten Mindestversionen der Plattformen von iOS 14.0 auf iOS 15.0
Wenn Ihre Anwendung derzeit eine Terminal-Android-SDK-Version vor 5.0.0 verwendet, müssen Sie mehrere Änderungen für ein Upgrade vornehmen. Eine detaillierte Liste der Änderungen von Version 4.x auf 5.0.0 finden Sie im SDK-Änderungsprotokoll.
Vereinfachte Integration von Zahlungen
Aktualisierung auf einheitliche Zahlungsabwicklung
Das v5 SDK führt optimierte Methoden ein, die die Schritte der Erfassung und Bestätigung in einem einzigen Vorgang kombinieren. Während die bestehenden Methoden collectPaymentMethod und confirmPaymentIntent weiterhin funktionieren, empfehlen wir die Verwendung der neuen einheitlichen Methoden für einfachere Integrationen.
Zahlungen mit processPaymentIntent abwickeln
Ersetzen Sie die zweistufige Erfassung und Bestätigung durch einen einzigen Aufruf der Methode processPaymentIntent.
_Vorher _
_Nachher _
Abwicklung von Rückerstattungen mit processRefund
Die Methoden collectRefundPaymentMethod und confirmRefund sind jetzt veraltet. Verwenden Sie stattdessen processRefund.
_Vorher _
_Nachher _
SetupIntents mit processSetupIntent verarbeiten
Zweistufige Lösung zum Erfassen und Bestätigen durch einen einzigen Aufruf der Methode processSetupIntent ersetzen.
_Vorher _
_Nachher _
Support für Kotlin Coroutines
Für Kotlin-Entwickler stellt ein neues optionales Modul stripeterminal-ktx suspend-Funktions-Wrapper für asynchrone Terminal-APIs bereit.
Hinweis
Fügen Sie diese Abhängigkeit hinzu: Implementierung("com.
_Vorher _
Terminal.getInstance().discoverReaders(config, object : DiscoveryListener { override fun onUpdateDiscoveredReaders(readers: List<Reader>) { val selectedReader = readers[0] Terminal.getInstance().connectReader(selectedReader, connectionConfig, object : ReaderCallback { override fun onSuccess(reader: Reader) { // Handle successful connection } override fun onFailure(e: TerminalException) { // Handle connection failure } }) } })
_Nachher _
// Add dependency: implementation("com.stripe:stripeterminal-ktx:5.0.0") coroutineScope { try { val readers = Terminal.getInstance().discoverReaders(discoveryConfig) .filter { it.isNotEmpty() } .first() val selectedReader = readers.first() val reader = Terminal.getInstance().connectReader(selectedReader, connectConfig) // Handle successful connection } catch(e: TerminalException) { // Handle failures on discovery or connect } }
Plattform und Initialisierung
Terminal Initialisierung aktualisieren
Die Methode Terminal. wurde in Terminal. umbenannt. Sie erfordert jetzt einen annullierbaren OfflineListener-Parameter.
_Vorher _
_Nachher _
Erkennung und Verbindung des Lesegeräts
Umgang mit Änderungen des Wiederverbindungsstatus
Ein neuer RECONNECTING-Wert wurde zur ConnectionStatus-Enumeration hinzugefügt. Während der ersten Verbindung ist Terminal. jetzt null, bis der Verbindungsversuch erfolgreich ist.
_Vorher _
_Nachher _
Optimierte Verbindung mit easyConnect
Für die Integration intelligenter Lesegeräte, Tap to Pay und Apps auf Geräten können Sie jetzt Terminal. verwenden, das Erkennung und Verbindung in einem einzigen Methodenaufruf vereint.
_Vorher _
_Nachher _
Erkennungsfilterung für Internet-Lesegeräte
Die Erkennung von Internet-Lesegeräten unterstützt jetzt die Filterung nach Lesegerät-ID oder Seriennummer. Legen Sie die Eigenschaft discoveryFilter in InternetDiscoveryConfiguration fest, um ein bestimmtes Lesegerät zu erkennen.
_Vorher _
_Nachher _
Annahme von Zahlungen und Datenerfassung
Kundenstornierung ist jetzt standardmäßig aktiviert
Bei Android-basierten Lesegeräten ist die Möglichkeit für Kundinnen und Kunden, Transaktionen zu stornieren, jetzt standardmäßig aktiviert. Sie können diese Funktion deaktivieren, indem Sie customerCancellation auf DISABLE_ festlegen.
_Vorher _
_Nachher _
Aktualisierungen der Interac-Rückerstattungsparameter
Wenn Sie RefundParameter für eine Interac-Rückerstattung mit einer PaymentIntent ID erstellen, müssen Sie jetzt auch das clientSecret des PaymentIntents übergeben. Alternativ können Sie auch die ID der Zahlung weiter verwenden, für die kein clientSecret erforderlich ist.
_Vorher _
_Nachher _
Aktualisieren Sie Ihre Apps on Devices-Integration
Die Maven-Koordinaten für die Funktion „Apps on Devide“ wurden in com. geändert. Aktualisieren Sie Ihre Build-Abhängigkeiten, um auf den neuen Artefaktnamen zu verweisen. Stripe aktualisiert das alte Artefakt handoffclient nicht mehr.
Wir haben alle Handoff-Klassennamen in AppsOnDevices umbenannt, um die Funktionalität der Funktion besser zu beschreiben.
_Vorher _
_Nachher _
Benennen Sie Handoff-Klassen in AppsOnDevices um
Wir haben alle Handoff-Klassennamen in AppsOnDevices umbenannt, und zwar in den Bereichen Discovery-Konfiguration, Verbindungskonfiguration, Listener und Token-Anbieter.
_Vorher _
_Nachher _
Integration von Tap to Pay auf Android aktualisieren
Systemanforderungen
Tap to Pay auf Android 5.0.0 und höher erfordert, dass auf Ihrem Android-Gerät Android 13 oder höher ausgeführt wird.
Diese Version setzt auch voraus, dass der KeyStore Ihres Android-Geräts hardwaregestützte Schlüsselvereinbarungen unterstützt. Dies wird automatisch von supportsReadersOfType() für Sie überprüft, kann aber auch verifiziert werden, indem überprüft wird, ob die Version Funktion_ Ihres Geräts 100 oder höher ist. Da diese Anforderung von den Hardware-Funktionen eines Geräts abhängt, wird sie möglicherweise von Geräten, die ursprünglich mit Android 12 oder niedriger veröffentlicht wurden, nicht erfüllt, selbst wenn sie aktualisiert wurden, um die Android 13-Laufzeitanforderung zu erfüllen. Diese neue Anforderung bedeutet, dass Geräte wie das Samsung Galaxy Tab Active4 Pro in den SDK-Versionen 5.0.0 und höher nicht mehr unterstützt werden.
In Produktionsumgebungen schlägt die Erkennung des Lesegeräts mit einem TAP_-Fehler fehl, wenn Entwickler-Optionen, USB- oder die WLAN-Fehlerbehebung oder andere Fehlerbehebungsoptionen auf dem Gerät aktiviert sind. Dies gilt nicht für die Nutzung des simulierten Tap-to-Pay-Lesegeräts.
TapZone-Konfigurations-Refactoring
Die Klasse TapToPayUxConfiguration. wurde neu refaktoriert. Die Felder indicator und position werden durch ein einzelnes TapZone-Objekt ersetzt.
_Vorher _
_Nachher _