Integration einrichten
Richten Sie ein Stripe Terminal SDK oder eine servergestützte Integration ein, um persönliche Zahlungen zu akzeptieren.
Für den Einstieg in das Android SDK sind vier Schritte erforderlich:
- SDK in Ihrer App installieren.
- Ihre App konfigurieren.
- Verbindungs-Token-Endpoint in Ihrer App und Ihrem Backend einrichten.
- SDK in Ihrer App initialisieren.
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
dem Block dependencies
der Build-Datei Ihrer App hinzu:
Da das SDK auf Java 8 basiert, muss diese Version als Ihre Java-Zielversion angegeben werden:
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 die Stripe Terminal-Beta.
App konfigurierenClientseitig
Sie müssen die Berechtigung ACCESS_
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_
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 secret
aus dem ConnectionToken
können Sie sich mit einem beliebigen 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 berücksichtigt den Lebenszyklus. 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 eine Application
-Unterklasse implementieren, die TerminalApplicationDelegate.
verwendet, um das SDK über Ereignisse im Lebenszyklus zu informieren.
Notiz
Wenn Sie Tap to Pay auf Android (TTPA) verwenden möchten, unterscheidet sich die Initialisierung in Application
geringfügig von diesem Beispiel. Weitere Informationen finden Sie unter Mit einem Lesegerät mit TTPA verbinden.
Die vom Stripe Terminal SDK bereitgestellte Terminal-Klasse stellt eine allgemeine Schnittstelle zum Erkennen von Lesegeräten, zum Verbinden mit einem Lesegerät und zum Ausführen von Vorgängen auf dem Lesegerät bereit, wie z. B. Anzeigen von Warenkorbdetails, Erfassen von Zahlungen und Speichern von Karten für die zukünftige Verwendung.
Stellen Sie zunächst den aktuellen Anwendungskontext, den in Schritt 3 implementierten ConnectionTokenProvider und ein TerminalListener-Objekt bereit. Sie können diesen Listener verwenden, um Ereignisse wie Zahlungen und Aktualisierungen des Verbindungsstatus über das SDK zu verarbeiten.
Vorsicht
Wenn Sie ein Upgrade einer Version durchführen, die älter ist, als 1.
, 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