Weiter zum Inhalt
Konto erstellen oder anmelden
Das Logo der Stripe-Dokumentation
/
KI fragen
Konto erstellenAnmelden
Jetzt starten
Zahlungen
Umsatz
Plattformen und Marktplätze
Geldmanagement
Entwicklerressourcen
APIs und SDKsHilfe
Übersicht
Informationen zu Stripe Payments
Aktualisieren Sie Ihre Integration
Zahlungsanalysefunktionen
Online-Zahlungen
ÜbersichtIhren Use case findenVerwenden Sie Managed Payments
Payment Links verwenden
Vorgefertigte Checkout-Seite verwenden
Erstellen Sie eine benutzerdefinierte Integration mit Elements
    Übersicht
    QuickStart-Leitfäden
    Stripe Elements
      Payment Element
        Best Practices für das Payment Element
        Card Element-Vergleich
        Auf das Payment Element mit Payment Intents umstellen
        Auf das Payment Element mit Checkout Sessions umstellen
        Zu Confirmation Token migrieren
      Express Checkout Element
      Address Element
      Currency Selector Element
      Link Authentication Element
      Payment Method Messaging Element
      Steueridentifikationsnummer-Element
      Build an integration with an embeddable payment form
    Vergleichen Sie Checkout-Sitzungen und PaymentIntents
    Erweiterte Integration entwerfen
    Erscheinungsbild anpassen
    Zahlungsmethoden verwalten
    Zusätzliche Informationen erfassen
    Abonnement-Integration erstellen
    Dynamische Aktualisierungen
    Rabatte hinzufügen
    Steuern auf Ihre Zahlungen einziehen
    Gutschriften einlösen
    Lassen Sie Kundinnen/Kunden in ihrer Landeswährung zahlen
    Zahlungsmethoden von Kundinnen und Kunden speichern und abrufen
    Belege und bezahlte Rechnungen senden
    Zahlungen auf Ihrem Server manuell genehmigen
    Eine Zahlung separat autorisieren und einziehen
    Elements mit Checkout Sessions API-Änderungsprotokoll (Beta)
In-App-Integration erstellen
Präsenzzahlungen
Terminal
Zahlungsmethoden
Zahlungsmethoden hinzufügen
Zahlungsmethoden verwalten
Schnellerer Bezahlvorgang mit Link
Zahlungsszenarien
Umgang mit mehreren Währungen
Nutzerdefinierte Zahlungsabläufe
Flexibles Acquiring
Orchestrierung
Mehr als Zahlungen
Unternehmensgründung
Krypto
Agentenbasierter Handel
Financial Connections
Climate
Betrug verstehen
Betrugsprävention von Radar
Zahlungsanfechtungen verwalten
Identitäten verifizieren
Vereinigte Staaten
Deutsch
StartseiteZahlungenBuild a custom integration with ElementsStripe ElementsPayment Element

Migration zu Bestätigungstoken

Schließen Sie Zahlungen auf dem Server mithilfe eines ConfirmationToken anstelle einer PaymentMethod ab.

In diesem Leitfaden erfahren Sie, wie Sie Zahlungen auf dem Server abschließen, indem Sie ein ConfirmationToken anstelle einer PaymentMethod verwenden, um von Ihrem Client erfasste Daten an Ihren Server zu übertragen.

Ein ConfirmationToken enthält eine Obermenge der auf einer PaymentMethod gefundenen Daten, wie zum Beispiel Versandinformationen, und ermöglicht neue Funktionen, während wir diese entwickeln.

Bestätigungstoken erstellen
clientseitig

Rufen Sie anstatt stripe.createPaymentMethod den Parameter stripe.createConfirmationToken auf, um ein ConfirmationToken-Objekt zu erstellen. Übergeben Sie dieses ConfirmationToken an den Server, um den PaymentIntent zu bestätigen.

Die Methode stripe.createConfirmationToken akzeptiert die gleichen Parameter wie stripe.createPaymentMethod (über params.payment_method_data) sowie zusätzliche Parameter für shipping und die return_url.

Vorher
Nachher
checkout.js
// Create the PaymentMethod using the details collected by the Payment Element. const {error, paymentMethod} = await stripe.createPaymentMethod({ elements, params: { billing_details: { name: 'Jenny Rosen', } } }); if (error) { // This point is only reached if there's an immediate error when creating the PaymentMethod. // Show the error to your customer (for example, payment details incomplete) handleError(error); return; } // Create and confirm the PaymentIntent const res = await fetch("/create-confirm-intent", { method: "POST", headers: {"Content-Type": "application/json"}, body: JSON.stringify({ paymentMethodId: paymentMethod.id, }), });
checkout.js
// Create the ConfirmationToken using the details collected by the Payment Element and additional shipping information. Provide shipping and return_url if you don't want to provide it when confirming the intent on the server const {error, confirmationToken} = await stripe.createConfirmationToken({ elements, params: { payment_method_data: { billing_details: { name: 'Jenny Rosen', } }, // Remove shipping if you're collecting it using Address Element or don't require it shipping: { name: 'Jenny Rosen', address: { line1: '1234 Main Street', city: 'San Francisco', state: 'CA', country: 'US', postal_code: '94111', }, }, return_url: 'https://example.com/order/123/complete', } }); if (error) { // This point is only reached if there's an immediate error when creating the ConfirmationToken. // Show the error to your customer (for example, payment details incomplete) handleError(error); return; } // Create and confirm the PaymentIntent const res = await fetch("/create-confirm-intent", { method: "POST", headers: {"Content-Type": "application/json"}, body: JSON.stringify({ confirmationTokenId: confirmationToken.id, }), });

Zahlung erstellen und an Stripe übermitteln
serverseitig

Sie übergeben nun das ConfirmationToken an den Server, um den PaymentIntent zu bestätigen. Dies ersetzt die vorherige Methode, bei der Sie die PaymentMethod übergeben haben. Die im ConfirmationToken gespeicherten Eigenschaften werden auf den Intent angewendet, wenn ihre ID dem Parameter confirmation_token zum Zeitpunkt der Bestätigung zur Verfügung gestellt wird.

Hinweis

Wenn Sie shipping und return_url bereits auf dem ConfirmationToken angeben, müssen Sie diese Felder nicht erneut angeben, wenn Sie den PaymentIntent bestätigen.

Vorher
Nachher
server.js
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}, use_stripe_sdk: true, // the PaymentMethod ID sent by your client payment_method: req.body.paymentMethodId, return_url: 'https://example.com/order/123/complete', mandate_data: { customer_acceptance: { type: "online", online: { ip_address: req.ip, user_agent: req.get("user-agent"), }, }, }, shipping: { name: 'Jenny Rosen', address: { line1: '1234 Main Street', city: 'San Francisco', state: 'CA', country: 'US', postal_code: '94111', }, } }); res.json({ client_secret: intent.client_secret, status: intent.status }); } catch (err) { res.json({ error: err }) } });
server.js
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}, use_stripe_sdk: true, // the ConfirmationToken ID sent by your client that already has the shipping, mandate_data, and return_url data confirmation_token: req.body.confirmationTokenId, }); res.json({ client_secret: intent.client_secret, status: intent.status }); } catch (err) { res.json({ error: err }) } });

Alle Parameter, die zum Zeitpunkt der Bestätigung direkt dem PaymentIntent oder SetupIntent zur Verfügung gestellt werden, wie zum Beispiel shipping überschreiben die entsprechenden Eigenschaften des ConfirmationToken.

OptionalBedingungsparameter setup_future_usage oder capture_method anhand der Zahlungsmethode festlegen

Mit einem ConfirmationToken haben wir zusätzliche Validierungen hinzugefügt. So stellen wir sicher, dass Ihre Client-Einstellungen mit Ihren Servereinstellungen übereinstimmen. Dies kann zu Konflikten mit Ihrer Integration führen, wenn Sie setup_future_usage oder capture_method als Bedingung für den PaymentIntent oder SetupIntent basierend auf der von Endkäuferinnen/Endkäufern gewählten Zahlungsmethode festlegen. Wenn Sie auf dieses Problem stoßen, gehen Sie bei Ihrer Integration folgendermaßen vor:

  1. Stellen Sie setup_future_usage oder capture_method beim Instanziieren von Elements nicht ein.
  2. Legen Sie setup_future_usage oder capture_method nicht für den übergeordneten Parameter des Intent fest (z. B. paymentIntent.create({ setup_future_usage = ‘off_session’})).
  3. Legen Sie die Parameter setup_future_usage oder capture_method für jede der Zahlungsmethoden innerhalb des payment_method_options-Parameters des Intent fest. Beispiel:
server.js
stripe.paymentIntents.create({ amount: 100, currency: 'USD', payment_method_options: { card: { setup_future_usage: 'off_session', capture_method: 'manual' }, ideal: { setup_future_usage: 'off_session' } } });

Siehe auch

  • Integration entwerfen
War diese Seite hilfreich?
JaNein
  • Benötigen Sie Hilfe? Kontaktieren Sie den Kundensupport.
  • Schauen Sie sich unser Änderungsprotokoll an.
  • Fragen? Sales-Team kontaktieren.
  • LLM? Lesen Sie llms.txt.
  • Unterstützt von Markdoc