Zahlungsdaten im Zahlungsverlauf speichern
Verwenden Sie die Payment Intents API, um Zahlungsdetails aus einem Einkauf zu speichern. Es gibt mehrere Anwendungsszenarien:
- Belasten Sie das Konto eines Kunden/einer Kundin für eine E-Commerce-Bestellung und speichern Sie die Details für zukünftige Einkäufe.
- Leiten Sie die erste Zahlung einer Reihe wiederkehrender Zahlungen ein.
- Buchen Sie eine Anzahlung ab und speichern Sie die Details, um den vollen Betrag später abzubuchen.
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.
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:
Kundin/Kunde erstellenServerseitig
Um eine Karte für zukünftige Zahlungen einzurichten, müssen Sie sie einem/einer Kund/in hinzufügen. Erstellen Sie ein Customer-Objekt, wenn Ihr/e Kund/in ein Konto bei Ihrem Unternehmen erstellt. Customer-Objekte ermöglichen die Wiederverwendung von Zahlungsmethoden und die Nachverfolgung über mehrere Zahlungen hinweg.
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 PaymentIntent 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.
PaymentIntent erstellenServerseitig
Notiz
Wenn Sie das Payment Element vor dem Erstellen eines PaymentIntent rendern möchten, finden Sie weitere Informationen unter Erfassen von Zahlungsdetails vor dem Erstellen eines Intent.
Das PaymentIntent-Objekt stellt Ihre Absicht dar, Zahlungen abzuwickeln und Abbuchungsversuche und Zahlungsstatusänderungen im gesamten Zahlungsvorgang zu dokumentieren.
PaymentIntent erstellen
Erstellen Sie einen PaymentIntent auf Ihrem Server mit einem Betrag und einer Währung. In der neuesten Version der API ist die Angabe des Parameters automatic_payment_methods
optional, da Stripe die Funktionalität standardmäßig aktiviert. Sie können Zahlungsmethoden über das Dashboard verwalten. Stripe handhabt die Rückgabe der in Frage kommenden Zahlungsmethoden anhand von Faktoren wie Transaktionsbetrag, Währung und Zahlungsablauf aus.
Erstellen Sie einen PaymentIntent auf Ihrem Server. Geben Sie einen Betrag, eine Währung, und einen Kunden/eine Kundin an. In der neuesten Version der API ist die Angabe des Parameters automatic_payment_methods
optional, da Stripe seine Funktionalität standardmäßig aktiviert. Aktivieren Sie setup_future_usage. Die Zahlungsmethoden, die Sie im Dashboard konfiguriert haben, werden automatisch dem Payment Intent hinzugefügt.
Wenn Sie das Dashboard nicht nutzen oder die Zahlungsmethoden manuell angeben möchten, können Sie diese mit dem Attribut payment_method_types
auflisten.
Notiz
Legen Sie den zu zahlenden Betrag immer serverseitig fest, also in einer vertrauenswürdigen Umgebung, und nicht auf Client-Seite. So wird verhindert, dass böswillige Kund/innen ihre eigenen Preise festlegen können.
Client-Geheimnis abrufen
Im PaymentIntent 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.
Zahlungsdaten erfassenClientseitig
Erfassen Sie Zahlungsdetails auf dem Client mit dem Payment Element. Das Payment Element ist eine vorgefertigte Komponente der Nutzeroberfläche, die die Erfassung von Zahlungsdaten für eine Vielzahl von Zahlungsmethoden vereinfacht.
Das Payment Element enthält einen iFrame, der Zahlungsinformationen über eine HTTPS-Verbindung sicher an Stripe sendet. Vermeiden Sie es, das Payment Element in einem anderen iFrame zu platzieren, da einige Zahlungsmethoden die Weiterleitung an eine andere Seite zur Zahlungsbestätigung verlangen.
If you do choose to use an iframe and want to accept Apple Pay or Google Pay, the iframe must have the allow attribute set to equal "payment *"
.
Die Adresse der Bezahlseite muss mit https://
beginnen, nicht mit http://
, damit Ihre Integration funktioniert. Sie können Ihre Integration ohne HTTPS testen. Denken Sie jedoch daran, sie zu 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.
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.
Apple Pay-Händler-Token anfordern
Wenn Sie Ihre Integration für die Annahme von Zahlungen per Apple Pay konfiguriert haben, empfehlen wir die Konfiguration der Apple Pay-Schnittstelle um ein Händler-Token zurückzugeben, um von Händlern initiierte Transaktionen (MIT) zu ermöglichen. Fordern Sie den entsprechenden Händler-Token-Typ im Payment Element an.
Zahlung an Stripe sendenClientseitig
Verwenden Sie stripe.confirmPayment, um die Zahlung mit Details aus dem Payment Element vorzunehmen. Geben Sie für diese Funktion eine return_url an, um anzugeben, wohin Stripe die Nutzer/innen nach Durchführung der Zahlung weiterleiten soll. Ihre Nutzer/innen werden möglicherweise zunächst an eine zwischengeschaltete Seite weitergeleitet, wie z. B. eine Bankautorisierungsseite, bevor sie zur return_url
weitergeleitet werden. Kartenzahlungen werden sofort zur return_url
weitergeleitet, wenn eine Zahlung erfolgreich war.
Wenn Sie bei Kartenzahlungen nach Abschluss der Zahlung keine Weiterleitung wünschen, können Sie die Weiterleitung auf if_required
festlegen. Dadurch werden nur Kund/innen weitergeleitet, die mit auf Weiterleitung basierenden Zahlungsmethoden bezahlen.
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 dem Kunden/der Kundin mit, reaktivieren Sie das Formular und blenden Sie das Wartesymbol aus. Falls der Kunde/die Kundin weitere Schritte (z. B. eine Authentifizierung) für den Abschluss der Zahlung durchführen muss, begleitet sie Stripe.js bei diesem Vorgang.
Wurde die Zahlung erfolgreich abgeschlossen, wird die Karte, die für die Zahlung verwendet wurde, auf dem Customer-Objekt gespeichert. Dies wird über das Feld Kunde der PaymentMethod angezeigt. Verknüpfen Sie anschließend die ID des Kundenobjekts mit Ihrer eigenen Instanz des Kunden, falls eine vorliegt. Ab jetzt können Sie das gespeicherte PaymentMethod-Objekt nutzen, um zukünftig Zahlungen von Ihren Kund/innen zu erfassen, ohne sie erneut nach den Zahlungsdaten zu fragen.
Achten Sie darauf, dass die return_url
auf eine Seite Ihrer Website verweist, die den Status der Zahlung angibt. Wenn Stripe den/die Kund/in an die return_url
weiterleitet, stellen wir die folgenden URL-Abfrageparameter bereit:
Parameter | Beschreibung |
---|---|
payment_intent | Die eindeutige ID für die PaymentIntent . |
payment_intent_client_secret | Das Client-Geheimnis des PaymentIntent -Objekts. |
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. Umleitungen führen dazu, dass einige Tools neue Sitzungen erstellen. Dies wiederum hindert Sie daran, die gesamte Sitzung zu verfolgen.
Verwenden Sie einen der Abfrageparameter, um den PaymentIntent abzurufen. Überprüfen Sie den Status des PaymentIntent, um zu entscheiden, was Ihren Kundinnen und Kunden angezeigt werden soll. Sie können bei der Angabe der return_url
auch Ihre eigenen Abfrageparameter anhängen, die während der Weiterleitung erhalten bleiben.
Gespeicherte Zahlungsmethode später belastenServerseitig
Achtung
Die Zahlungsmethoden bancontact
, ideal
und sofort
sind standardmäßig für die einmalige Nutzung gedacht. Wenn sie für die zukünftige Verwendung eingerichtet werden, wird eine wiederverwendbare Art der Zahlungsmethode sepa_debit
erzeugt. Sie müssen dann sepa_debit
verwenden, um gespeicherte Zahlungsmethoden abzufragen.
Compliance
You’re responsible for your compliance with all applicable laws, regulations, and network rules when saving a customer’s payment details. When rendering past payment methods to your end customer for future purchases, make sure you’re listing payment methods where you’ve collected consent from the customer to save the payment method details for this specific future use. To differentiate between payment methods attached to customers that can and can’t be presented to your end customer as a saved payment method for future purchases, use the allow_redisplay parameter.
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.
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 PaymentIntent 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.