Eine Zahlung über Stripe Elements und die Charges API annehmenCharges API
Nehmen Sie Online-Zahlungen von Kund/innen in den USA und Kanada an.
Legacy API
The content of this section refers to a Legacy feature. Use the Payment Intents API instead.
Die Charges API unterstützt die folgenden Funktionen nicht, von denen viele für die Einhaltung von Kreditkartenvorschriften erforderlich sind:
Mit unserer vordefinierten Nutzeroberflächenkomponente für Karten können Sie ein Zahlungsformular erstellen, mit dem Sie die Kartendaten Ihrer Kundinnen/Kunden sicher erfassen können, ohne die sensiblen Daten verarbeiten zu müssen. Die Kartendaten werden hierbei in ein repräsentatives Token konvertiert, das Sie sicher an Ihre Server übermitteln können. Mit diesem Token können Sie anschließend auf Ihrem Server eine Zahlung erstellen.
Notiz
Die Schritte in dieser Anleitung sind auf GitHub vollständig implementiert. Kopieren Sie das Repository und folgen Sie den Anweisungen, um die Demo-App auszuführen.
Stripe einrichtenClientseitigServerseitig
Serverseitig
Diese Integration erfordert Endpunkte auf Ihrem Server, die mit der Stripe-API kommunizieren können. Nutzen Sie unsere offiziellen Bibliotheken für den Zugriff auf die Stripe-API über Ihren Server:
Clientseitig
Das Stripe Android SDK ist Open Source und vollständig dokumentiert.
To install the SDK, add stripe-android
to the dependencies
block of your app/build.gradle file:
Notiz
Details zur aktuellen SDK-Version und zu vorherigen Versionen finden Sie auf der Seite Releases auf GitHub. Um bei Veröffentlichung eines neuen Release eine Benachrichtigung zu erhalten, beobachten Sie Veröffentlichungen für das jeweilige Repository.
Konfigurieren Sie das SDK mit Ihrem veröffentlichbaren Schlüssel von Stripe so, dass dieser Anfragen an die API stellen kann, wie beispielsweise in Ihrer Unterklasse Application
:
Notiz
Verwenden Sie Ihre Test-Modus-Schlüssel beim Testen und Entwickeln Ihrer App und Ihre Live-Modus-Schlüssel beim Veröffentlichen Ihrer App.
Zahlungsformular erstellenClientseitig
Erfassen Sie Kartendaten sicher auf dem Client mit CardInputWidget, einer Drop-In-Komponente der Nutzeroberfläche aus dem SDK, die die Kartennummer, das Ablaufdatum, die Prüfziffer (CVC) und die Postleitzahl erfasst.
CardInputWidget führt Validierung und Formatierung dynamisch aus.
Erstellen Sie eine Instanz der Kartenkomponente und eine Schaltfläche Zahlung, indem Sie dem Layout Ihrer Bezahlseite Folgendes hinzufügen
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:showIn="@layout/activity_checkout" tools:context=".CheckoutActivity"> <!-- ... --> <com.stripe.android.view.CardInputWidget android:id="@+id/cardInputWidget" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginRight="20dp"/> <Button android:text="Pay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/payButton" android:layout_marginTop="20dp" app:layout_constraintTop_toBottomOf="@+id/cardInputWidget" app:layout_constraintStart_toStartOf="@+id/cardInputWidget" app:layout_constraintEnd_toEndOf="@+id/cardInputWidget"/> <!-- ... --> </androidx.constraintlayout.widget.ConstraintLayout>
Führen Sie Ihre App aus und stellen Sie sicher, dass auf Ihrer Bezahlseite die Kartenkomponente und die Schaltfläche „Zahlung“ anzeigt werden.
Token erstellenClientseitig
Wenn die Nutzerin/der Nutzer auf die Schaltfläche „Zahlung“ tippt, konvertieren Sie die von CardInputWidget
erfassten Kartendaten in ein Stripe-Token. Durch die Tokenisierung wird sichergestellt, dass keinerlei sensible Kartendaten an Ihren Server übermittelt werden müssen, wodurch Ihre Integration PCI-konform bleibt.
Der folgende Code zeigt, wie Stripe#createToken() verwendet wird. Bei der Methode kommt eine Card
-Instanz als erster Parameter zum Einsatz. Der zweite Parameter ist die Instanz ApiResultCallback<Token>, die der Client bei Erfolg oder Misserfolg aufruft. Wenn die Tokenisierung erfolgreich ist, übermitteln Sie die zurückgegebene Token-ID an Ihren Server.
Übermitteln Sie die Token-ID vom Client an Ihren Server.
Zahlung mit dem Token erstellenServerseitig
Die Reaktion auf die Erstellung einer Zahlung ist entweder eine Zahlung oder ein Fehler mit einem Fehlercode. Ist die Reaktion erfolgreich, können Sie die Bestellung des Kunden/der Kundin abwickeln und eine Bestätigungsseite anzeigen lassen. Wenn nicht, können Sie eine Fehlerseite anzeigen lassen.
Integration testen
Wenn Sie zuverlässig eine Testkarte im Kartenelement eingeben, die Daten an den Server übermitteln und sehen können, dass Ihr Server die Zahlung erstellt hat, ist Ihre Integration abgeschlossen.
Sie haben eine Charges API-Integration erstellt, mit der Sie Kartenzahlungen direkt annehmen können. Diese API unterstützt keine expandierenden Unternehmen oder Kundinnen/Kunden, die ihren Sitz nicht in den USA oder Kanada haben. Für umfangreichere und globale Zahlungen sollten Sie sich mit der Payment Intents API vertraut machen.