Weiter zum Inhalt
Konto erstellen
oder
anmelden
Das Logo der Stripe-Dokumentation
/
KI fragen
Konto erstellen
Anmelden
Jetzt starten
Zahlungen
Umsatz
Plattformen und Marktplätze
Geldmanagement
Entwicklerressourcen
Übersicht
Mit Connect loslegen
Integrationsgrundlagen
Musterintegrationen
Kontoverwaltung
Onboarding von Konten
Konto-Dashboards konfigurieren
Mit verbundenen Kontotypen zusammenarbeiten
Zahlungsabwicklung
Zahlungen weltweit akzeptieren
    Zahlung erstellen
      Direct Charges
        Gebührenkonfiguration für Ihre verbundenen Konten
        Berichte für Direct-Charge-Zahlungsgebühren
        Gemeinsame Nutzung von Zahlungsmethoden für mehrere Konten
      Destination Charges
      Separate Gebühren und Überweisungen
    Zahlungsbeschreibungen in der Abrechnung festlegen
    MCCs einrichten
    Umgang mit mehreren Währungen
    Mit Connect Zahlungslinks erstellen
    Radar mit Connect verwenden
    Angefochtene Zahlungen bei Connect
    Abos erstellen
    Rechnungen erstellen
    Mehrere Konfigurationen der Zahlungsmethoden
    Komponente für die Zahlungsmethodeneinstellungen einbetten
    Kontostand
Verbundene Konten auszahlen
Plattformverwaltung
Ihre Connect-Plattform verwalten
Steuerformulare für Ihre Connect-Plattform
StartseitePlattformen und MarktplätzeAccept paymentsCreate a charge

Direct Charges erstellen

Erstellen Sie Zahlungen direkt auf dem verbundenen Konto und erheben Sie Gebühren.

Erstellen Sie Direct Charges, wenn Kunden/Kundinnen direkt mit einem verbundenen Konto interagieren, während Ihre Plattform dabei im Hintergrund bleibt. Bei Direct Charges:

  • Die Zahlung wird auf dem verbundenen Konto als Abbuchung ausgewiesen, nicht auf dem Konto Ihrer Plattform.
  • Das Guthaben des verbundenen Kontos erhöht sich mit jeder Zahlung.
  • Ihr Kontoguthaben erhöht sich mit jeder Zahlung um die Plattformgebühren.

Dieser Zahlungstyp eignet sich am besten für Plattformen, die Software as a Service anbieten. Shopify bietet beispielsweise Tools zum Erstellen von Online-Shops und Thinkific ermöglicht es Lehrkräften, Online-Kurse zu geben.

Notiz

Wir empfehlen, Direct Charges für verbundene Konten zu verwenden, die Zugriff auf das vollständige Stripe haben.

Integrieren Sie die vorgefertigte Zahlungs-UI von Stripe in den Bezahlvorgang Ihrer Android-App mit der PaymentSheet-Klasse.

Stripe einrichten
Serverseitig
Clientseitig

Zunächst benötigen Sie ein Stripe-Konto. Registrieren Sie sich jetzt.

Serverseitig

Für diese Integration sind Endpoints auf Ihrem Server erforderlich, die mit der Stripe-API kommunizieren können. Nutzen Sie die offiziellen Bibliotheken für den Zugriff auf die Stripe-API von Ihrem Server aus:

Command Line
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Clientseitig

Das Stripe Android SDK ist Open Source und vollständig dokumentiert.

Um das SDK zu installieren, fügen Sie stripe-android in den Block dependencies Ihrer app/build.gradle-Datei ein:

build.gradle.kts
Kotlin
Groovy
No results
plugins { id("com.android.application") } android { ... } dependencies { // ... // Stripe Android SDK implementation("com.stripe:stripe-android:21.26.1") // Include the financial connections SDK to support US bank account as a payment method implementation("com.stripe:financial-connections:21.26.1") }

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:

Kotlin
Java
No results
import com.stripe.android.PaymentConfiguration class MyApp : Application() { override fun onCreate() { super.onCreate() PaymentConfiguration.init( applicationContext,
"pk_test_TYooMQauvdEDq54NiTphI7jx"
) } }

Notiz

Verwenden Sie Ihre Testschlüssel beim Testen und Entwickeln Ihrer App und Ihre Live-Modus-Schlüssel beim Veröffentlichen Ihrer App.

Endpoint hinzufügen
Serverseitig

Hinweis

Um das PaymentSheet vor dem Erstellen eines PaymentIntent anzuzeigen, finden Sie weitere Informationen unter Erfassen von Zahlungsdetails vor dem Erstellen eines Intent.

Diese Integration verwendet drei Stripe-API-Objekte:

  1. PaymentIntent: Stripe verwendet diesen, um Ihre Absicht darzustellen, Zahlungen von Ihren Kundinnen/Kunden anzufordern, wobei Abbuchungsversuche und Zahlungsstatusänderungen im gesamten Vorgang dokumentiert werden.

  2. (Optional) Kunde/Kundin: Um eine Zahlungsmethode für zukünftige Zahlungen einzurichten, müssen Sie sie einem Kunden/einer Kundin zuordnen. Erstellen Sie ein Customer-Objekt, wenn Ihre Kundin/Ihr Kunde ein Konto bei Ihrem Unternehmen anlegt. Wenn eine Zahlung als Gast durchgeführt wird, können Sie vor der Zahlung ein Customer-Objekt erstellen und es zu einem späteren Zeitpunkt mit Ihrer eigenen internen Darstellung des Kundenkontos verknüpfen.

  3. (Optional) Temporärer Kundenschlüssel: Informationen auf dem Kundenobjekt sind vertraulich und können nicht direkt über die App abgerufen werden. Ein temporärer Schlüssel gewährt dem SDK vorübergehenden Zugriff auf den/die Kund/in.

Notiz

Wenn Sie niemals Karten für eine/n Kund/in speichern und wiederkehrenden Kund/innen nicht erlauben, gespeicherte Karten wiederzuverwenden, können Sie das Customer-Objekt und das temporäre Schlüsselobjekt aus Ihrer Integration weglassen.

Aus Sicherheitsgründen kann Ihre App diese Objekte nicht erstellen. Fügen Sie stattdessen einen Endpoint auf Ihrem Server hinzu, der:

  1. Ruft den Kunden/die Kundin ab oder erstellt einen neuen/eine neue.
  2. Erstellt einen temporären Schlüssel für den Kunden/die Kundin.
  3. Erstellt einen PaymentIntent mit dem Betrag, der Währung und dem Kunden/der Kundin. Den Parameter automatic_payment_methods können Sie optional ebenfalls einfügen. Stripe aktiviert seine Funktionalität standardmäßig in der neuesten Version der API.
  4. Gibt das Client-Geheimnis des PaymentIntent, das secret des temporären Schlüssels, die ID des Kundenobjekts und Ihren veröffentlichbaren Schlüssel an Ihre App zurück.

Die Zahlungsmethoden, die Kund/innen während des Bezahlvorgangs angezeigt werden, sind ebenfalls in der PaymentIntent enthalten. Sie können Stripe Zahlungsmethoden aus Ihren Dashboard-Einstellungen abrufen lassen oder sie manuell auflisten. Gleich welche Option Sie wählen, die in der PaymentIntent übergebene Währung filtert die Zahlungsmethoden, die dem/r Kund/in angezeigt werden. Wenn Sie beispielsweise eur für den PaymentIntent übergeben und OXXO im Dashboard aktiviert ist, wird dem/r Kund/in OXXO nicht angezeigt, da OXXO eur-Zahlungen nicht unterstützt.

Sofern Ihre Integration keine codebasierte Option zum Anbieten von Zahlungsmethoden erfordert, empfiehlt Stripe die automatisierte Option, da Stripe die Währung, Einschränkungen für Zahlungsmethoden und andere Parameter auswertet, um die Liste der unterstützten Zahlungsmethoden zu ermitteln. Zahlungsmethoden, die die Konversion steigern und die für die Währung und den Standort des/r Kund/in am relevantesten sind, erhalten Priorität.

Notiz

Sie können eine Implementierung dieses Endpoints auf CodeSandbox zum Testen abspalten und bereitstellen.

Zahlungsmethoden können Sie über das Dashboard verwalten. Stripe handhabt die Rückgabe geeigneter Zahlungsmethoden basierend auf Faktoren wie Betrag, Währung und Zahlungsablauf der Transaktion. Der PaymentIntent wird mit den Zahlungsmethoden erstellt, die Sie im Dashboard konfiguriert haben. Wenn Sie das Dashboard nicht verwenden möchten oder wenn Sie Zahlungsmethoden manuell angeben möchten, können Sie sie mit dem Attribut payment_method_types auflisten.

Command Line
Curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Create a Customer (use an existing Customer ID if this is a returning customer) curl https://api.stripe.com/v1/customers \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -X "POST" # Create an Ephemeral Key for the Customer curl https://api.stripe.com/v1/ephemeral_keys \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -H "Stripe-Version: 2025-08-27.basil" \ -X "POST" \ -d "customer"="{{CUSTOMER_ID}}" \ # Create a PaymentIntent curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -H "Stripe-Account:
{{CONNECTED_ACCOUNT_ID}}
"
-X "POST" \ -d "customer"="{{CUSTOMER_ID}}" \ -d "amount"=1099 \ -d "currency"="eur" \ # In the latest version of the API, specifying the `automatic_payment_methods` parameter # is optional because Stripe enables its functionality by default. -d "automatic_payment_methods[enabled]"=true \ -d application_fee_amount="123" \

Zahlungsformular integrieren
Clientseitig

Bevor das mobile Payment Element angezeigt wird, sollte Ihre Checkout-Seite:

  • Zeigen Sie die gekauften Produkte und den Gesamtbetrag an
  • Erfassen Sie erforderliche Versandinformationen mithilfe des Address Element.
  • Fügen Sie eine Checkout-Schaltfläche ein, um die Nutzeroberfläche von Stripe anzuzeigen

Initialisieren Sie eine PaymentSheet-Instanz innerhalb von onCreate Ihrer Checkout-Aktivität, wobei eine Methode zur Verarbeitung des Ergebnisses übergeben wird.

import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import com.stripe.android.paymentsheet.PaymentSheet import com.stripe.android.paymentsheet.PaymentSheetResult @Composable fun App() { val paymentSheet = remember { PaymentSheet.Builder(::onPaymentSheetResult) }.build() } private fun onPaymentSheetResult(paymentSheetResult: PaymentSheetResult) { // implemented in the next steps }

Rufen Sie als Nächstes das PaymentIntent-Client-Geheimnis, das Geheimnis des temporären Schlüssels, die Kunden-ID und den veröffentlichbaren Schlüssel vom Endpoint ab, den Sie im vorigen Schritt erstellt haben. Legen Sie den veröffentlichbaren Schlüssel mithilfe von PaymentConfiguration fest und speichern Sie die anderen für den Zeitpunkt, an dem Sie das Zahlungsformular präsentieren.

import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.compose.ui.platform.LocalContext import com.stripe.android.PaymentConfiguration import com.stripe.android.paymentsheet.PaymentSheet import com.stripe.android.paymentsheet.PaymentSheetResult @Composable fun App() { val paymentSheet = remember { PaymentSheet.Builder(::onPaymentSheetResult) }.build() val context = LocalContext.current var customerConfig by remember { mutableStateOf<PaymentSheet.CustomerConfiguration?>(null) } var paymentIntentClientSecret by remember { mutableStateOf<String?>(null) } LaunchedEffect(context) { // Make a request to your own server and retrieve payment configurations val networkResult = ... if (networkResult.isSuccess) { paymentIntentClientSecret = networkResult.paymentIntent customerConfig = PaymentSheet.CustomerConfiguration( id = networkResult.customer, ephemeralKeySecret = networkResult.ephemeralKey ) PaymentConfiguration.init(context, networkResult.publishableKey,
"{{CONNECTED_ACCOUNT_ID}}"
) } } } private fun onPaymentSheetResult(paymentSheetResult: PaymentSheetResult) { // implemented in the next steps }

Wenn der Kunde/die Kundin auf Ihre Checkout-Schaltfläche tippt, rufen Sie presentWithPaymentIntent auf, um das Zahlungsformular anzuzeigen. Sobald die Zahlung kundenseitig abgeschlossen wurde, wird das Formular verworfen und PaymentSheetResultCallback mit einem PaymentSheetResult aufgerufen.

import androidx.compose.material.Button import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.platform.LocalContext import com.stripe.android.PaymentConfiguration import com.stripe.android.paymentsheet.PaymentSheet import com.stripe.android.paymentsheet.PaymentSheetResult @OptIn(ExperimentalCustomerSessionApi::class) @Composable fun App() { val paymentSheet = remember { PaymentSheet.Builder(::onPaymentSheetResult) }.build() val context = LocalContext.current var customerConfig by remember { mutableStateOf<PaymentSheet.CustomerConfiguration?>(null) } var paymentIntentClientSecret by remember { mutableStateOf<String?>(null) } LaunchedEffect(context) { // Make a request to your own server and retrieve payment configurations val networkResult = ... if (networkResult.isSuccess) { paymentIntentClientSecret = networkResult.paymentIntent customerConfig = PaymentSheet.CustomerConfiguration( id = networkResult.customer, ephemeralKeySecret = networkResult.ephemeralKey ) PaymentConfiguration.init(context, networkResult.publishableKey,
"{{CONNECTED_ACCOUNT_ID}}"
) } } Button( onClick = { val currentConfig = customerConfig val currentClientSecret = paymentIntentClientSecret if (currentConfig != null && currentClientSecret != null) { presentPaymentSheet(paymentSheet, currentConfig, currentClientSecret) } } ) { Text("Checkout") } } private fun presentPaymentSheet( paymentSheet: PaymentSheet, customerConfig: PaymentSheet.CustomerConfiguration, paymentIntentClientSecret: String ) { paymentSheet.presentWithPaymentIntent( paymentIntentClientSecret, PaymentSheet.Configuration.Builder(merchantDisplayName = "My merchant name") .customer(customerConfig) // Set `allowsDelayedPaymentMethods` to true if your business handles // delayed notification payment methods like US bank accounts. .allowsDelayedPaymentMethods(true) .build() ) } private fun onPaymentSheetResult(paymentSheetResult: PaymentSheetResult) { when(paymentSheetResult) { is PaymentSheetResult.Canceled -> { print("Canceled") } is PaymentSheetResult.Failed -> { print("Error: ${paymentSheetResult.error}") } is PaymentSheetResult.Completed -> { // Display for example, an order confirmation screen print("Completed") } } }

Wenn Sie allowsDelayedPaymentMethods auf true festlegen, werden Zahlungsmethoden mit verzögerter Benachrichtigung wie US-Bankkonten zugelassen. Für diese Zahlungsmethoden ist der endgültige Zahlungsstatus nicht bekannt, wenn das PaymentSheet abgeschlossen wird. Stattdessen ist sie erfolgreich oder schlägt fehl. Wenn Sie diese Art von Zahlungsmethoden unterstützen, informieren Sie den Kunden/die Kundin darüber, dass seine/ihre Bestellung bestätigt ist, und führen seine/ihre Bestellung erst aus (z. B. das Produkt versenden), wenn die Zahlung erfolgreich ist.

Ereignisse nach Zahlung verarbeiten
Serverseitig

Stripe sendet ein payment_intent.succeeded-Ereignis, wenn die Zahlung abgeschlossen ist. Verwenden Sie Webhook-Tool im Dashboard oder folgen Sie der Webhook-Anleitung, um diese Ereignisse zu empfangen und führen Sie Aktionen aus, wie beispielsweise das Senden einer Bestellbestätigung per E-Mail, das Protokollieren des Verkaufs in der Datenbank oder das Starten eines Versand-Workflows.

Überwachen Sie diese Ereignisse, statt auf einen Callback vom Client zu warten. Auf dem Client könnten die Kund/innen das Browserfenster schließen oder die App beenden, bevor der Callback erfolgt ist. Bösartige Clients könnten dann die Antwort manipulieren. Wenn Sie Ihre Integration so einrichten, dass sie asynchrone Ereignisse überwacht, können Sie verschiedene Arten von Zahlungsmethoden mit einer einzelnen Integration akzeptieren.

Neben der Abwicklung des payment_intent.succeeded-Ereignisses empfehlen wir die Abwicklung von diesen weiteren Ereignissen, wenn Sie Zahlungen mit dem Payment Element erfassen:

EreignisBeschreibungAktion
payment_intent.succeededWird gesendet, wenn Kundinnen und Kunden eine Zahlung erfolgreich abgeschlossen haben.Senden Sie den Kund/innen eine Auftragsbestätigung und wickeln Sie die Bestellung ab.
payment_intent.processingWird gesendet, wenn eine/e Kund/in eine Zahlung erfolgreich veranlasst hat, die Zahlung aber noch nicht abgeschlossen ist. Dieses Ereignis wird am häufigsten gesendet, wenn der Kunde/die Kundin eine Bankabbuchung veranlasst. In Zukunft folgt darauf entweder ein payment_intent.succeeded- oder ein payment_intent.payment_failed-Ereignis.Senden Sie eine Bestellbestätigung an die Kund/innen, in der angegeben ist, dass die Zahlung noch aussteht. Bei digitalen Waren können Sie die Bestellung abwickeln, bevor Sie darauf warten, dass die Zahlung erfolgt.
payment_intent.payment_failedWird gesendet, wenn ein Kunde/eine Kundin einen Zahlungsversuch durchführt, die Zahlung jedoch fehlschlägt.Wenn eine Zahlung von processing zu payment_failed übergeht, bieten Sie der Kundin/dem Kunden einen weiteren Zahlungsversuch an.

Integration testen

KartennummerSzenarioSo führen Sie den Test durch
Die Kartenzahlung ist erfolgreich und es ist keine Authentifizierung erforderlich.Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an.
Für die Kartenzahlung ist eine Authentifizierung erforderlich.Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an.
Die Karte wird mit einem Ablehnungscode wie insufficient_funds abgelehnt.Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an.
Die UnionPay-Karte hat eine variable Länge von 13 bis 19 Ziffern.Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an.

Hier finden Sie weitere Informationen zum Testen Ihrer Integration.

OptionalGoogle Pay aktivieren

Integration einrichten

Um Google Pay zu verwenden, aktivieren Sie zuerst die Google Pay API, indem Sie dem Tag <application> Ihrer Datei AndroidManifest.xml Folgendes hinzufügen:

AndroidManifest.xml
<application> ... <meta-data android:name="com.google.android.gms.wallet.api.enabled" android:value="true" /> </application>

Weitere Informationen finden Sie in der Google Pay API für Android.

Google Pay hinzufügen

Um Google Pay zu Ihrer Integration hinzuzufügen, übergeben Sie PaymentSheet.GooglePayConfiguration mit Ihrer Google Pay-Umgebung (Produktion oder Test) sowie den Ländercode Ihres Unternehmens, wenn Sie PaymentSheet.Configuration.

Kotlin
Java
No results
val googlePayConfiguration = PaymentSheet.GooglePayConfiguration( environment = PaymentSheet.GooglePayConfiguration.Environment.Test, countryCode = "US", currencyCode = "USD" // Required for Setup Intents, optional for Payment Intents ) val configuration = PaymentSheet.Configuration.Builder(merchantDisplayName = "My merchant name") .googlePay(googlePayConfiguration) .build()

Google Pay testen

Google ermöglicht Ihnen Testzahlungen über die Testkarten-Suite. Die Testsuite unterstützt die Verwendung von Stripe-Testkarten.

Sie können Google Pay auf einem physischen Android-Gerät testen. Stellen Sie sicher, dass Sie über ein Gerät in einem Land verfügen, in dem Google Pay unterstützt wird, und melden Sie sich auf Ihrem Testgerät mit einer in Google Wallet gespeicherten echten Karte bei einem Google-Konto an.

OptionalFormular anpassen

Alle Anpassungen werden mithilfe des Objekts PaymentSheet.Configuration konfiguriert.

Erscheinungsbild

Passen Sie mit der Appearance API Farben, Schriftarten und mehr an das Erscheinungsbild Ihrer App an.

Layout der Zahlungsmethode

Konfigurieren Sie das Layout der Zahlungsmethoden im Formular mit paymentMethodLayout. Sie können sie horizontal oder vertikal anzeigen oder das Layout von Stripe automatisch optimieren lassen.

Kotlin
Java
No results
PaymentSheet.Configuration.Builder("Example, Inc.") .paymentMethodLayout(PaymentSheet.PaymentMethodLayout.Automatic) .build()

Adressen der Nutzer/innen erfassen

Erfassen Sie lokale und internationale Versand- und Rechnungsadressen von Ihren Kundinnen und Kunden mithilfe des Address Element.

Anzeigename des Unternehmens

Geben Sie einen kundenorientierten Unternehmensnamen an, indem Sie merchantDisplayName festlegen. Standardmäßig handelt es sich dabei um den Namen Ihrer App.

Kotlin
Java
No results
PaymentSheet.Configuration.Builder( merchantDisplayName = "My app, Inc." ).build()

Dunkelmodus

Standardmäßig passt PaymentSheet sich automatisch an die systemweiten Erscheinungsbildeinstellungen des/der Nutzer/in an (heller und dunkler Modus). Dies können Sie ändern, indem Sie in Ihrer App den Hell- oder Dunkelmodus einrichten.

Kotlin
Java
No results
// force dark AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES) // force light AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)

Standardabrechnungsdetails

Um Standardwerte für die im Zahlungsformular erfassten Rechnungsdetails festzulegen, konfigurieren Sie die Eigenschaft defaultBillingDetails. Die Felder von PaymentSheet werden vorab mit den von Ihnen angegebenen Werten ausgefüllt.

Kotlin
Java
No results
val address = PaymentSheet.Address(country = "US") val billingDetails = PaymentSheet.BillingDetails( address = address, email = "foo@bar.com" ) val configuration = PaymentSheet.Configuration.Builder(merchantDisplayName = "Merchant, Inc.") .defaultBillingDetails(billingDetails) .build()

Erfassung von Abrechnungsdetails konfigurieren

BillingDetailsCollectionConfiguration verwenden, um anzugeben, wie Sie Rechnungsdetails im PaymentSheet erfassen möchten.

Sie können den Namen, die E-Mail-Adresse, die Telefonnummer und die Adresse Ihrer Kundinnen und Kunden erfassen.

Wenn Sie dem PaymentMethod-Objekt Standard-Abrechnungsdetails zuordnen möchten, auch wenn diese Felder nicht auf der Nutzeroberfläche erfasst werden, legen Sie billingDetailsCollectionConfiguration.attachDefaultsToPaymentMethod auf true fest.

Kotlin
Java
No results
val billingDetails = PaymentSheet.BillingDetails( email = "foo@bar.com" ) val billingDetailsCollectionConfiguration = BillingDetailsCollectionConfiguration( attachDefaultsToPaymentMethod = true, name = BillingDetailsCollectionConfiguration.CollectionMode.Always, email = BillingDetailsCollectionConfiguration.CollectionMode.Never, address = BillingDetailsCollectionConfiguration.AddressCollectionMode.Full, ) val configuration = PaymentSheet.Configuration.Builder(merchantDisplayName = "Merchant, Inc.") .defaultBillingDetails(billingDetails) .billingDetailsCollectionConfiguration(billingDetailsCollectionConfiguration) .build()

Notiz

Wenden Sie sich an Ihren Rechtsbeistand bezüglich der Gesetze, die für das Erfassen von Informationen gelten. Erfassen Sie Telefonnummern nur, wenn Sie sie für die Transaktion benötigen.

OptionalZahlung in Ihrer Nutzeroberfläche abschließen

Sie können das Zahlungsformular anzeigen, um nur die Details einer Zahlungsmethode zu erfassen, und die Zahlung in der Nutzeroberfläche Ihrer App abzuschließen. Dies ist nützlich, wenn Sie eine nutzerspezifische Kaufschaltfläche haben oder zusätzliche Schritte erfordern, nachdem die Zahlungsdetails erfasst wurden.

Notiz

A sample integration is available on our GitHub.

  1. Initialisieren Sie zunächst PaymentSheet.FlowController anstelle von PaymentSheet mit einer der Builder-Methoden.
Android (Kotlin)
Android (Java)
No results
class CheckoutActivity : AppCompatActivity() { private lateinit var flowController: PaymentSheet.FlowController override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) flowController = PaymentSheet.FlowController.Builder( paymentResultCallback = ::onPaymentSheetResult, paymentOptionCallback = ::onPaymentOption, ).build(this) } }
  1. Rufen Sie als Nächstes configureWithPaymentIntent mit den Stripe-Objektschlüsseln auf, die Sie von Ihrem Backend abgerufen haben, und aktualisieren Ihre Nutzeroberfläche im Callback mithilfe von getPaymentOption(). Diese enthält ein Bild und ein Label, das die aktuell vom Kunden/von der Kundin ausgewählte Zahlungsmethode darstellt.
Android (Kotlin)
Android (Java)
No results
flowController.configureWithPaymentIntent( paymentIntentClientSecret = paymentIntentClientSecret, configuration = PaymentSheet.Configuration.Builder("Example, Inc.") .customer(PaymentSheet.CustomerConfiguration( id = customerId, ephemeralKeySecret = ephemeralKeySecret )) .build() ) { isReady, error -> if (isReady) { // Update your UI using `flowController.getPaymentOption()` } else { // handle FlowController configuration failure } }
  1. Rufen Sie als Nächstes presentPaymentOptions auf, um die Zahlungsdetails zu erfassen. Wenn der Kunde/die Kundin fertig ist, beendet sich das Formular von selbst und ruft den zuvor in create übergebenen paymentOptionCallback auf. Setzen Sie diese Methode ein, um Ihre Nutzeroberfläche mit der zurückgegebenen paymentOption zu aktualisieren.
Android (Kotlin)
Android (Java)
No results
// ... flowController.presentPaymentOptions() // ... private fun onPaymentOption(paymentOption: PaymentOption?) { if (paymentOption != null) { paymentMethodButton.text = paymentOption.label paymentMethodButton.setCompoundDrawablesRelativeWithIntrinsicBounds( paymentOption.drawableResourceId, 0, 0, 0 ) } else { paymentMethodButton.text = "Select" paymentMethodButton.setCompoundDrawablesRelativeWithIntrinsicBounds( null, null, null, null ) } }
  1. Rufen Sie schließlich „bestätigen“ auf, um die Zahlung abzuschließen. Wenn der Kunde/die Kundin den Vorgang abgeschlossen hat, beendet sich das Formular von selbst und ruft das zuvor in create übergebene paymentResultCallback auf.
Android (Kotlin)
Android (Java)
No results
// ... flowController.confirmPayment() // ... private fun onPaymentSheetResult( paymentSheetResult: PaymentSheetResult ) { when (paymentSheetResult) { is PaymentSheetResult.Canceled -> { // Payment canceled } is PaymentSheetResult.Failed -> { // Payment Failed. See logcat for details or inspect paymentSheetResult.error } is PaymentSheetResult.Completed -> { // Payment Complete } } }

Wenn Sie allowsDelayedPaymentMethods auf true festlegen, werden Zahlungsmethoden mit verzögerter Benachrichtigung wie US-Bankkonten zugelassen. Für diese Zahlungsmethoden ist der endgültige Zahlungsstatus nicht bekannt, wenn das PaymentSheet abgeschlossen wird. Stattdessen ist sie erfolgreich oder schlägt fehl. Wenn Sie diese Art von Zahlungsmethoden unterstützen, informieren Sie den Kunden/die Kundin darüber, dass seine/ihre Bestellung bestätigt ist, und führen seine/ihre Bestellung erst aus (z. B. das Produkt versenden), wenn die Zahlung erfolgreich ist.

OptionalWeitere Zahlungsmethoden aktivieren

Navigieren Sie im Dashboard zu Zahlungsmethoden für Ihre verbundenen Konten verwalten, um zu konfigurieren, welche Zahlungsmethoden Ihre verbundenen Konten akzeptieren. Änderungen an den Standardeinstellungen gelten für alle neuen und bestehenden verbundenen Konten.

Informationen zu den Zahlungsmethoden finden Sie in den folgenden Ressourcen:

  • Ein Leitfaden zu Zahlungsmethoden, der Ihnen bei der Auswahl der richtigen Zahlungsmethoden für Ihre Plattform hilft.
  • Kontofunktionen, um sicherzustellen, dass die gewählten Zahlungsmethoden für Ihre verbundenen Konten funktionieren.
  • Zahlungsmethode und Produktsupport, um sicherzustellen, dass die gewählten Zahlungsmethoden für Ihre Stripe-Produkte und Zahlungsabläufe geeignet sind.

Für jede Zahlungsmethode können Sie eine der folgenden Dropdown-Optionen wählen:

Standardmäßig aktiviertIhre verbundenen Konten akzeptieren diese Zahlungsmethode beim Bezahlvorgang. Einige Zahlungsmethoden können nur deaktiviert oder gesperrt werden. Dies liegt daran, dass Ihre verbundenen Konten mit Zugriff auf das Stripe-Dashboard sie auf ihrer Seite mit Einstellungen aktivieren müssen.
Standardmäßig deaktiviertIhre verbundenen Konten akzeptieren diese Zahlungsmethode beim Bezahlvorgang nicht. Wenn Sie Ihren verbundenen Konten mit Zugriff auf das Stripe-Dashboard erlauben, ihre eigenen Zahlungsmethoden zu verwalten, haben sie die Möglichkeit, sie zu aktivieren.
BlockiertIhre verbundenen Konten akzeptieren diese Zahlungsmethode beim Bezahlvorgang nicht. Wenn Sie Ihren verbundenen Konten mit Zugriff auf das Stripe-Dashboard erlauben, ihre eigenen Zahlungsmethoden zu verwalten, haben sie nicht die Möglichkeit, sie zu aktivieren.
Dropdown-Optionen für Zahlungsmethoden, die jeweils eine verfügbare Option anzeigen (blockiert, standardmäßig aktiviert, standardmäßig deaktiviert)

Optionen für Zahlungsmethoden

Wenn Sie eine Änderung an einer Zahlungsmethode vornehmen, müssen Sie auf Änderungen überprüfen in der Leiste unten im Bildschirm klicken und auf Speichern und anwenden, um Ihre verbundenen Konten zu aktualisieren.

Dialogfeld, das nach dem Klicken auf die Schaltfläche „Speichern“ angezeigt wird, mit einer Liste der Änderungen, die der/die Nutzer/in geändert hat

Dialogfeld „Speichern“

Verbundenen Konten die Verwaltung von Zahlungsmethoden gestatten

Stripe empfiehlt, dass Sie Ihren verbundenen Konten erlauben, ihre eigenen Zahlungsmethoden anzupassen. Diese Option ermöglicht jedem verbundenen Konto mit Zugriff auf das Stripe-Dashboard, seine Seite mit den Zahlungsmethoden anzuzeigen und zu aktualisieren. Nur Inhaber/innen der verbundenen Konten können ihre Zahlungsmethoden anpassen. Das Stripe-Dashboard zeigt die Standard-Zahlungsmethoden an, die Sie auf alle neuen und bestehenden verbundenen Konten angewendet haben. Ihre verbundenen Konten können diese Standardeinstellungen außer Kraft setzen, mit Ausnahme der von Ihnen blockierten Zahlungsmethoden.

Aktivieren Sie das Kontrollkästchen Anpassung des Kontos, um diese Option zu aktivieren. Sie müssen auf Änderungen überprüfen in der Leiste unten im Bildschirm klicken und dann Speichern und übernehmen auswählen, um diese Einstellung zu aktualisieren.

Screenshot des Kontrollkästchens, das aktiviert werden muss, wenn Inhaber/innen verbundener Konten das Anpassen von Zahlungsmethoden gestattet ist

Kontrollkästchen „Anpassung des Kontos“

Funktionen der Zahlungsmethode

Damit Ihre verbundenen Konten zusätzliche Zahlungsmethoden akzeptieren können, müssen Sie sicherstellen, dass ihre verbundenen Konten aktive Funktionen für jede Zahlungsmethode haben. Die meisten Zahlungsmethoden haben die gleichen Verifizierungsanforderungen wie die Funktion card_payments, mit einigen Einschränkungen und Ausnahmen. In der Tabelle mit den Funktionen für Zahlungsmethoden sind die Zahlungsmethoden aufgeführt, die eine zusätzliche Verifizierung über Karten erfordern.

Navigieren Sie zu den Zahlungsmethoden für verbundene Konten im Dashboard, um auf Ihren neuen und bestehenden verbundenen Konten Funktionen für jede Kombination aus Zahlungsmethode und Land anzufordern.

Gebühren einziehen

Wenn eine Zahlung verarbeitet wird, kann Ihre Plattform einen Teil der Transaktion in Form von Plattformgebühren übernehmen. Sie können die Preise für die Plattformgebühr auf zwei Arten festlegen:

  • Mit dem Plattform-Preistool können Sie Preisregeln festlegen und testen. Diese No-Code-Funktion im Stripe-Dashboard ist derzeit nur für Plattformen verfügbar, die für die Zahlung von Stripe-Gebühren verantwortlich sind.
  • Legen Sie Ihre Preisregeln intern fest und geben Sie die Plattformgebühren direkt in einem PaymentIntent an. Die mit dieser Methode festgelegten Gebühren überschreiben die im Plattform-Preistool angegebene Preislogik.

Ihre Plattform kann eine Plattformgebühr unter Berücksichtigung der folgenden Einschränkungen erheben:

  • Der Wert von application_fee_amount muss positiv und kleiner als der Betrag der Zahlung sein. Die erhobene Plattformgebühr wird auf den Betrag der Zahlung begrenzt.
  • Es fallen keine zusätzlichen Stripe-Gebühren für die Plattformgebühr selbst an.
  • In Übereinstimmung mit gesetzlich vorgeschriebenen und Compliance-Anforderungen in Brasilien können Plattformen mit Sitz außerhalb Brasiliens und mit brasilianischen verbundenen Konten keine Plattformgebühren über Stripe einziehen.
  • Die Währung des application_fee_amount hängt von einigen Faktoren für mehrere Währungen ab.

Die Saldo-Transaktion der sich ergebenden Zahlung beinhaltet eine detaillierte Gebührenaufschlüsselung sowohl der Stripe-Gebühren als auch der Plattformgebühren. Um eine bessere Berichterstellung zu ermöglichen, wird ein Plattformgebühr-Objekt erstellt, sobald die Gebühr eingezogen wurde. Verwenden Sie die Eigenschaft amount des Plattformgebühren-Objekts für die Berichterstellung. Anschließend können Sie mit dem Endpoint für Plattformgebühren auf diese Objekte zugreifen.

Erhaltene Plattformgebühren werden Ihrem verfügbaren Kontosaldo nach demselben Zeitplan hinzugefügt wie Gelder aus regulären Stripe-Zahlungen. Plattformgebühren können im Abschnitt Erhobene Gebühren des Dashboards angezeigt werden.

Vorsicht

Plattformgebühren für Direct Charges werden standardmäßig asynchron erstellt. Wenn Sie das application_fee-Objekt in einer Zahlungserstellungsanfrage erweitern, wird die Plattformgebühr synchron als Teil dieser Anfrage erstellt. Erweitern Sie das application_fee-Objekt nur bei Bedarf, da dies die Latenz der Anfrage erhöht.

Um auf die Plattformgebührenobjekte für Plattformgebühren, die asynchron erstellt werden, zuzugreifen, überwachen Sie das Webhook-Ereignis application_fee.created.

Geldbewegungen mit Gebühren

Wenn Sie eine Plattformgebühr für eine Zahlung angeben, wird der Gebührenbetrag auf das Stripe-Konto Ihrer Plattform übertragen. Wird eine Zahlung direkt über das verbundene Konto abgewickelt, wird der Zahlungsbetrag – abzüglich der Stripe-Gebühren und der Plattformgebühr – in das verbundene Konto eingezahlt.

Wenn Sie beispielsweise eine Zahlung in Höhe von 10 USD mit einer Plattformgebühr von 1,23 USD vornehmen (wie im vorherigen Beispiel), werden 1,23 USD auf Ihr Plattformkonto überwiesen. 8,18 USD (10 USD – 0,59 USD – 1,23 USD) werden im verbundenen Konto verrechnet (wobei standardmäßig US-Stripe-Gebühren angenommen werden).

Geldbewegungen bei einer Zahlung mit Plattformgebühr

Wenn Sie Zahlungen in mehreren Währungen abwickeln, lesen Sie die Informationen zur Handhabung von Währungen in Connect.

Rückerstattungen ausstellen

Ebenso wie Plattformen Zahlungen für verbundene Konten erstellen können, können sie auch Rückerstattungen von Zahlungen für verbundene Konten erstellen. Erstellen Sie eine Rückerstattung mit dem Geheimschlüssel Ihrer Plattform, während Sie als das verbundene Konto authentifiziert sind.

Plattformgebühren werden bei Ausstellung einer Rückerstattung nicht automatisch zurückerstattet. Ihre Plattform muss die Plattformgebühr explizit zurückerstatten. Andernfalls büßt das verbundene Konto, d. h. das Konto, auf dem die Zahlung erstellt wurde, diesen Betrag ein. Sie können eine Plattformgebühr zurückerstatten, indem Sie in der Erstattungsanfrage für den Wert refund_application_fee true angeben:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/refunds \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -H "Stripe-Account:
{{CONNECTED_ACCOUNT_ID}}
"
\ -d charge=
{{CHARGE_ID}}
\ -d refund_application_fee=true

Standardmäßig wird die gesamte Zahlung zurückerstattet. Sie können jedoch auch eine Teilerstattung erstellen, indem Sie den Wert amount als positive ganze Zahl festlegen. Wenn die Erstattung zu einer Rückerstattung der gesamten Zahlung führt, wird die gesamte Plattformgebühr zurückerstattet. Andernfalls wird ein anteiliger Betrag der Plattformgebühr zurückerstattet. Alternativ können Sie den Wert refund_application_fee als false angeben und die Plattformgebühr getrennt erstatten.

In Connect eingebettete Komponenten

In Connect eingebettete Komponenten unterstützt Direct Charges. Mithilfe der eingebetteten Zahlungskomponente können Sie Ihren verbundenen Konten innerhalb Ihrer Website die Möglichkeit geben, Zahlungsinformationen einzusehen, Gebühren zu erfassen und Zahlungsanfechtungen zu verwalten.

Die folgenden Komponenten zeigen Informationen für Direct Charges an:

  • Payments-Komponente: Zeigt alle Zahlungen und Zahlungsanfechtungen eines Kontos an.

  • Zahlungsdetails: Zeigt Informationen für eine bestimmte Zahlung an.

  • Komponente „Zahlungsanfechtungen“: Zeigt alle Zahlungsanfechtungen eines Kontos an.

  • Komponente „Zahlungsanfechtungen für eine Zahlung“: Zeigt die Zahlungsanfechtungen für eine einzelne angegebene Zahlung an. Sie können damit Funktionen zum Management von Zahlungsanfechtungen in eine Seite Ihrer Zahlungs-Nutzeroberfläche integrieren.

Siehe auch

  • Mit mehreren Währungen arbeiten
  • Zahlungsbeschreibungen mit Connect
War diese Seite hilfreich?
JaNein
  • Benötigen Sie Hilfe? Kontaktieren Sie den Kundensupport.
  • Nehmen Sie an unserem Programm für frühzeitigen Zugriff teil.
  • Schauen Sie sich unser Änderungsprotokoll an.
  • Fragen? Sales-Team kontaktieren.
  • LLM? Lesen Sie llms.txt.
  • Unterstützt von Markdoc