Weiter zum Inhalt
Konto erstellen
oder
anmelden
Das Logo der Stripe-Dokumentation
/
KI fragen
Konto erstellen
Anmelden
Jetzt starten
Zahlungen
Umsatz
Plattformen und Marktplätze
Geldmanagement
Developer resources
Übersicht
Informationen zu Stripe Payments
Aktualisieren Sie Ihre Integration
Zahlungsanalysefunktionen
Online-Zahlungen
ÜbersichtIhren Use case findenZahlungen verwalten
Payment Links verwenden
Bezahlseite erstellen
    Übersicht
    Quickstarts
    Erscheinungsbild anpassen
    Zusätzliche Informationen erfassen
    Steuern einziehen
    Bezahlvorgang dynamisch aktualisieren
    Ihren Produktkatalog verwalten
    Abonnements
    Zahlungsmethoden verwalten
    Lassen Sie Kundinnen/Kunden in ihrer Landeswährung zahlen
    Rabatte, Upselling und optionale Artikel hinzufügen
    Zukünftige Zahlungen einrichten
    Zahlungsdaten bei der Zahlung speichern
    Zahlungen auf Ihrem Server manuell genehmigen
    Nach der Zahlung
      Bestellungen abwickeln
      Belege und bezahlte Rechnungen senden
      Weiterleitungsverhalten anpassen
      Warenkörbe nach Abbrüchen wiederherstellen
      Zahlungskonversion analysieren
    Elements mit Checkout Sessions API-Änderungsprotokoll (Beta)
    Vom bisherigen Bezahlvorgang migrieren
    Bezahlvorgang auf Prices umstellen
Erweiterte Integration erstellen
In-App-Integration erstellen
Zahlungsmethoden
Zahlungsmethoden hinzufügen
Zahlungsmethoden verwalten
Schnellerer Bezahlvorgang mit Link
Zahlungsschnittstellen
Payment Links
Checkout
Web Elements
In-App-Elements
Zahlungsszenarien
Umgang mit mehreren Währungen
Nutzerdefinierte Zahlungsabläufe
Flexibles Acquiring
Orchestrierung
Präsenzzahlungen
Terminal
Beyond payments
Incorporate your company
Krypto
Financial Connections
Climate
StartseiteZahlungenBuild a checkout pageAfter the payment

Bestellungen ausführen

Erfahren Sie, wie Sie mit der Checkout Sessions API erhaltene Zahlungen abwickeln.

Seite kopieren

Wenn Sie eine Zahlung mit der Checkout Sessions API erhalten, müssen Sie möglicherweise Maßnahmen ergreifen, um Ihren Kundinnen/Kunden die Bezahlung zukommen zu lassen. Beispielsweise müssen Sie ihnen möglicherweise Zugriff auf eine Dienstleistung gewähren oder physische Waren versenden. Dieser Vorgang wird als Ausführung bezeichnet, und Sie haben zwei Möglichkeiten, diese zu verarbeiten:

  • Manuell: Sie können Bestellungen anhand der Informationen, die Stripe Ihnen zur Verfügung stellt, manuell ausführen. Sie können beispielsweise das Dashboard überwachen, Zahlungsbenachrichtigungs-E-Mails prüfen oder Berichte einsehen und dann Bestellungen ausführen.
  • Automatisch: Sie können ein automatisches Ausführungssystem entwickeln. Recommended

Die erste Option eignet sich für kleine Mengen oder experimentelle Projekte, aber für die meisten Situationen empfehlen wir die Automatisierung der Ausführung. Im restlichen Teil dieses Leitfadens erfahren Sie, wie Sie ein automatisches Ausführungssystem entwickeln können.

Automatische Ausführung

Das nachfolgend beschriebene automatische Ausführungssystem nutzt eine Kombination aus Webhooks und einer Weiterleitung zu Ihrer Website, um die Ausführung auszulösen. Sie müssen Webhooks verwenden, um sicherzustellen, dass die Ausführung bei jeder Zahlung erfolgt. Die Weiterleitung ermöglicht Ihren Kundinnen/Kunden den Zugriff auf Dienstleistungen oder Ausführungsdetails unmittelbar nach der Zahlung.

Ausführungsfunktion erstellen
Serverseitig

Erstellen Sie eine Funktion auf Ihrem Server, um erfolgreiche Zahlungen auszuführen. Webhooks lösen diese Funktion aus und sie wird aufgerufen, wenn Kundinnen/Kunden nach Abschluss des Bezahlvorgangs auf Ihre Website geleitet werden. In diesem Leitfaden wird diese Funktion als fulfill_checkout bezeichnet, aber Sie können die Funktion beliebig benennen.

Zusätzliche Ausführungen verhindern

Führen Sie die Ausführung nur einmal pro Zahlung durch. Aufgrund der Funktionsweise dieser Integration und des Internets kann es vorkommen, dass Ihre fulfill_checkout-Funktion für dieselbe Checkout-Sitzung mehrmals aufgerufen wird, möglicherweise gleichzeitig. Wenn Sie den Bezahlvorgang nur einmal durchführen, wird sichergestellt, dass dies nicht zu unerwünschtem Verhalten führt.

Ihre fulfill_checkout-Funktion muss:

  1. Korrekte Verarbeitung eines mehrfachen Aufrufs mit derselben Checkout-Sitzungs-ID.
  2. Akzeptieren Sie eine Checkout-Sitzungs-ID als Argument.
  3. Rufen Sie die Checkout-Sitzung von der API mit der line_items-Eigenschaft „erweitert“ ab.
  4. Überprüfen Sie die Eigenschaft payment_status, um festzustellen, ob sie ausgeführt werden muss.
  5. Setzen Sie die Ausführung der Posten um.
  6. Zeichnen Sie den Ausführungsstatus für die angegebene Checkout-Sitzung auf.

Verwenden Sie den folgenden Code als Ausgangspunkt für Ihre fulfill_checkout-Funktion. Die TODO-Kommentare geben alle Funktionen an, die Sie implementieren müssen.

Notiz

Die folgenden Code-Snippets benennen die fulfill_checkout-Funktion möglicherweise mit fulfillCheckout oder FulfillCheckout, je nach ausgewählter Sprache. Sie repräsentieren jedoch alle dieselbe Funktion.

Ruby
def fulfill_checkout(session_id) # Set your secret key. Remember to switch to your live secret key in production. # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
puts "Fullfilling Checkout Session #{session_id}" # TODO: Make this function safe to run multiple times, # even concurrently, with the same session ID # TODO: Make sure fulfillment hasn't already been # performed for this Checkout Session # Retrieve the Checkout Session from the API with line_items expanded checkout_session = Stripe::Checkout::Session.retrieve({ id: session_id, expand: ['line_items'], }) # Check the Checkout Session's payment_status property # to determine if fulfillment should be performed if checkout_session.payment_status != 'unpaid' # TODO: Perform fulfillment of the line items # TODO: Record/save fulfillment status for this # Checkout Session end end

Notiz

Wenn eine Checkout-Sitzung viele Posten enthält, verwenden Sie die automatische Paginierung mit der API für Checkout-Posten, um alle Posten abzurufen.

Je nachdem, welche Zahlungsmethoden Sie akzeptieren und welche Anforderungen Ihr Unternehmen an Sie stellt, sollte Ihre Funktion fulfill_checkout folgende Aufgaben ausführen:

  • Stellen Sie den Zugriff auf Dienstleistungen bereit.
  • Lösen Sie den Versand von Waren aus.
  • Speichern Sie eine Kopie der Zahlungsdetails und Posten in Ihrer eigenen Datenbank.
  • Senden Sie dem Kunden/der Kundin eine individuelle Beleg-E-Mail, wenn Sie Belege von Stripe nicht aktiviert haben.
  • Gleichen Sie Einzelposten und gekaufte Mengen ab, wenn Sie Kundinnen/Kunden gestatten, die Mengen in Checkout anzupassen.
  • Aktualisieren Sie Inventar- oder Bestandsaufzeichnungen.

Einen Ereignis-Handlers für Zahlungen erstellen
Serverseitig

Um die Ausführung auszulösen, erstellen Sie einen Webhook-Ereignis-Handler, der auf Zahlungsereignisse wartet und Ihre fulfill_checkout-Funktion auslöst.

Wenn jemand Sie bezahlt, wird das Ereignis checkout.session.completed erstellt. Richten Sie auf Ihrem Server einen Endpoint ein, um diese Ereignisse zu akzeptieren, zu verarbeiten und den Empfang zu bestätigen.

Zahlungsmethoden mit sofortiger oder verzögerter Zahlung

Einige Zahlungsmethoden werden nicht sofort durchgeführt, z. B. ACH Direct Debit und andere Banküberweisungsmethoden. Das bedeutet, dass die Gelder nicht sofort verfügbar sind, wenn der Bezahlvorgang abgeschlossen wird. Zahlungsmethoden mit Verzögerung generieren ein checkout.session.async_payment_succeeded-Ereignis, wenn die Zahlung später erfolgreich durchgeführt wird. Das Objekt befindet sich so lange in Bearbeitung, bis der Zahlungsstatus entweder „Erfolgreich“ oder „Fehlgeschlagen“ ist.

Notiz

Der im folgenden Code angezeigte Webhook-Geheimschlüssel (whsec_...) stammt entweder von der Stripe-CLI oder von Ihrem Webhook-Endpoint. Sie können die Stripe CLI für lokale Tests verwenden, und Stripe verwendet einen Webhook-Endpoint, um Ereignisse an Ihren Handler zu senden, wenn er auf einem Server ausgeführt wird. Weitere Informationen finden Sie im nächsten Abschnitt.

Ruby
require 'sinatra' # Use the secret provided by Stripe CLI for local testing # or your webhook endpoint's secret. endpoint_secret = 'whsec_...' post '/webhook' do event = nil # Verify webhook signature and extract the event # See https://stripe.com/docs/webhooks#verify-events for more information. begin sig_header = request.env['HTTP_STRIPE_SIGNATURE'] payload = request.body.read event = Stripe::Webhook.construct_event(payload, sig_header, endpoint_secret) rescue JSON::ParserError => e # Invalid payload return status 400 rescue Stripe::SignatureVerificationError => e # Invalid signature return status 400 end if event['type'] == 'checkout.session.completed' || event['type'] == 'checkout.session.async_payment_succeeded' fulfill_checkout(event['data']['object']['id']) end status 200 end

Es empfiehlt sich auch, checkout.session.async_payment_failed-Ereignisse zu überwachen und zu verarbeiten. Sie können beispielsweise eine E-Mail an Ihre Kundinnen und Kunden senden, wenn eine verzögerte Zahlung fehlschlägt.

Ihren Ereignis-Handler lokal testen

Am schnellsten lässt sich Ihr Webhook-Ereignis-Handler mit der Stripe-CLI entwickeln und testen. Wenn Sie die Stripe-CLI nicht haben, befolgen Sie die Installationsanleitung, um zu beginnen.

Wenn die Stripe-CLI installiert ist, können Sie Ihren Ereignis-Handler lokal testen. Führen Sie Ihren Server aus (zum Beispiel auf localhost:4242) und führen Sie dann den Befehl stripe listen aus, damit die Stripe-CLI Ereignisse an Ihren lokalen Server weiterleitet:

Command Line
stripe listen --forward-to localhost:4242/webhook Ready! Your webhook signing secret is 'whsec_<REDACTED>' (^C to quit)

Fügen Sie das Webhook-Geheimnis (whsec_...) zu Ihrem Code für die Verarbeitung von Ereignissen hinzu und testen Sie dann die Ausführung, indem Sie Ihren Bezahlvorgang als Kunde/Kundin durchlaufen.

Überprüfen Sie nach Abschluss der Zahlung Folgendes:

  • In Ihrer Befehlszeile, in der stripe listen ausgeführt wird, wird das an Ihren lokalen Server weitergeleitete Ereignis checkout.session.completed angezeigt.
  • Ihre Serverprotokolle zeigen die erwartete Ausgabe Ihrer fulfill_checkout-Funktion.

Einen Webhook-Endpoint erstellen

Nach dem lokalen Test müssen Sie Ihren Webhook-Ereignis-Handler auf Ihrem Server zum Laufen bringen. Erstellen Sie als Nächstes einen Webhook-Endpoint, um checkout.session.completed-Ereignisse an Ihren Server zu senden. Testen Sie dann den Bezahlvorgang erneut.

Ausführung auf Ihrer Zielseite auslösen
Empfohlen

Das Überwachen von Webhooks ist erforderlich, um sicherzustellen, dass Sie immer für jede Zahlung die Ausführung auslösen; Webhooks können sich jedoch manchmal verzögern. Um Ihren Zahlungsablauf zu optimieren und eine sofortige Ausführung zu gewährleisten, wenn Ihr Kunde/Ihre Kundin anwesend ist, lösen Sie die Ausführung auch auf Ihrer Landingpage aus. Sie können die Landingpage konfigurieren, indem Sie return_url beim Erstellen der Checkout-Sitzung übergeben oder returnUrl an confirm im Frontend übergeben.

Verwenden Sie die Checkout Session-ID aus der von Ihnen angegebenen URL, um Folgendes zu tun:

  1. Wenn Ihr Server eine Anfrage für die Landingpage Ihrer Zahlungsseite erhält, extrahieren Sie die Checkout-Sitzungs-ID aus der URL.
  2. Führen Sie Ihre fulfill_checkout-Funktion` mit der angegebenen ID aus.
  3. Rendern Sie die Seite, nachdem der Auführungversuch abgeschlossen ist.

Wenn Sie Ihre Zielseite rendern, können Sie Folgendes anzeigen:

  • Details des Ausführungsvorgangs.
  • Links oder Informationen zu Dienstleistungen, auf die der Kunde/die Kundin nun Zugriff hat.
  • Versand- oder logistische Details für physische Waren.

Webhooks sind erforderlich

Sie können sich nicht ausschließlich darauf verlassen, dass die Ausführung auf der Landingpage Ihrer Zahlungsseite ausgelöst wird, da nicht garantiert ist, dass Ihre Kundinnen/Kunden diese Seite besuchen. Zum Beispiel kann jemand erfolgreich bezahlen und dann die Internetverbindung verlieren, bevor Ihre Zielseite geladen wird.

Richten Sie einen Webhook-Ereignis-Handler ein, damit Stripe Zahlungsereignisse unter vollständiger Umgehung des Clients direkt an Ihren Server senden kann. Webhooks sind der zuverlässigste Weg, um zu bestätigen, wann Sie bezahlt werden. Wenn die Übermittlung des Webhook-Ereignisses fehlschlägt, versucht Stripe es mehrmals erneut.

War diese Seite hilfreich?
JaNein
Benötigen Sie Hilfe? Kontaktieren Sie den Kundensupport.
Nehmen Sie an unserem Programm für frühzeitigen Zugriff teil.
Schauen Sie sich unser Änderungsprotokoll an.
Fragen? Sales-Team kontaktieren.
LLM? Lesen Sie llms.txt.
Unterstützt von Markdoc