Integration einrichten
Für den Einstieg in das Android SDK sind vier Schritte erforderlich:
- Installieren Sie das SDK in Ihrer App
- Konfigurieren Sie Ihre App
- Richten Sie den ConnectionToken-Endpoint in Ihrer App und auf Ihrem Backend ein
- Initialisieren Sie das SDK in Ihrer App
SDK installierenClientseitig
Vorsicht
Das SDK ist nicht länger mit den Support-Bibliotheken kompatibel, da wir zum Speichern und Pflegen der Status über den gesamten Lebenszyklus der App Room verwenden. Stellen Sie sicher, dass Ihre App auf AndroidX migriert ist.
Um das SDK zu installieren, fügen Sie stripeterminal
in den Block dependencies
Ihrer app/build.gradle-Datei ein:
Anschließend müssen Sie die Java-Version als Ihre Zielversion angeben, da das SDK auf Java 8 basiert (das gilt auch für build.gradle
):
Notiz
Details zur aktuellen SDK-Version und zu vorherigen Versionen finden Sie auf der Seite Releases auf GitHub. Um bei Veröffentlichung einer neuen Version eine Benachrichtigung zu erhalten, achten Sie auf die Releases zum jeweiligen Repository.
Informationen zur Migration von älteren Beta-Versionen des Android SDK finden Sie im Migrationsleitfaden für Stripe Terminal Beta.
App konfigurierenClientseitig
Sie müssen die Berechtigung ACCESS_FINE_LOCATION
aktivieren. Um eine Verbindung zu einem Bluetooth-Lesegerät herzustellen, müssen Sie auch Blueteooth-Berechtigungen aktivieren. Fügen Sie Ihrem Manifest die entsprechenden Berechtigungen hinzu, wie hier dargestellt:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" /> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
Bevor Sie das Terminal-Objekt initialisieren, fügen Sie die folgende Prüfung hinzu, um sicherzustellen, dass die Berechtigung ACCESS_FINE_LOCATION
in Ihrer App aktiviert ist:
Prüfen Sie außerdem, ob der/die Nutzer/in der App die Standortberechtigung erteilt – ohne diese funktioniert das SDK nicht. Überschreiben Sie dazu die Methode onRequestPermissionsResult
in Ihrer App und überprüfen Sie das Berechtigungsergebnis.
Notiz
Um das Risiko von Betrugsfällen bei Zahlungen zu reduzieren und Zahlungsanfechtungen zu minimieren, muss Stripe den Standort der getätigten Zahlungen kennen. Wenn das SDK den Standort des Android-Geräts nicht ermitteln kann, werden alle Zahlungen bis zur Wiederherstellung des Standortzugriffs deaktiviert.
ConnectionToken-Endpoint einrichtenServerseitigClientseitig
Serverseitig
Um sich mit einem Lesegerät verbinden zu können, muss das Backend dem SDK erlauben, das Lesegerät in Ihrem Stripe-Konto zu nutzen. Dazu stellt es dem SDK das Geheimnis aus einem ConnectionToken zur Verfügung. Das Backend muss nur Verbindungstoken für vertrauenswürdige Clients erstellen.
Beziehen Sie das Geheimnis aus dem ConnectionToken auf Ihrem Server und übergeben Sie es an den Client.
Vorsicht
Mit dem Geheimnis aus dem ConnectionToken auf Ihrem Server können Sie sich mit einem Stripe Terminal-Lesegerät verbinden und Zahlungen mit Ihrem Stripe-Konto annehmen. Stellen Sie sicher, dass Sie den Endpoint zum Erstellen von Verbindungstoken authentifizieren und diesen vor Cross Site Request Forgery (CSRF) schützen.
Clientseitig
Um dem SDK Zugriff auf diesen Endpoint zu ermöglichen, implementieren Sie die ConnectionTokenProvider-Schnittstelle in Ihrer App, die eine einzelne Funktion definiert, die einen ConnectionToken aus Ihrem Backend anfordert.
Diese Funktion wird aufgerufen, wenn das SDK sich bei Stripe oder dem Lesegerät authentifizieren muss. Sie wird auch aufgerufen, wenn ein neues Verbindungstoken benötigt wird, um sich mit einem Lesegerät zu verbinden (z. B. wenn Ihre App sich von einem Lesegerät getrennt hat). Wenn das SDK kein neues Verbindungstoken von Ihrem Backend abrufen kann, schlägt die Verbindung zu einem Lesegerät mit einem Fehler von Ihrem Server fehl.
Vorsicht
Speichern Sie das Verbindungstoken nicht im Cache und codieren Sie es nicht fest. Der Lebenszyklus des Verbindungstokens wird vom SDK verwaltet.
Certificate Pinning
In den meisten Fällen sollten Sie Ihre Anwendung nicht mit Certificate Pinning konfigurieren. Erfordert Ihre Anwendung dies dennoch, so lesen Sie bitte die Dokumentation zum Certificate Pinning.
SDK initialisierenClientseitig
Das Android-SDK verfügt über einen Lifecycle. Um Speicherlecks zu vermeiden und eine ordnungsgemäße Bereinigung von über einen langen Zeitraum ausgeführten Terminal-SDK-Prozessen zu gewährleisten, muss Ihre Anwendung über die Unterklasse Application
verfügen, in der TerminalApplicationDelegate
verwendet wird, um das SDK über Ereignisse aus dem Lifecycle zu informieren.
Diese Unterklasse registriert Rückrufe für den Lebenszyklus einer Aktivität:
Die vom Stripe Terminal SDK bereitgestellte Terminal-Klasse verfügt über eine allgemeine Nutzeroberfläche für die Suche nach Lesegeräten, die Verbindung mit einem Lesegerät, die Erstellung von Zahlungen und die Aktualisierung der Software von Lesegeräten.
Geben Sie zunächst den aktuellen Anwendungskontext, den in Schritt 3 implementierten ConnectionTokenProvider und ein TerminalListener-Objekt an. Sie können diesen Listener zur Verarbeitung von Ereignissen aus dem SDK verwenden, wie z. B. Verbindungstrennungen. Mehr Informationen finden Sie unter Verbindungstrennung handhaben.
Vorsicht
Wenn Sie ein Upgrade einer Version durchführen, die älter ist, als 1.0.0-rc2
, beachten Sie, dass die Klassen TerminalLifecycleObserver
und Application
jetzt obligatorisch sind.
SDK-Aktualisierungen
Stripe veröffentlicht regelmäßig Updates, die neue Funktionen, Fehlerkorrekturen und Sicherheitsupdates enthalten können. Aktualisieren Sie Ihr SDK, sobald eine neue Version verfügbar ist. Die derzeit verfügbaren SDKs sind:
- Stripe Terminal Android SDK
- Stripe Terminal iOS SDK
- Stripe Terminal JavaScript SDK
- Stripe Terminal React Native SDK