Direkt speichern, ohne die Karte zu belasten
Details einer vorhandenen Karte erfassen und für die Online-Verwendung speichern.
Verwenden Sie SetupIntents, um Details zu Karten oder Mobile Wallets zu erfassen, ohne die Karte zu belasten. Ein SetupIntent kann eine card_
PaymentMethod nicht direkt speichern, aber in den meisten Fällen können Sie eine wiederverwendbare generated_
PaymentMethod erstellen, die dieselbe Karte darstellt. Aus der Sicht Ihres Kunden/Ihrer Kundin handelt es sich um dieselbe Zahlungsmethode.
Sie können SetupIntents verwenden, um Kartenangaben für Visa-, Mastercard-, American Express, Discover- und Interac-, EFTPOS- und girocard-Karten mit Co-Branding zu erfassen. SetupIntents unterstützt keine Interac-, EFTPOS- und girocard-Karten mit nur einer Marke.
Zum Speichern von Karten mit Stripe Terminal mithilfe von SetupIntents müssen Sie Folgendes tun:
- Erstellen oder Abrufen eines Kunden-Objekts
- Erstellen eines SetupIntent-Objekts, um den Vorgang zu verfolgen.
- Erfassen einer Zahlungsmethode nach Zustimmung der Kundin/des Kunden
- Übermitteln der Angaben zur Zahlungsmethode an Stripe
Notiz
Wir haben das Modell für die Kundeneinwilligung in diese Funktion geändert, sodass der Parameter allow_
anstelle des abgeschafften customer_
-Parameters erforderlich ist. Wenn Ihre Integration customer_
verwendet, müssen Sie sie aktualisieren, um allow_
zu nutzen. Dieses Update ist seit dem 31. März 2025 für Nicht-React Native-Nutzer/innen und ab dem 30. September 2025 für React Native-Nutzer/innen verpflichtend. Eine Anleitung finden Sie unter Eintrag in Änderungsprotokoll.
Kundinnen/Kunden erstellen oder abrufen
Um eine bei Stripe gespeicherte Karte zu belasten, müssen Sie sie einem Kunden-Objekt zuordnen.
Wenn Sie vor dem Bestätigen, eine Kundin/einen Kunden in Ihrer SetupIntent angeben, fügt Stripe die generierte Kartenzahlungsmethode automatisch zum angegebenen Kunden-Objekt hinzu.
Fügen Sie den folgenden Code auf Ihrem Server ein, um einen neuen Customer
zu erstellen.
SetupIntent erstellen
Notiz
Es wird empfohlen, bei der Erstellung einer SetupIntent eine Kunden-ID anzugeben, damit die Zahlungsmethode „Karte“ bei erfolgreicher Einrichtung dem/der Customer
hinzugefügt wird. Wenn Sie keine Kunden-ID angeben, müssen Sie die Zahlungsmethode in einem separaten Aufruf hinzufügen.
Ein SetupIntent ist ein Objekt, mit dem Sie eine Zahlungsmethode eines Kunden/einer Kundin für zukünftige Zahlungen einrichten können. Der SetupIntent verfolgt die Schritte dieses Einrichtungsvorgangs. Für Terminal beinhaltet dies die Einholung und Aufzeichnung der Zustimmung von dem/der Karteninhaber/in.
Sie können einen SetupIntent erstellen und die Parameter customer
, onBehalfOf
(nur Connect) und usage
angeben.
const { createSetupIntent } = useStripeTerminal(); const { paymentIntent, error } = await createSetupIntent({ customer:
, }); if (error) { // Placeholder for handling exception return; } // Placeholder for collecting a payment method with setupIntent'{{CUSTOMER_ID}}'
Wenn die zum Starten einer Zahlung erforderlichen Informationen nicht ohne weiteres in Ihrer App verfügbar sind, können Sie den SetupIntent auf Ihrem Server erstellen. Rufen Sie unter Verwendung des Client-Geheimnisses retrieveSetupIntent
auf und rufen Sie dann unter Verwendung des abgerufenen SetupIntent collectSetupIntentPaymentMethod
auf.
Zahlungsmethode zum Speichern erfassen
Nachdem Sie einen SetupIntent erstellt haben, müssen Sie eine Zahlungsmethode mit dem SDK erfassen und die Zustimmung des Kunden/der Kundin einholen. Übergeben Sie allowRedisplay als always
oder limited
. Geben Sie damit an, inwieweit eine Zahlungsmethode in einem Bezahlvorgang einer Kundin/eines Kunden angezeigt werden kann.
Notiz
Holen Sie die Zustimmung mündlich oder über ein Kontrollkästchen in Ihrer Anwendung ein. Sie müssen auf die Einhaltung sämtlicher in Ihrer Region geltenden Gesetze, Regeln und Richtlinien achten.
Zum Erfassen einer Zahlungsmethode müssen Sie mit einem Lesegerät verbunden sein. Das verbundene Lesegerät wartet auf eine Karte, nachdem Ihre App collectSetupIntentPaymentMethod
aufruft.
const { setupIntent, error } = await collectSetupIntentPaymentMethod({ setupIntentId: setupIntentId, allowRedisplay: "always" }); if (error) { // Placeholder for handling exception return; } // Placeholder for confirming setupIntent
Diese Methode erfasst verschlüsselte Zahlungsmethodendaten mithilfe des verbundenen Kartenlesegeräts und ordnet die verschlüsselten Daten dem SetupIntent zu.
Vorsicht
Die Erfassung einer Zahlungsmethode erfolgt lokal und erfordert bis zum nächsten Schritt keine Autorisierung oder Aktualisierung des SetupIntent-Objekts.
Erfassung abbrechen
Programmgesteuerte Stornierung
Sie können die Erfassung von Zahlungsmethoden abbrechen, indem Sie cancelCollectSetupIntent im SDK aufrufen.
Kundenseitig initiierte Stornierung
Wenn Sie enableCustomerCancellation für eine Transaktion auf „true“ gesetzt haben, wird Nutzerinnen und Nutzern von intelligenten Lesegeräten eine Schaltfläche zum Abbrechen angezeigt. Durch Tippen auf die Schaltfläche „Abbrechen“ wird die aktive Transaktion abgebrochen.
const { setupIntent, error } = await collectSetupIntentPaymentMethod({ setupIntentId: setupIntentId, allowRedisplay: "always" enableCustomerCancellation: true }); if (error) { // Placeholder for handling exception } // Placeholder for processing SetupIntent
Angaben zur Zahlungsmethode an Stripe übermitteln
Verwenden Sie confirmSetupIntent
, um die Einrichtung abzuschließen.
Eine erfolgreiche Einrichtung gibt den Wert succeeded
für die Status-Eigenschaft des SetupIntent zurück, zusammen mit einer SetupAttempt.payment_method_details.card_present.generated_card, bei der es sich um eine wiederverwendbare card
-Zahlungsmethode handelt, die Sie für Online-Zahlungen verwenden können.
Notiz
Die SetupIntent.payment_method ist eine card_
-PaymentMethod, die die Tokenisierung der physisch vorhandenen Karte darstellt und nicht online abrechenbar ist. Bei zukünftigen Zahlungen wird stattdessen die generierte Karte verwendet. Aus Kundensicht handelt es sich um dieselbe Zahlungsmethode.
Die Zahlungsmethode generated_
wird automatisch dem Kunden/der Kundin zugeordnet, den/die Sie bei der Erstellung des SetupIntent angegeben haben. Sie können die Zahlungsmethode generated_
abrufen, indem Sie die Eigenschaft latest_
des SetupIntent erweitern. Überprüfen Sie immer, ob ein Wert für generated_
angegeben wurde, da der Wert für Zahlungsmethoden, die keine generierten Karten zulassen, leer ist.
Alternativ können Sie die angehängte Zahlungsmethode abrufen, indem Sie die Liste der Zahlungsmethoden abrufen, die dem Kunden/der Kundin angehängt wird.
Wenn Sie während der Erstellung des SetupIntent keinen Kunden/keine Kundin angeben, können Sie auch in einem separaten Aufruf die generated_
an das Customer-Objekt anhängen.
Wenn die Einrichtung nicht erfolgreich ist, prüfen Sie den zurückgegebenen Fehler, um die Ursache zu ermitteln. Wurde beispielsweise die Zustimmung des/der Kund/in nicht eingeholt und Stripe nicht über die Zustimmung informiert, tritt ein Fehler auf.
const { setupIntent, error } = await confirmSetupIntent(setupIntentId); if (error) { // Placeholder for handling exception return; } // The SetupIntent is now ready to be used as a payment method on a future payment
Überlegungen zu Mobile Wallets
Gespeicherte Mobile Wallets sind nur für off_session-Zahlungen vorgesehen, z. B. für zukünftige Abonnementzahlungen oder andere Zahlungen, die Sie im Namen Ihrer Kundinnen und Kunden initiieren. Wenn Sie eine Zahlungsmethode für eine Digital Wallet speichern, ist für die generated_
die Option allow_
festgelegt, um die spezifischen Nutzungsüberlegungen anzugeben.
Wenn Sie versuchen, ein Mobil Wallet zu belasten, achten Sie darauf, dass bei der PaymentIntent-Bestätigung off_
übergeben wird. Wenn sich der Kunde/die Kundin in Ihrem Bezahlvorgang befindet, müssen Sie stattdessen die Integrationen von Apple Pay und Google Pay verwenden, um erneut zur Anzeige der Zahlungsmethode aufzufordern.
Compliance
Sie sind dafür verantwortlich, dass Sie alle geltenden Gesetze, Vorschriften und Netzwerkregeln einhalten, wenn Sie die Zahlungsdaten eines Kunden/einer Kundin speichern. Beispielsweise hat der Europäische Datenschutzausschuss Leitlinien zum Speichern von Zahlungsdaten herausgegeben. Diese Anforderungen gelten in der Regel, wenn Sie die Zahlungsmethode Ihrer Kundin/Ihres Kunden für die zukünftige Verwendung speichern möchten, zum Beispiel wenn Sie ihr/ihm die Zahlungsmethode einer Kundin/eines Kunden im Bestellvorgang für einen zukünftigen Kauf anzeigen oder ihr/sein Konto belasten möchten, wenn sie/er Ihre Website oder App nicht aktiv nutzt.
Binden Sie Konditionen in Ihre Website oder App ein, aus denen hervorgeht, wie Sie die Details der Zahlungsmethode speichern möchten, und ermöglichen Sie es den Kunden/Kundinnen, sich anzumelden. Wenn Sie planen, ein Kundenkonto zu belasten, während ein Kunde/eine Kundin offline ist, müssen Sie mindestens sicherstellen, dass Ihre Konditionen auch Folgendes abdecken:
- Die kundenseitige Zustimmung, eine Zahlung oder mehrere Zahlungen für bestimmte Transaktionen in deren Namen einzuleiten.
- Der erwartete Zeitpunkt und die voraussichtliche Häufigkeit von Zahlungen (z. B. Zahlungen für geplante Raten- oder Abonnementzahlungen oder für außerplanmäßige Aufstockungen).
- So wird der Zahlungsbetrag bestimmt.
- Ihre Stornorichtlinie, wenn Sie die Zahlungsmethode für einen Abonnementdienst einrichten.
Dokumentieren Sie unbedingt die schriftliche Zustimmung Ihrer Kundinnen und Kunden zu diesen Bedingungen.
Wenn Sie eine Zahlungsmethode speichern, kann sie nur für die in Ihren Konditionen festgelegte Nutzung verwendet werden. Wenn Sie ein Kundenkonto belasten möchten, während ein Kunde/eine Kundin offline ist, und auch die Zahlungsmethode des Kunden/der Kundin speichern möchten, um sie ihm/ihr als gespeicherte Zahlungsmethode für zukünftige Einkäufe anzuzeigen, müssen Sie explizit die Zustimmung des Kunden/der Kundin einholen. Eine Möglichkeit, dies zu tun, ist das Kontrollkästchen „Meine Zahlungsmethode für die zukünftige Verwendung speichern“.