Terminal SDK-Migrationsleitfaden
Erfahren Sie, wie Sie zur neuesten Version 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.
Notiz
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 4.0.0
Hier erfahren Sie, was Sie über die Stripe Terminal iOS und Android SDKs 4.0.0 wissen müssen:
- Zahlungsdetails nach einer Zahlung weltweit speichern
- Nutzer/innen können jetzt Zahlungsdetails nach einer Zahlung außerhalb der USA speichern, indem das Verfahren zur Einholung der Kundeneinwilligung für die Speicherung von Zahlungsdetails auf Point of Sale-Geräten aktualisiert wurde.
- Unterstützung für Zahlungen für Bestellungen per Post oder Telefon (MOTO) auf intelligenten Lesegeräten Vorschau
- Diese Funktion befindet sich in der Vorschau. Um Zugriff anzufordern, senden Sie eine E-Mail an stripe-terminal-betas@stripe.com.
- Aktualisierungen der unterstützten Mindestversionen der iOS-Plattformen
- Aktiviert die automatische Wiederverbindung des Lesegeräts bei unerwarteten Verbindungsabbrüchen standardmäßig für mobile und Tap-to-Pay-Lesegeräte, wodurch die Ausfallsicherheit des Geräts erhöht wird
- Konsolidiert die Funktionalität der Lesegerätverbindung und trennt Rückrufe für alle Gerättypen
Wenn Ihre Anwendung derzeit eine Terminal Android SDK-Version vor 3.0.0 verwendet, müssen Sie einige Änderungen vornehmen, um ein Upgrade vorzunehmen und weltweit Card-Present-Zahlungen zu akzeptieren. Eine detaillierte Liste der Änderungen von Version 3.10.0 auf 4.0.0 finden Sie im SDK changelog.
Speichern von Karten nach der Integration von PaymentIntents aktualisieren
Wenn Sie eine Zahlungsmethode nach einem erfolgreichen persönlichen PaymentIntent speichern, müssen Sie die folgenden Aktualisierungen an Ihrer Integration vornehmen:
- Übergeben Sie beim Erstellen von Terminal PaymentIntents den Parameter setup_future_usage, der Stripe darüber informiert, dass Sie zukünftige Zahlungen mit derselben Karte vornehmen möchten.
- Sie müssen auch allow_redisplay als
ALWAYS
oderLIMITED
inCollectConfiguration
übergeben. Übergeben SieALWAYS
, wenn Sie möchten, dass die gespeicherte Karte des Kunden/der Kundin in allen zukünftigen Bezahlvorgängen angezeigt wird, undLIMITED
, wenn sie nur im Rahmen der ursprünglich vorgesehenen Nutzung verwendet werden kann, zum Beispiel bei einem Abonnement.
Erfahren Sie mehr über das Speichern von Karten nach einer Zahlung.
Speichern von Karten ohne Zahlung mit SetupIntents-Integration aktualisieren
Um eine konsistente Integrationsform zwischen SetupIntents und PaymentIntents sowie persönlichen und Online-Transaktionen zu gewährleisten, haben in der collectSetupIntentPaymentMethod
von Terminal
den Parameter customerConsentCollected
entfernt, der zuvor für alle SetupIntent-Transaktionen erforderlich war, und durch den Parameter allowRedisplay
ersetzt.
Erfahren Sie mehr über das direkte Speichern ohne Abbuchung.
Aktualisieren Sie die Nutzung Ihrer discoverReader
Wir haben einen neuen Enum-Wert
DISCOVERING
zu ConnectionStatus, um darzustellen, wann die Lesegerät-Erkennung ausgeführt wird. Stellen Sie sicher, dass Ihre Integration diesen neuen Status verarbeiten und Ihren Kunden/Kundinnen relevante Informationen bereitstellen kann.Wir haben die Handhabung mehrerer gleichzeitiger Erkennungsvorgänge für Lesegeräte verbessert. Zuvor hat das mehrfache Anrufen von Terminal::discoverReaders die Vorgänge in eine Warteschlange gestellt, was sich als unerwünscht erwies. Wenn nun ein neuer
Terminal::discoverReaders
aufgerufen wird, während ein bestehender bereits in Bearbeitung ist, bricht das SDK den laufenden Betrieb ab und gibt den Fehler CANCELED_DUE_TO_INTEGRATION_ERROR zurück. Der neue discoverReaders-Vorgang startet dann sofort.Das Entdecken von Smart- und Tap-to-Pay-Lesern ruft jetzt den Abschlussblock
Terminal::discoverReaders
auf, wenn der Vorgang endet. Diese Änderung spiegelt die Tatsache wider, dass die Entdeckung von Lesegeräten für diese Lesegerättypen kein langwieriger Vorgang ist.
Aktualisieren Sie die Nutzung Ihrer Lesegerätverbindung
- Um ein konsistentes Integrationsmuster für die Erkennung und Verbindung von Lesegeräten zu gewährleisten, haben wir alle Verbindungsmethoden für Lesegeräte (
connectBluetoothReader
,connectUsbReader
,connectInternetReader
,connectLocalMobileReader
,connectHandoffReader
) in Terminal::connectReader zusammengefasst. Der spezifische Verbindungstyp wird weiterhin durch die bereitgestellte Verbindungskonfiguration bestimmt. - Bei mobilen Lesegeräten wurde der
readerListener
-Parameter aus den altenconnectBluetoothReader
,connectUsbReader
-Methoden entfernt und in das jeweiligeConnectionConfiguration
-Objekt verschoben, wodurchReaderReconnectionListener
ersetzt wurde. Bei Tap-to-Pay-Lesegeräten nimmt dieTapToPayConnectionConfiguration
jetzt einenTapToPayReaderListener
-Parameter auf, wodurchReaderReconnectionListener
ersetzt wird. - In Übereinstimmung mit anderen Lesegerättypen erwartet die
InternetConnectionConfiguration
des intelligenten Lesegeräts nun auch, dass einInternetReaderListener
übergeben wird, der Ihre Integration von Ereignissen einschließlich Verbindungstrennungen benachrichtigt. - Für Apps auf Geräten im Übergabemodus wurde
HandoffReaderListener
von der altenconnectHandoffReader
-Methode als Parameter entfernt und in dasHandoffConnectionConfiguration
-Objekt verschoben.
Typ des Lesegeräts | Verbindungskonfiguration | Lesegerät-Listener |
---|---|---|
Mobiles Lesegerät | BluetoothConnectionConfiguration | MobileReaderListener |
Intelligentes Lesegerät | InternetConnectionConfiguration | InternetReaderListener |
Tap to Pay | TapToPayConnectionConfiguration | TapToPayReaderListener |
Apps auf Geräten | HandoffConnectionConfiguration | HandoffReaderListener |
Vor
Nach
Weitere Informationen finden Sie in unserer Dokumentation zum Verbinden mit einem Lesegerät.
Die automatische Wiederverbindung ist jetzt standardmäßig für mobile und Tap-to-Pay-Lesegeräte aktiviert
- Um die Ausfallsicherheit Ihrer Terminal-Integration mit mobilen und Tap-to-Pay-Lesegeräten zu erhöhen, haben wir die automatische Wiederverbindung standardmäßig aktiviert, wenn das Lesegerät unerwartet die Verbindung trennt.
- Wir empfehlen, Benachrichtigungen in Ihrer App anzuzeigen, um die Nutzer/innen während des gesamten Wiederverbindungsvorgangs über den Lesegerätstatus zu informieren. Für die Handhabung von Wiederverbindungsmethoden für Lesegeräte wurde der
ReaderReconnectionListener
von den jeweiligen ReaderListenern übernommen. Verwenden SieMobileReaderListener
für mobile Lesegeräte undTapToPayReaderListener
für Tap-to-Pay-Lesegeräte, um Wiederverbindungsereignisse zu verarbeiten. - Wir haben den Parameter
ReaderReconnectionListener
aus den VerbindungskonfigurationenLocalMobileConnectionConfiguration
,BluetoothConnectionConfiguration
undUsbConnectionConfiguration
entfernt und durch den entsprechendenReaderListener
ersetzt.
Wenn Sie Ihre eigene Wiederverbindungslogik für Lesegeräte implementiert haben und dieses Verhalten beibehalten möchten, können Sie die automatische Wiederverbindung deaktivieren, indem Sie autoReconnectOnUnexpectedDisconnect auf false
setzen.
Vor
Nach
Weitere Informationen finden Sie in unserer Dokumentation zum automatischen Wiederverbindungsversuch.
Aktualisieren Sie Ihre Handhabung beim Trennen der Lesegeräte
- Um informiert zu werden, wenn ein Lesegerät die Verbindung trennt, haben wir die Rückrufe der Leserverbindung für alle Lesertypen konsolidiert, indem wir
TerminalListener::onUnexpectedReaderDisconnect
entfernt haben. Implementieren Sie in ZukunftonDisconnect
auf einem der folgenden Listener, um über die Trennung des entsprechenden Lesegeräts informiert zu werden:InternetReaderListener
,MobileReaderListener
,TapToPayReaderListener
oderHandoffReaderListener
. Bei mobilen Lesegeräten kann derDisconnectReason
helfen, den Grund für die Trennung zu ermitteln.
Wenn die automatische Wiederverbindung aktiviert ist, werden sowohl onDisconnect
als auch onReaderReconnectFailed
-Methoden aufgerufen, wenn sich das SDK nicht wieder mit dem Lesegerät verbindet und die Verbindung getrennt wird.
Vor
Nach
Weitere Informationen finden Sie in unserer Dokumentation zum manuellen Umgang mit Verbindungsabbrüchen.
Aktualisieren Sie Ihre Integration für die Zahlungsannahme
- Sie können
Terminal::confirmPaymentIntent
mit dem zurückgegebenen ObjektCancelable
abbrechen. Dies ist nützlich für QR-Code-Zahlungen, die einen asynchronen Bestätigungsprozess haben. AuchTerminal::confirmSetupIntent
undTerminal::confirmRefund
können jetzt storniert werden. - Um den Stornierungsfluss für PaymentIntents und SetupIntents zu verbessern, werden mit dem Aufruf von
Terminal::cancelPaymentIntent
oderTerminal::cancelSetupIntent
nun auch alle laufenden Zahlungsvorgänge abgebrochen. Sie müssen Zahlungsvorgänge wieTerminal::collectPaymentMethod
nicht mehr separat stornieren, bevor Sie den PaymentIntent stornieren. SetupIntent.
kann nun auf Null gesetzt werden, um mitid PaymentIntent.
konsistent zu sein. Obwohl der Wertid id
weiterhin existiert, stellen Sie sicher, dass Ihr Code den Fall, in demSetupIntent.
möglicherweiseid null
ist, sicher verarbeitet, um Compiler-Fehler zu vermeiden.
Fehlerbehebung aktualisieren
- Wir haben
TerminalException.
in eine eigenständige Aufzählung,TerminalErrorCode TerminalErrorCode
, verschoben. Achten Sie darauf, die Importanweisungen und die Terminal-Fehlercode-Definition zu aktualisieren, um die Funktionalität aufrechtzuerhalten. - Wir haben den neuen Terminal-Fehlercode
TerminalErrorCode.
hinzugefügt. Dieser Fehler kann auftreten, wenn das SDK nicht mehr aktuell ist, und kann den vom intelligenten Lesegerät zurückgegebenen Fehler nicht erkennen. Aktualisieren Sie Ihr Terminal-SDK, um diesen Fehler zu beheben.GENERIC_ READER_ ERROR - Für Tap-to-Pay auf Android kommt es bei
Terminal::collectPaymentMethod
undTerminal::collectSetupIntentPaymentMethod
jetzt nach 60 Sekunden zu einer Zeitüberschreitung für Tap-to-Pay-Transaktionen auf Android. Es wird eineTerminalException
mit dem FehlercodeTerminalErrorCode.
ausgelöst.CARD_ READ_ TIMED_ OUT - Bei Tap to Pay auf Android wird, wenn die PIN-Erfassung für eine Zahlung angefordert wird, eine
TerminalException
mit dem FehlercodeFEATURE_
anstelle vonNOT_ ENABLED_ ON_ ACCOUNT DECLINED_
mit einemBY_ STRIPE_ API ONLINE_
-OR_ OFFLINE_ PIN_ REQUIRED ApiError
ausgelöst.
Nutzung für Umbenennung und Refactoring aktualisieren
ReaderListener
wurde inMobileReaderListener
umbenannt.- Wir haben den
allowedPaymentMethodTypes
-Parameter inpaymentMethodTypes
in den KonstruktorenPaymentIntentParameters.
undBuilder SetupIntentParameter.
umbenannt.Builder - In
ReaderSoftwareUpdate,
haben wirUpdateTimeEstimate
inUpdateDurationEstimate
undestimatedUpdateTime
indurationEstimate
umbenannt,` um ihre Absicht besser darzustellen. - Für die folgenden Felder haben wir
java.
-Referenzen in Millisekunden-Zeitstempel konvertiert:util. Date ReaderSoftwareUpdate::requiredAt
,OfflineDetails::storedAt
undOfflineSetupIntentDetails::storedAt
. Stellen Sie sicher, dass Ihre Anwendung diese Zeitstempel korrekt interpretiert. - Felder auf dem
Location
-Objekt können nicht mehr geändert werden.
Aktualisieren Sie Ihre Integration von Tap to Pay auf Android
- Die Maven-Koordinaten für die Funktion „Tap to Pay“ auf Android wurden in
com.
geändert. Aktualisieren Sie Ihre Build-Abhängigkeiten, um auf den neuen Artefaktnamen zu verweisen. Die alte wird nicht mehr aktualisiert.stripe:stripeterminal-taptopay:4. 0. 0 - Wir haben alle
LocalMobile
-Funktionen und -Feldnamen inTapToPay
umbenannt. Beispielsweise wurdeLocalMobileDiscoveryConfiguration
inTapToPayDiscoveryConfiguration
umbenannt. TapToPayConnectionConfiguration
verwendet jetzt den ParameterTapToPayReaderListener
. Dieser Listener übernimmt Ereignisse sowohl vonReaderReconnectionListener
als auch vonReaderDisconnectionListener
und bietet einen einheitlichen Mechanismus für die Verarbeitung von Lesegerätereignissen.- Wir haben den Hintergrundanwendungsprozess für das Erfassen von Tap-to-Pay-Transaktionen umbenannt, um die ID Ihrer Anwendung mit dem Suffix
:stripetaptopay
zu verwenden.