Zahlungen auf dem Server finalisieren
Erstellen Sie eine Integration, bei der Sie das Payment Element rendern, bevor Sie eine PaymentIntent oder SetupIntent erstellen, und bestätigen Sie dann die Intent von Ihrem Server.
Mit dem Payment Element können Sie mehrere Zahlungsmethoden mithilfe einer einzigen Integration akzeptieren. Diese Integration erstellt einen nutzerdefinierten Zahlungsablauf, bei dem Sie das Payment Element rendern, den PaymentIntent erstellen und die Zahlung von Ihrem Server aus bestätigen.
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
Vorsicht
Dieser Integrationspfad unterstützt weder BLIK noch vorab autorisierte Lastschriften, die das Automated Clearing Settlement System (ACSS) verwenden.
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 Kundinnen und Kunden erreichen können. Wir empfehlen jedoch, zusätzliche Zahlungsmethoden zu aktivieren, die für Ihr Unternehmen und Ihre Kundschaft relevant sind. Weitere Informationen zur Unterstützung von Produkten und Zahlungsmethoden finden Sie auf der Seite Unterstützte Zahlungsmethoden und der Preisseite für Gebühren.
Zahlungsdetails erfassenClient-seitig
Sie können nun mit dem Payment Element Zahlungsdetails auf dem Client erfassen. Das Payment Element ist eine vorgefertigte UI-Komponente, 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.
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, dieses zu aktivieren, wenn Sie zur Annahme von Live-Zahlungen bereit sind.
Das Payment Element rendert ein dynamisches Formular, mit dem Ihr/e Kund/in eine Zahlungsmethode auswählen kann. Das Formular erfasst automatisch alle notwendigen Zahlungsdetails für die vom Kunden/von der Kundin ausgewählte Zahlungsmethode.
Sie können das Payment Element an das Design Ihrer Website anpassen, indem Sie beim Erstellen des Elements
-Anbieters das Erscheinungs-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.
OptionalAnpassen des LayoutsClient-seitig
Sie können das Layout des Payment Element (Akkordeon oder Registerkarten) an Ihre Checkout-Nutzeroberfläche anpassen. Weitere Informationen zu den einzelnen Eigenschaften finden Sie unter elements.create.
Das folgende Bild zeigt dasselbe Payment Element, das mit unterschiedlichen Layout-Konfigurationen gerendert wurde.

Layouts für Payment Element
OptionalPassen Sie das Erscheinungsbild anClient-seitig
Nachdem Sie das Payment Element zu Ihrer Seite hinzugefügt haben, können Sie das Erscheinungsbild an Ihr Design anpassen. Weitere Informationen zum Anpassen des Payment Element finden Sie unter Elements Appearance API.

Payment Element anpassen
OptionalZahlungsmethoden von Kundinnen und Kunden speichern und abrufen
Sie können das Payment Element so konfigurieren, dass die Zahlungsmethoden Ihrer Kundinnen und Kunden für die zukünftige Verwendung gespeichert werden. In diesem Abschnitt erfahren Sie, wie Sie die neue Funktion für gespeicherte Zahlungsmethoden integrieren, mit der das Payment Element Folgendes tun kann:
- Käufer/innen um Zustimmung zur Speicherung einer Zahlungsmethode bitten
- Zahlungsmethoden speichern, wenn Käufer/innen zustimmen
- Gespeicherte Zahlungsmethoden für zukünftige Käufe anzeigen
- Aktualisieren Sie verlorene oder abgelaufene Karten automatisch, wenn Käufer/innen sie ersetzen

Zahlungsmethoden speichern.

Verwenden Sie eine zuvor gespeicherte Zahlungsmethode erneut.
Speichern der Zahlungsmethode im Payment Element aktivieren
Erstellen Sie eine CustomerSession auf Ihrem Server, geben die Kunden-ID an und aktiveren die payment_element-Komponente für Ihre Sitzung. Konfigurieren Sie, welche Funktionen der gespeicherten Zahlungsmethode Sie aktivieren möchten. Durch Aktivieren von payment_method_save wird beispielsweise ein Kontrollkästchen angezeigt, über das Kundinnen und Kunden ihre Zahlungsdetails für die zukünftige Nutzung speichern können.
Sie können setup_
für einen PaymentIntent oder eine Checkout-Sitzung angeben, um das Standardverhalten zum Speichern von Zahlungsmethoden außer Kraft zu setzen. Dadurch wird sichergestellt, dass die Zahlungsmethode automatisch für die zukünftige Verwendung gespeichert wird, auch wenn der Kunde/die Kundin sie nicht explizit speichert.
Vorsicht
Wenn Käufer/innen ihre gespeicherten Zahlungsmethoden entfernen dürfen, indem sie payment_method_remove aktivieren, wirkt sich dies auf Abonnements aus, die mit dieser Zahlungsmethode abgerechnet werden. Durch das Entfernen der Zahlungsmethode wird die PaymentMethod von diesem Kunden/dieser Kundin getrennt.
Ihre Elements-Instanz verwendet das Client-Geheimnis der CustomerSession, um auf die gespeicherten Zahlungsmethoden dieses Kunden/dieser Kundin zuzugreifen. Umgang mit Fehlern, wenn Sie die CustomerSession korrekt erstellen. Wenn ein Fehler auftritt, müssen Sie das Client-Geheimnis der CustomerSession nicht für die Elements-Instanz bereitstellen, da dies optional ist.
Erstellen Sie die Elements-Instanz mit dem Client-Geheimnis der CustomerSession. Verwenden Sie dann die Elements-Instanz, um ein Payment Element zu erstellen.
// Create the CustomerSession and obtain its clientSecret const res = await fetch("/create-customer-session", { method: "POST" }); const { customer_session_client_secret: customerSessionClientSecret } = await res.json(); const elementsOptions = { mode: 'payment', amount: 1099, currency: 'usd', customerSessionClientSecret, // Fully customizable with appearance API. appearance: {/*...*/}, }; // Set up Stripe.js and Elements to use in checkout form, passing the client secret // and CustomerSession's client secret obtained in a previous step const elements = stripe.elements(elementsOptions); // Create and mount the Payment Element const paymentElementOptions = { layout: 'accordion'}; const paymentElement = elements.create('payment', paymentElementOptions); paymentElement.mount('#payment-element');
Bei der Erstellung des ConfirmationToken steuert Stripe.js automatisch die Einstellung setup_future_usage für das ConfirmationToken und allow_redisplay für die PaymentMethod, je nachdem, ob die Kundin/der Kunde das Kontrollkästchen aktiviert hat, um die Zahlungsdetails zu speichern.
Erneute Erfassung der CVC erzwingen
Wenn Sie PaymentIntents verwenden, geben Sie optional require_
an, sowohl beim Erstellen des PaymentIntent als auch beim Erstellen von Elements. Dadruch müssen Kundinnen und Kunden ihre Prüfziffer/CVC zwingend erneut eingeben, wenn sie eine Kartenzahlung tätigen.
Auswahl einer gespeicherten Zahlungsmethode erkennen
Um dynamische Inhalte zu steuern, wenn eine gespeicherte Zahlungsmethode ausgewählt wird, überwachen Sie das change
-Ereignis des Payment Element, das automatisch mit der ausgewählten Zahlungsmethode ausgefüllt wird.
paymentElement.on('change', function(event) { if (event.value.payment_method) { // Control dynamic content if a saved payment method is selected } })
OptionalZahlungsdetails dynamisch aktualisierenClient-seitig
Wenn der/die Kund/in Aktionen durchführt, die die Zahlungsdetails ändern (zum Beispiel das Anwenden eines Rabattcodes), aktualisieren Sie die Elements-Instanz, um die neuen Werte widerzuspiegeln. Bei einigen Zahlungsmethoden, wie Apple Pay und Google Pay, wird der Betrag in der Nutzeroberfläche angezeigt. Stellen Sie daher sicher, dass er immer korrekt und aktuell ist.
OptionalOptionen für zusätzliche ElementeClient-seitig
Das Elements-Objekt akzeptiert zusätzliche Optionen, die die Zahlungserfassung beeinflussen. Basierend auf den angegebenen Optionen zeigt das Payment Element die verfügbaren Zahlungsmethoden an, die Sie aktiviert haben. Erfahren Sie mehr über die Unterstützung von Zahlungsmethoden.
Eigentum | Typ | Beschreibung | Erforderlich |
---|---|---|---|
mode |
| Gibt an, ob das Payment Element mit einem PaymentIntent, SetupIntent oder Abonnement verwendet wird. | Ja |
currency | string | Die Währung des Betrags, der dem Kunden/der Kundin berechnet werden soll. | Ja |
amount | number | Der Betrag, der dem Kunden/der Kundin in Rechnung gestellt werden soll, angezeigt in Apple Pay, Google Pay oder BNPL-Nutzeroberflächen. | Für den Modus payment und subscription |
setupFutureUsage |
| Gibt an, dass Sie beabsichtigen, zukünftige Zahlungen mit den vom Payment Element erfassten Zahlungsdaten zu tätigen. | Nein |
captureMethod |
| Steuert, wann die Gelder vom Kundenkonto erfasst werden. | Nein |
onBehalfOf | string | Nur Connect. Die Stripe-Konto-ID, die das Unternehmen des Datensatzes ist. Weitere Informationen dazu, ob diese Option für Ihre Integration relevant ist, finden Sie unter Use cases. | Nein |
paymentMethodTypes | string[] | Eine Liste der zu rendernden Zahlungsmethodentypen. Sie können dieses Attribut weglassen, um Ihre Zahlungsmethoden im Stripe-Dashboard zu verwalten. | Nein |
paymentMethodConfiguration | string | Die Konfiguration der Zahlungsmethode, die bei der Verwaltung Ihrer Zahlungsmethoden im Stripe-Dashboard verwendet werden soll. Wenn keine Angabe gemacht wird, wird Ihre Standardkonfiguration verwendet. | Nein |
paymentMethodCreation | manual | Ermöglicht die Erstellung von PaymentMethods aus der Elements-Instanz mit stripe.createPaymentMethod. | Nein |
paymentMethodOptions | {us_ | Verifizierungsoptionen für die Zahlungsmethode us_ . Akzeptiert dieselben Verifizierungsmethoden wie Payment Intents. | Nein |
paymentMethodOptions | {card: {installments: {enabled: boolean}}} | Ermöglicht die ggf. manuelle Aktivierung der Nutzeroberfläche zur Auswahl des Karten-Ratenzahlungsplans, wenn Sie Ihre Zahlungsmethoden nicht im Stripe-Dashboard verwalten. Sie müssen mode='payment' festlegen und paymentMethodTypes explizit angeben. Andernfalls wird ein Fehler ausgelöst. Nicht kompatibel mit paymentMethodCreation='manual' . | Nein |
ConfirmationToken erstellenClientseitig
createPaymentMethod mit einer Legacy-Implementierung verwenden
Wenn Sie eine Legacy-Implementierung nutzen, verwenden Sie möglicherweise die Informationen von stripe.
, um Zahlungen auf dem Server abzuschließen. Wir empfehlen Ihnen, diesen Leitfaden zu befolgen, um auf Bestätigungstoken umzustellen. Sie können aber auch weiterhin auf unsere alte Dokumentation zugreifen, um Zahlungen auf dem Server abzuschließen.
Wenn der Kunde/die Kundin Ihr Zahlungsformular absendet, rufen Sie stripe.createConfirmationToken auf, um ein ConfirmationToken zu erstellen, das zur zusätzlichen Validierung oder als zusätzliche Geschäftslogik vor der Zahlungsbestätigung an Ihren Server gesendet wird.
Durch Bestätigung des PaymentIntent wird eine PaymentMethod generiert. Sie können die payment_method-ID aus der PaymentIntent- Bestätigungsantwort lesen.
Vorsicht
Sie müssen das erstellte ConfirmationTokensofort verwenden, um einen PaymentIntent zu bestätigen. Wird es nicht verwendet, läuft es nach 12 Stunden ab.
OptionalBenutzerdefinierte Geschäftslogik einfügenServerseitig
Bevor Sie die Zahlung erstellen und bestätigen, können Sie Ihre eigene Geschäftslogik ausführen. Informationen zu den Zahlungsdetails der Kundin/des Kunden finden Sie in dem von Ihnen erstellten ConfirmationToken. Wenn Sie das Stripe SDK verwenden, stellen Sie sicher, dass Ihr SDK über die folgenden aktuellen Versionen aufweist:
stripe-php v13.
15. 0 stripe-go v76.
22. 0 stripe-ruby v10.
13. 0 stripe-java v24.
21. 0 stripe-node v14.
22. 0 stripe-python v8.
8. 0 stripe-dotnet v43.
20. 0
Zahlung erstellen und an Stripe übermittelnServerseitig
Wenn der Kunde/die Kundin sein/ihr Zahlungsformular absendet, verwenden Sie einen PaymentIntent, um die Bestätigung und den Zahlungsvorgang zu vereinfachen. Erstellen Sie einen PaymentIntent auf Ihrem Server, wobei ein amount
und eine currency
angegeben werden. In der neuesten Version der API ist die Angabe des Parameters automatic_
optional, da Stripe die Funktion standardmäßig aktiviert. Sie können Zahlungsmethoden über das Dashboard verwalten. Stripe handhabt die Rückgabe geeigneter Zahlungsmethoden basierend auf Faktoren wie Betrag, Währung und Zahlungsablauf der Transaktion. Um zu verhindern, dass böswillige Kunden/Kundinnen ihre eigenen Preise wählen, sollten Sie den Preis immer auf der Serverseite (einer vertrauenswürdigen Umgebung) festlegen und nicht auf dem Client.
Sie können das von Ihrem Client gesendete ConfirmationToken verwenden, um den PaymentIntent in einer einzigen Anfrage zu erstellen und zu bestätigen.
const stripe = require("stripe")(
); const express = require('express'); const app = express(); app.set('trust proxy', true); app.use(express.json()); app.use(express.static(".")); app.post('/create-confirm-intent', async (req, res) => { try { const intent = await stripe.paymentIntents.create({ confirm: true, amount: 1099, currency: 'usd', // In the latest version of the API, specifying the `automatic_payment_methods` parameter is optional because Stripe enables its functionality by default. automatic_payment_methods: {enabled: true}, confirmation_token: req.body.confirmationTokenId, // the ConfirmationToken ID sent by your client }); res.json({ client_secret: intent.client_secret, status: intent.status }); } catch (err) { res.json({ error: err }) } }); app.listen(3000, () => { console.log('Running on port 3000'); });"sk_test_BQokikJOvBiI2HlWgH4olfQ2"
Nächste Aktionen bearbeitenClientseitig
Wenn der PaymentIntent zusätzliche Aktionen von den Kundinnen/Kunden verlangt, wie z. B. die Authentifizierung mit 3D Secure oder die Weiterleitung an eine andere Website, müssen Sie diese Aktionen auslösen. Mit stripe.
lösen Sie die Nutzeroberfläche für die Bearbeitung von Kundenaktionen und den Abschluss der Zahlung aus.
OptionalEreignisse nach Zahlung verarbeiten
Stripe übermittelt ein payment_intent.succeeded-Ereignis, wenn die Zahlung abgeschlossen ist. Verwenden Sie im Dashboard einen Webhook oder eine Partnerlösung, um diese Ereignisse zu empfangen und Aktionen auszuführen (Versenden einer Bestellbestätigung per E-Mail an die Kund/innen, Erfassen des Verkaufs in einer Datenbank oder Einleiten des Versandablaufs).
Überwachen Sie diese Ereignisse, statt auf einen Callback vom Client zu warten. Auf dem Client könnte der Kunde/die Kundin das Browserfenster schließen oder die App beenden, bevor der Callback erfolgt ist und böswillige Clients könnten die Antwort manipulieren. Wenn Sie Ihre Integration so einrichten, dass asynchrone Ereignisse überwacht werden, hilft Ihnen dies auch dabei, in Zukunft mehr Zahlungsmethoden zu akzeptieren. Hier erhalten Sie Informationen zu den Unterschieden zwischen allen unterstützten Zahlungsmethoden.
Manuelles Bearbeiten von Ereignissen im Dashboard
Verwenden Sie das Dashboard, um Ihre Testzahlungen im Dashboard anzuzeigen, E-Mail-Belege zu senden, Auszahlungen zu bearbeiten oder fehlgeschlagene Zahlungen erneut zu versuchen.
Erstellen eines benutzerdefinierten Webhooks
Erstellen Sie einen benutzerdefinierten Webhook-Handler, um auf Ereignisse zu hören und eigene asynchrone Zahlungsabläufe zu implementieren. Testen und debuggen Sie Ihre Webhook-Integration lokal mit der Stripe CLI.
Integrieren einer vorgefertigten App
Bearbeiten Sie häufige Unternehmensereignisse, wie z. B.Automatisierung oderMarketing und Vertrieb, indem Sie eine Partneranwendung integrieren.