Zukünftige Zahlungen einrichten
Mit der Setup Intents API können Sie die Zahlungsdetails Ihrer Kund/innen ohne vorherige Zahlung speichern. Das ist hilfreich, wenn Sie Kund/innen jetzt onboarden und Zahlungen für sie einrichten, diese aber erst später durchführen möchten (wenn die Kund/innen offline sind).
Verwenden Sie diese Integration, um wiederkehrende Zahlungen einzurichten oder einmalige Zahlungen zu erstellen, bei denen der endgültige Betrag später festgelegt wird (häufig erst nach Erhalt Ihrer Dienstleistung).
Konformität
You’re responsible for your compliance with all applicable laws, regulations, and network rules when saving a customer’s payment details. These requirements generally apply if you want to save your customer’s payment method for future use, such as displaying a customer’s payment method to them in the checkout flow for a future purchase or charging them when they’re not actively using your website or app. Add terms to your website or app that state how you plan to save payment method details and allow customers to opt in.
When you save a payment method, you can only use it for the specific usage you have included in your terms. To charge a payment method when a customer is offline and save it as an option for future purchases, make sure that you explicitly collect consent from the customer for this specific use. For example, include a “Save my payment method for future use” checkbox to collect consent.
To charge them when they’re offline, make sure your terms include the following:
- 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).
- Wie Sie den Zahlbetrag ermitteln.
- Ihre Stornorichtlinie, wenn die Zahlungsmethode für einen Abonnementdienst ist.
Dokumentieren Sie unbedingt die schriftliche Zustimmung Ihrer Kundinnen und Kunden zu diesen Bedingungen.
Notiz
Wenn Sie die manuelle serverseitige Bestätigung verwenden müssen oder für Ihre Integration die separate Angabe von Zahlungsmethoden erforderlich ist, lesen Sie unseren alternativen Leitfaden.
Stripe einrichtenServerseitig
Erstellen Sie zunächst ein Stripe-Konto oder melden Sie sich an.
Verwenden Sie unsere offiziellen Bibliotheken, um von Ihrer Anwendung aus auf die Stripe API zuzugreifen:
Zahlungsmethoden aktivieren
Zeigen Sie Ihre Einstellungen für Zahlungsmethoden an und aktivieren Sie die Zahlungsmethoden, die Sie unterstützen möchten. Sie müssen mindestens eine Zahlungsmethode aktiviert haben, um einen SetupIntent zu erstellen.
Standardmäßig aktiviert Stripe Karten und andere gängige Zahlungsmethoden, mit denen Sie mehr Kund/innen erreichen können. Wir empfehlen jedoch, zusätzliche Zahlungsmethoden zu aktivieren, die für Ihr Unternehmen und Ihre Kund/innen relevant sind. Informationen zur Unterstützung von Produkten und Zahlungsmethoden finden Sie auf der Seite Integrationsoptionen für Zahlungsmethoden und der Preisseite für Gebühren.
Kund/innen erstellenServerseitig
Um eine Zahlungsmethode für zukünftige Zahlungen einzurichten, müssen Sie sie einem/einer Kund/in hinzufügen. Erstellen Sie Customer
-Objekte, wenn Kund/innen ein Konto bei Ihrem Unternehmen erstellen. Customer
-Objekte ermöglichen die Wiederverwendung von Zahlungsmethoden und die Nachverfolgung über mehrere Zahlungen hinweg.
SetupIntent erstellenServerseitig
Notiz
Wenn Sie das Payment Element rendern möchten, ohne zuvor einen SetupIntent zu erstellen, finden Sie weitere Informationen unter Zahlungsdetails erfassen, bevor Sie einen Intent erstellen.
Ein SetupIntent ist ein Objekt, das Ihre Absicht darstellt, die Zahlungsmethoden Ihrer Kund/innen für zukünftige Zahlungen einzurichten. Die Zahlungsmethoden, die während des Bezahlvorgangs angezeigt werden, sind ebenfalls im SetupIntent enthalten. Sie können Stripe automatisch Zahlungsmethoden aus Ihren Dashboard-Einstellungen abrufen lassen oder sie manuell auflisten.
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/der Kund/in am relevantesten sind, erhalten Priorität. Zahlungsmethoden mit niedrigerer Priorität sind unter einem Überlaufmenü verborgen.
Client-Geheimnis abrufen
Im SetupIntent ist ein Client-Geheimnis enthalten, das auf dem Client verwendet wird, um Zahlungen sicher abzuschließen. Es gibt verschiedene Verfahren zum Übergeben des Client-Geheimnisses an den Client.
Verwendung von Radar
Wenn Sie die Zahlungsmethode Ihrer Kund/innen ohne anfängliche Zahlung speichern, reagiert Radar nicht standardmäßig auf den SetupIntent. Wenn Sie dies als Standard aktivieren möchten, rufen Sie die Radar-Einstellungen auf und aktivieren die Option Radar für zur späteren Verwendung gespeicherte Zahlungsmethoden verwenden.
Zahlungsdaten erfassenClientseitig
Sie können jetzt mit dem Payment Element Zahlungsdetails auf dem Client erfassen. Das Payment Element ist eine vorgefertigte Komponente der Nutzeroberfläche, das die Erfassung von Zahlungsdaten für verschiedene Zahlungsmethoden vereinfacht.
Das Payment Element enthält einen iFrame, der die Zahlungsinformationen sicher über eine HTTPS-Verbindung an Stripe sendet. Die Adresse der Bezahlseite muss mit https://
und nicht mit http://
beginnen, damit Ihre Integration funktioniert. Sie können Ihre Integration ohne testen, müssen dann aber HTTPS manuell aktivieren, wenn Sie bereit sind, Live-Zahlungen zu akzeptieren.
Das Payment Element rendert ein dynamisches Formular, mit dem Kund/innen ihre gewünschte Zahlungsmethode auswählen können. Für jede Zahlungsmethode fordert das Formular die Kund/innen automatisch auf, alle erforderlichen Zahlungsdaten einzugeben.
Erscheinungsbild anpassen
Passen Sie das Payment Element an das Design Ihrer Website an, indem Sie beim Erstellen des Elements
-Anbieters das Erscheinungsbild-Objekt an options
übergeben.
Apple Pay-Händler-Token anfordern
Wenn Sie Zahlungen per Apple Pay akzeptieren, empfehlen wir, die Apple Pay-Nutzeroberfläche so zu konfigurieren, dass ein Händler-Token zurückgegeben wird, um vom Händler initiierte Transaktionen (MIT) zu ermöglichen. Fordern Sie den entsprechenden Händler-Token-Typ an im Payment Element. Das folgende Beispiel zeigt eine Anfrage für den Händler-Token für zurückgestellte Zahlungen.
const paymentElement = elements.create('payment', { applePay: { deferredPaymentRequest: { paymentDescription: 'My deferred payment', managementURL: 'https://example.com/billing', deferredBilling: { amount: 2500, label: 'Deferred Fee', deferredPaymentDate: new Date('2024-01-05') }, } }, // Other options });
Währung konfigurieren
Bei Verwendung von SetupIntents mit automatic_payment_methods beeinflusst die Übergabe der Währung in options
bei der Erstellung des Elements
-Anbieters, welche Zahlungsmethoden durch das Payment Element dargestellt werden. Das Payment Element stellt die im Stripe-Dashboard aktivierten Zahlungsmethoden dar, die die angegebene Währung unterstützen. Weitere Informationen zu den unterstützten Optionen finden Sie unter Optionen für die Integration von Zahlungsmethoden.
Adressen einholen
Standardmäßig erfasst das Payment Element nur die erforderlichen Angaben zur Rechnungsadresse. Verwenden Sie das Address Element, um die vollständige Rechnungsadresse (z. B. zur Berechnung der Steuer für digitale Waren und Dienstleistungen) oder die Versandadresse einer Kundin/eines Kunden zu erfassen.
Übermitteln Sie die Zahlungsdetails an StripeClientseitig
Verwenden Sie stripe.confirmSetup, um die Einrichtung mit durch das Payment Element erfassten Daten abzuschließen. Geben Sie eine return_url an diese Funktion weiter, damit Stripe den/die Nutzer/in nach abgeschlossener Einrichtung weiterleiten kann. Gegebenenfalls leiten wir Kund/innen zunächst an eine Zwischenwebsite weiter, wie etwa eine Bankautorisierungsseite, bevor wir sie an die return_url
weiterleiten.
Wenn Ihr Kunde/Ihre Kundin seine/ihre Kartendaten speichert, leiten wir ihn/sie nach erfolgreicher Einrichtung sofort zur return_url
weiter. Wenn Sie für Kartenzahlungen keine Weiterleitung wünschen, können Sie redirect auf if_required
festlegen. Dadurch werden nur Kund/innen weitergeleitet, die mit umleitungsbasierten Zahlungsmethoden bezahlen.
Die return_url
sollte auf eine Seite Ihrer Website verweisen, die den Status der SetupIntent
angibt. Stripe stellt folgende URL-Abfrageparameter bereit, um den Status zu verifizieren, wenn wir den/die Kund/in an die return_url
weiterleiten. Sie können bei Angabe der return_url
auch Ihre eigenen Abfrageparameter hinzufügen, die auch während des Weiterleitungsprozesses bestehen bleiben.
Parameter | Beschreibung |
---|---|
setup_intent | Die eindeutige ID für die SetupIntent |
setup_intent_client_secret | Das Client-Geheimnis des SetupIntent -Objekts. |
Sie können stripe.retrieveSetupIntent zum Abruf des SetupIntent über den Abfrageparameter setup_intent_client_secret
verwenden. Die erfolgreiche Bestätigung des SetupIntent speichert die resultierende PaymentMethod
-ID (in result.setupIntent.payment_method
) im angegebenen Customer
.
Vorsicht
Wenn Sie über Tools verfügen, die die Browser-Sitzung der Kund/innen verfolgen, müssen Sie möglicherweise die Domain stripe.com
zur Referenz-Ausschlussliste hinzufügen. Weiterleitungen haben zur Folge, dass einige Tools neue Sitzungen erstellen. Dies wiederum hindert Sie daran, die gesamte Sitzung zu verfolgen.
Die gespeicherte Zahlungsmethode später belastenServerseitig
Compliance
Sie sind für die Einhaltung aller geltenden Gesetze, Vorschriften und Netzwerkregeln verantwortlich, wenn Sie die Zahlungsdaten von Kundinnen und Kunden speichern. Wenn Sie Ihren Endkundinnen und Endkunden zuvor genutzte Zahlungsmethoden für zukünftige Einkäufe anzeigen, dürfen Sie nur Zahlungsmethoden auflisten, für die Sie bereits eine kundenseitige Zustimmung eingeholt haben, dank der Sie die Details der Zahlungsmethode für diese spezifische zukünftige Verwendung speichern können. Verwenden Sie den Parameter allow_redisplay, um zwischen Zahlungsmethoden zu unterscheiden, die mit Kundinnen und Kunden verknüpft sind und Ihren Endkundinnen und Endkunden als gespeicherte Zahlungsmethode für zukünftige Einkäufe angezeigt werden können oder nicht.
Wenn Sie eine Kundenzahlung per Off-Session vornehmen möchten, erstellen Sie anhand der Kunden-ID und der PaymentMethod-ID einen PaymentIntent. Um eine geeignete Zahlungsmethode zu finden, listen Sie die mit Ihrer Kundin/Ihrem Kunden verbundenen Zahlungsmethoden auf. Dieses Beispiel führt Karten auf, Sie können aber auch alle anderen unterstützten Zahlungsmethoden verwenden.
Wenn Ihnen die Kunden-ID und die PaymentMethod-ID vorliegen, erstellen Sie eine PaymentIntent mit dem Betrag und der Währung der Zahlung. Legen Sie einige weitere Parameter fest, um die Off-Session-Zahlung durchzuführen:
- Legen Sie off_session auf
true
fest, um anzugeben, dass die Kundin/der Kunde sich während eines Zahlungsversuchs nicht in Ihrem Bezahlvorgang befindet und somit eine Authentifizierungsanfrage eines Partners, wie z. B. eines Kartenausstellers, einer Bank oder eines anderen Zahlungsinstituts nicht erfüllen kann. Wenn ein Partner während Ihres Bezahlvorgangs eine Authentifizierung anfordert, fordert Stripe Ausnahmen unter Verwendung von Kundeninformationen aus einer vorherigen On-Session-Transaktion an. Wenn die Bedingungen für eine Ausnahme nicht erfüllt sind, gibt der PaymentIntent möglicherweise einen Fehler zurück. - Setzen Sie den Wert der Eigenschaft confirm der PaymentIntent auf
true
. Das hat zur Folge, dass die Bestätigung sofort nach Erstellung der PaymentIntent erfolgt. - Setzen Sie payment_method auf die ID der PaymentMethod und Kund/in auf die ID des/der Kund/in.
Schlägt ein Zahlungsversuch fehl, schlägt die Anfrage ebenfalls mit einem 402 HTTP-Statuscode fehl, und der Status des PaymentIntent ist requires_payment_method. Sie müssen Ihre Kundinnen/Kunden auffordern, zu Ihrer Anwendung zurückzukehren (z. B. per E-Mail oder In-App-Benachrichtigung), um die Zahlung abzuschließen.
Überprüfen Sie den Code des von der Stripe-API-Bibliothek ausgelösten Fehlers. Wenn die Zahlung aufgrund eines Ablehnungscodes vom Typ authentication_required fehlgeschlagen ist, verwenden Sie das Client-Geheimnis des abgelehnten PaymentIntent mit confirmPayment, damit die Kundinnen/Kunden die Zahlung authentifizieren können.
const form = document.getElementById('payment-form'); form.addEventListener('submit', async (event) => { event.preventDefault(); const {error} = await stripe.confirmPayment({ // The client secret of the PaymentIntent clientSecret, confirmParams: { return_url: 'https://example.com/order/123/complete', }, }); if (error) { // This point will only be reached if there is an immediate error when // confirming the payment. Show error to your customer (for example, payment // details incomplete) const messageContainer = document.querySelector('#error-message'); messageContainer.textContent = error.message; } else { // Your customer will be redirected to your `return_url`. For some payment // methods like iDEAL, your customer will be redirected to an intermediate // site first to authorize the payment, then redirected to the `return_url`. } });
Notiz
Für die Durchführung von stripe.confirmPayment
werden möglicherweise einige Sekunden benötigt. Während dieser Zeit sollten Sie Ihr Formular deaktivieren, damit keine erneute Absendung erfolgen kann. Zeigen Sie stattdessen ein Wartesymbol an, wie beispielsweise eine Sanduhr. Tritt ein Fehler auf, teilen Sie dies der Kundin/dem Kunden mit, reaktivieren Sie das Formular und blenden Sie das Wartesymbol aus. Falls die Kundin/der Kunde weitere Schritte (z. B. eine Authentifizierung) für den Abschluss der Zahlung durchführen muss, begleitet sie Stripe.js bei diesem Vorgang.
Wenn die Zahlung aus anderen Gründen fehlgeschlagen ist, z. B. wegen unzureichender Deckung, verweisen Sie Ihre Kundinnen/Kunden auf eine Zahlungsseite, um eine neue Zahlungsmethode einzugeben. Versuchen Sie die Zahlung mit den neuen Zahlungsdetails erneut durchzuführen und verwenden Sie hierfür den bestehenden PaymentIntent.
Integration testen
Verwenden Sie Test-Zahlungsdaten und die Test-Weiterleitungsseite um Ihre Integration zu überprüfen. Klicken Sie auf die nachfolgenden Registerkarten, um Details zu jeder Zahlungsmethode anzuzeigen.
Testen Sie das Belasten mit einer gespeicherten SEPA-Lastschrift
Wenn die SetupIntent für die Nutzung mit iDEAL, Bancontact oder Sofort bestätigt ist, wird eine wiederverwendbare SEPA-Lastschrift -PaymentMethod erstellt. SEPA-Lastschrift ist eine Zahlungsmethode mit verzögerter Benachrichtigung, die in den Übergangsstatus processing
wechselt, bevor sie einige Tage später den Status succeeded
oder requires_payment_method
annimmt.
Disclose Stripe to your customers
Stripe collects information on customer interactions with Elements to provide services to you, prevent fraud, and improve its services. This includes using cookies and IP addresses to identify which Elements a customer saw during a single checkout session. You’re responsible for disclosing and obtaining all rights and consents necessary for Stripe to use data in these ways. For more information, visit our privacy center.