Terminal-SDK V4-Migrationsleitfaden
Erfahren Sie, wie Sie zur Version 4.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, 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
Wenn Sie eine neue Stripe-Terminal-Integration erstellen, finden Sie weitere Informationen unter Integration entwerfen. Erfahren Sie, wie Sie starten.
Migration zu Version 4.0.0
Hier erfahren Sie, was Sie über die SDKs für das 4.0.0 Stripe Terminal iOS und Android wissen müssen:
- Zahlungsdetails nach Zahlung weltweit speichern
- Nutzer/innen können jetzt Zahlungsdaten nach der Zahlung außerhalb der USA speichern, indem sie den Prozess zur Erfassung der Kundenzustimmung aktualisieren, um Zahlungsdaten auf Point of Sale-Geräten zu speichern.
- Support für Zahlungen für Bestellungen per Post und telefonische Bestellungen (MOTO) auf intelligenten Lesegeräten Vorschau
- Diese Funktion befindet sich in der Vorschau. Um Zugriff anzufordern, senden Sie eine E-Mail an Stripe-Datenterminal-betas@stripe.com.
- Aktualisierungen der unterstützten Mindestversionen der iOS-Plattformen
- Ermöglicht standardmäßig die automatische Wiederverbindung des Lesegeräts bei unerwarteten Verbindungsabbrüchen für mobile und Tap-to-Pay-Lesegeräte
- Konsolidiert die Funktionalität der Lesegerätverbindung und trennt Rückrufe für alle Gerätetypen
Wenn Ihre Anwendung derzeit eine Terminal iOS-SDK-Version vor 4.0.0 verwendet, müssen Sie einige Änderungen vornehmen, um ein Upgrade vorzunehmen und weltweite Zahlungen mit vorliegender Karte zu akzeptieren. Eine detaillierte Liste der Änderungen von Version 3.9.1 auf 4.0.0 finden Sie im SDK-Änderungsprotokoll.
Aktualisieren Sie Ihre unterstützte Mindestversion auf iOS 14 oder höher
Wir aktualisieren regelmäßig die unterstützte Mindestversion unserer SDKs, um unseren Entwicklerinnen und Entwicklern die bestmögliche Erfahrung zu bieten.
Vorhandene 3.X-Versionen des Terminal-iOS-SDK unterstützen weiterhin Geräte mit iOS 13 und höher.
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 durchführen möchten.
Sie müssen auch allow_redisplay als
alwaysoderlimitedinSCPCollectConfigurationü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 Kontext der anfänglich festgelegten Nutzung verwendet werden kann, zum Beispiel bei einem Abonnement.Erfahren Sie mehr über das Speichern von Zahlungsdaten nach einer Zahlung.
Speichern von Karten ohne Zahlung mit der SetupIntents-Integration aktualisieren
Um ein konsistentes Integrationsmuster zwischen SetupIntents und PaymentIntents sowie Vor-Ort- und Online-Transaktionen zu gewährleisten, haben wir in der collectSetupIntentPaymentMethod von SCPTerminal 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 Zahlung.
Aktualisieren Sie die Nutzung Ihrer discoverReaders
Wir haben den neuen Enumerations-Wert
discoveringzum SCPConnectionStatus hinzugefügt, um darzustellen, wann Reader Discovery ausgeführt wird. Stellen Sie sicher, dass Ihre Integration diesen neuen Zustand verarbeiten und Ihren Kundinnen und Kunden relevante Informationen bereitstellen kann.Wir haben die Verarbeitung mehrerer gleichzeitiger Lesegerät-Erkennungsvorgänge verbessert. Bisher wurden die Vorgänge durch mehrfachen Aufruf von discoverReaders in die Warteschlange gestellt. Wenn nun ein neuer discoverReaders aufgerufen wird, während ein bestehender bereits ausgeführt wird, bricht das SDK den laufenden Vorgang ab und gibt einen SCPErrorCanceledDueToIntegrationError-Fehler zurück. Der neue DiscoverReaders-Vorgang beginnt dann sofort.
Das Entdecken von Smart- und Tap-to-Pay-Lesegeräten ruft jetzt den Abschlussblock
discoverReadersauf, wenn der Vorgang endet. Diese Änderung spiegelt die Tatsache wider, dass die Entdeckung von Lesegeräten für diese Lesegerätetypen kein langwieriger Vorgang ist.Wir haben einen Fehler behoben, der einen starken Verweis auf den SCPDiscoveryDelegate im SDK enthielt. Stellen Sie sicher, dass Ihre Anwendung einen starken Verweis auf Ihren Delegierten enthält, um die Erkennungsereignisse zu empfangen.
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 vorherigen Verbindungsmethoden für Lesegeräte (
connectBluetoothReader,connectInternetReader,connectLocalMobileReader) in connectReader konsolidiert. Der genaue Verbindungstyp wird weiterhin durch die übergebene Verbindungskonfiguration bestimmt.Für mobile Lesegeräte und Tap-to-Pay-Geräte wurde der Parameter
ReaderDelegateaus der MethodeconnectReaderentfernt und stattdessen inconnectionConfigverschoben, umSCPReconnectionDelegatezu ersetzen. In Übereinstimmung mit anderen Lesegerättypen erwartet dieInternetConnectionConfigurationnun auch einenInternetReaderDelegate, der übergeben wird, der Ihre Integration über Ereignisse benachrichtigt, auch wenn ein Lesegerät die Verbindung trennt.
| Typ des Lesegeräts | Verbindungskonfiguration | Delegieren von Lesegeräten |
|---|---|---|
| Mobiles Lesegerät | SCPBluetoothConnectionConfiguration | SCPMobileReaderDelegate |
| Intelligentes Lesegerät | SCPInternetConnectionConfiguration | SCPInternetReaderDelegate |
| Tap to Pay | SCPTapToPayConnectionConfiguration | SCPTapToPayReaderDelegate |
Vorher
Nachher
Weitere Informationen finden Sie in unserer Dokumentation zum Anschließen an ein Lesegerät.
Die automatische Wiederverbindung ist jetzt standardmäßig für mobile und Tap-to-Pay-Lesegeräte aktiviert
Um die Widerstandsfähigkeit Ihrer Terminal-Integration mit mobilen und Tap-to-Pay-Lesegeräten zu erhöhen, haben wir standardmäßig die automatische Wiederverbindung aktiviert, wenn ein Lesegerät unerwartet getrennt wird.
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 haben wir
SCPReconnectionDelegateentfernt. Ihre Zuständigkeiten wurden in die jeweiligen ReaderDelegates integriert. Verwenden SieMobileReaderDelegatefor mobile Lesegeräte undTapToPayReaderDelegatefür Tap-to-Pay-Lesegeräte, um Wiederverbindungsereignisse zu verarbeiten.Wenn Sie Ihre eigene Logik zur Wiederverbindung des Lesegeräts implementiert haben und dieses Verhalten beibehalten möchten, können Sie die automatische Wiederverbindung deaktivieren, indem Sie setAutoReconnectOnUnexpectedDisconnect auf
falsesetzen.
Vorher
Nachher
Weitere Details und Codeausschnitte finden Sie unter Automatischer Verbindungsversuch.
Aktualisieren Ihrer Handhabung der Verbindungstrennung des Lesegeräts
- Um informiert zu werden, wenn ein Lesegerät die Verbindung trennt, haben wir die Rückrufe zur getrennten Lesegerät-Verbindung für alle Lesegerätetypen konsolidiert, indem wir
terminal:didReportUnexpectedReaderDisconnect:`` aus demSCPTerminalDelegateentfernt haben.reader:didDisconnect:` als Teil von ReaderDelegates, um benachrichtigt zu werden, wenn ein Lesegerät getrennt wird. Bei mobilen Lesegeräten kann der SCPDisconnectReason helfen, den Grund für die Trennung zu identifizieren.Verwenden Sie
Wenn die automatische Wiederverbindung aktiviert ist, werden sowohl die Methoden -readerDidFailReconnect: als auch reader:didDisconnect: aufgerufen, wenn das SDK keine erneute Verbindung zum Lesegerät herstellen kann und die Verbindung getrennt wird.
Vorher
Nachher
Weitere Informationen finden Sie in unserer Dokumentation zum manuellen Umgang mit Verbindungstrennungen.
Aktualisieren Sie Ihre Integration für die Zahlungsannahme
- Sie können
confirmPaymentIntentjetzt mit dem zurückgegebenen ObjektCancelablestornieren. Dies ist nützlich für QR-Code-Zahlungen, die einen asynchronen Bestätigungsprozess haben. AuchconfirmSetupIntentundconfirmRefundkönnen jetzt storniert werden. - Wir haben die Typensicherheit und Konsistenz zwischen den mobilen SDKs verbessert, indem wir die Art und Weise aktualisiert haben, wie
paymentMethodTypesinSCPPaymentIntentParametersundSCPSetupIntentParameters. angegeben werden. Zuvor wurde dieser Parameter als ein Array von Zeichenfolgen dargestellt (zum Beispiel [„card_present“]). Es verwendet jetzt Enumerationswerte vonSCPPaymentMethodType. - Um den Stornierungsablauf für PaymentIntents und SetupIntents zu verbessern, werden mit dem Aufruf von
Terminal::cancelPaymentIntentoderTerminal::cancelSetupIntentnun auch alle laufenden Zahlungsvorgänge abgebrochen. Sie müssen Zahlungsvorgänge wie.nicht mehr separat stornieren, bevor Sie den PaymentIntent stornieren.collectPaymentMethod SCPSetupIntent.kann nun auf Null gesetzt werden, um mitstripeId SCPPaymentIntent.konsistent zu sein. Obwohl der WertstripeId stripeIdweiterhin existiert, stellen Sie sicher, dass Ihr Code den Fall, in demSCPSetupIntent.möglicherweisestripeId nullist, sicher verarbeitet, um Compiler-Fehler zu vermeiden.
Nutzung für Umbenennung und Deprecation aktualisieren
BluetoothReaderDelegatewurde inMobileReaderDelegateumbenannt.- In
SCPReaderSoftwareUpdate,haben wirSCPUpdateTimeEstimateinSCPUpdateDurationEstimateundestimatedUpdateTimeindurationEstimateumbenannt, um ihre Absicht besser darzustellen. - In
SCPOfflineDetails, das Zahlungsdetails darstellt, die verfügbar sind, wenn eine Zahlung offline erstellt oder bestätigt wird, haben wir die Zeit, zu der die Offline-Zahlung stattgefunden hat, voncollectedAtaufstoredAtumbenannt, wobei wir uns an den Namenskonventionen im Terminal-Android-SDK orientieren. - Wir haben in allen SDK-Funktionsnamen und Fehlercodes „local mobile“ und „apple built in“ in „Tap to Pay“ umbenannt.