Checkout- und Payment Link-Zahlungen ausführen
Erfahren Sie, wie Sie erhaltene Zahlungen mit Checkout und Payment Links ausführen können.
Wenn Sie eine Zahlung erhalten, müssen Sie möglicherweise Maßnahmen ergreifen, um Ihren Kundinnen/Kunden das zur Verfügung zu stellen, wofür sie bezahlt haben. Beispielsweise müssen Sie ihnen möglicherweise Zugang zu einer Dienstleistung gewähren oder ihnen physische Waren zusenden. Dieser Vorgang wird als Ausführung bezeichnet und Sie haben zwei Möglichkeiten, dieses Verfahren mit Checkout und Payment Links abzuwickeln:
- 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.
Notiz
Payment Links nutzt Checkout, daher gelten alle folgenden Informationen sowohl für Payment Links als auch für Checkout, sofern nicht anders angegeben.
Ausführungsfunktion erstellenServerseitig
Erstellen Sie eine Funktion auf Ihrem Server, um Checkout-Zahlungen durchzuführen. Webhooks lösen diese Funktion aus und werden aufgerufen, wenn Kundinnen/Kunden nach Abschluss des Bezahlvorgangs zu Ihrer Website weitergeleitet werden. In diesem Leitfaden wird diese Funktion als fulfill_
bezeichnen. Sie können die Funktion aber beliebig benennen.
Ihre fulfill_
-Funktion muss:
- Korrekte Handhabung von mehrfachen Aufrufen mit der gleichen Checkout-Sitzungs-ID.
- Akzeptieren Sie die ID einer Checkout-Sitzung als Argument.
- Rufen Sie die Checkout-Sitzung von der API ab, wobei die Eigenschaft line_items erweitert ist.
- Überprüfen Sie die Eigenschaft payment_status, um zu ermitteln, ob eine Ausführung erforderlich ist.
- Ausführung der Einzelposten durchführen.
- Ausführungsstatus für die bereitgestellte Checkout-Sitzung aufzeichnen.
Verwenden Sie den folgenden Code als Ausgangspunkt für Ihre fulfill_
-Funktion. Die TODO
-Kommentare geben alle Funktionen an, die Sie implementieren müssen.
Notiz
In den folgenden Codeausschnitten kann der Name der fulfill_
-Funktion je nach gewählter Sprache fulfillCheckout
oder FulfillCheckout
sein, sie stellen aber alle dieselbe Funktion dar.
Notiz
Wenn eine Checkout-Sitzung viele Einzelposten enthält, verwenden Sie die automatische Paginierung mit der API für Checkout-Posten, um sämtliche Posten abzurufen.
Abhängig von den von Ihnen akzeptierten Zahlungsmethoden und Ihren geschäftlichen Anforderungen sollten Sie Ihre fulfill_
-Funktion wie folgt ausführen:
- Stellen Sie Zugang zu Dienstleistungen bereit.
- Lösen Sie den Warenversand aus.
- Speichern Sie eine Kopie der Zahlungsangaben und der Einzelposten in Ihrer eigenen Datenbank.
- Senden Sie dem Kunden/der Kundin einen nutzerdefinierten E-Mail-Beleg, wenn Sie die Zahlungsbelege von Stripe nicht aktiviert haben.
- Gleichen Sie die Posten und die gekauften Mengen ab, wenn Sie Kundinnen/Kunden gestatten, die Mengen in Checkout anzupassen.
- Inventar oder Bestandsaufzeichnungen aktualisieren.
Einen Ereignis-Handlers für Zahlungen erstellenServerseitig
Um die Ausführung auszulösen, erstellen Sie einen Webhook-Ereignis-Handler, um Zahlungsereignisse zu überwachen und Ihre Funktion fulfill_
auszulösen.
Wenn jemand Sie mit Checkout bezahlt, erstellt er/sie das ein Ereignis des Typs checkout.
. Richten Sie auf Ihrem Server einen Endpoint ein, um diese Ereignisse zu akzeptieren, zu verarbeiten und den Empfang zu bestätigen.
Einige Zahlungsmethoden sind nicht sofort verfügbar, zum Beispiel ACH-Lastschriften und andere Banküberweisungen. Die Gelder sind nicht sofort verfügbar, wenn der Bezahlvorgang abgeschlossen ist. Verzögerte Zahlungsmethoden generieren das Ereignis checkout.
, wenn die Zahlung später erfolgreich 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 dieser auf einem Server ausgeführt wird. Im nächsten Abschnitt finden Sie weitere Details.
Möglicherweise möchten Sie auch fehlgeschlagene checkout.
-Ereignisse überwachen und verarbeiten. Sie können beispielsweise eine E-Mail an Ihre Kundinnen/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:
stripe listen --forward-to localhost:4242/webhook Ready! Your webhook signing secret is 'whsec_<REDACTED>' (^C to quit)
Fügen Sie den Webhook-Geheimschlüssel (whsec_
) zu Ihrem Code für die Ereignisbehandlung hinzu, und testen Sie dann die Ausführung, indem Sie den Bezahlvorgang als Kunde/Kundin durchlaufen:
- Klicken Sie auf die Schaltfläche zum Bezahlen, über die Sie zum Bezahlvorgang gelangen, oder rufen Sie Ihren Zahlungslink auf
- Geben Sie die folgenden Testdaten in Checkout ein:
- Geben Sie als Kartennummer
4242 4242 4242 4242
ein - Geben Sie für die Karte ein beliebiges Ablaufdatum in der Zukunft ein
- Geben Sie für die Prüfziffer eine 3-stellige Ziffer ein
- Geben Sie eine beliebige Postleitzahl für die Rechnungsstellung ein (
90210
)
- Geben Sie als Kartennummer
- Klicken Sie auf die Schaltfläche Bezahlen
Ü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 Ereignischeckout.
angezeigt.session. completed - Ihre Serverprotokolle zeigen die erwartete Ausgabe Ihrer
fulfill_
-Funktion.checkout
Einen Webhook-Endpoint erstellen
Nachdem Sie einen lokalen Test durchgeführt haben, richten Sie Ihren Webhook-Handler auf Ihrem Server ein und starten ihn. Als Nächstes erstellen Sie einen Webhook-Endpoint, um die checkout.
-Ereignisse an Ihren Server zu senden, und testen Sie dann den Bezahlvorgang erneut.
Eine Zielseiten-URL konfigurierenEmpfohlen
Konfigurieren Sie Checkout so, dass Ihre Kundinnen/Kunden nach Abschluss des Bezahlvorgangs an eine Seite auf Ihrer Website gesendet werden. Fügen Sie den Platzhalter {CHECKOUT_
in die URL Ihrer Seite ein. Dieser wird durch die ID der Checkout-Sitzung ersetzt, wenn Ihr Kunde/Ihrer Kundin von Checkout weitergeleitet wird.
Gehosteter Bezahlvorgang
Bei Checkout-Sitzungen mit dem standardmäßigen ui_mode hosted
legen Sie die success_
fest.
Notiz
Wenn Sie einen Webhook-Endpoint eingerichtet haben, um checkout.
-Ereignisse zu überwachen, und eine success_
festlegen, wartet Checkout, bis Ihr Server auf die Webhook-Ereigniszustellung reagiert, bevor die Weiterleitung Ihres Kunden/Ihrer Kundin erfolgt. Wenn Sie dieses Verfahren verwenden, stellen Sie sicher, dass Ihr Server so schnell wie möglich auf checkout.
-Ereignisse reagiert.
Checkout mit einem nicht standardmäßigen ui_mode
Bei Checkout-Sitzungen mit ui_mode, die nicht auf hosted
gesetzt sind, legen Sie die return_
fest.
Payment Links
Für Payment Links, die Sie mit der API erstellen, legen Sie die after_completion.redirect.url fest.
Für Payment Links, die Sie im Dashboard erstellen:
- Gehen Sie zur Registerkarte Nach der Zahlung.
- Wählen Sie Sie Bestätigungsseite nicht anzeigen aus.
- Geben Sie die URL Ihrer Zielseite an, die den Platzhalter
{CHECKOUT_
enthält (zum BeispielSESSION_ ID} https://example.
)com/after-checkout?session_ id={CHECKOUT_ SESSION_ ID}
Ausführung auf Ihrer Zielseite auslösenEmpfohlen
Die Überwachung von Webhooks ist erforderlich, um sicherzustellen, dass Sie immer die Ausführung für jede Zahlung auslösen, aber Webhooks können manchmal verzögert werden. 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 von Ihrer Zielseite aus.
Verwenden Sie die ID der Checkout-Sitzung aus der im vorherigen Schritt angegebenen URL, um Folgendes zu tun:
- Wenn Ihr Server eine Anfrage für Ihre Checkout-Zielseite erhält, extrahieren Sie die ID der Checkout-Sitzung aus der URL.
- Führen Sie Ihre
fulfill_
-Funktion` mit der angegebenen ID aus.checkout - 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 darauf verlassen, dass ie Ausführung nur von Ihrer Checkout-Zeilseite aus ausgelöst wird, da Ihre Kundinnen und Kunden diese Seite nicht garantiert besuchen. Zum Beispiel kann jemand erfolgreich in Checkout bezahlen und wird seine/ihre Internetverbindung unterbrochen, bevor Ihre Zielseite geladen wird.
Richten Sie einen Webhook-Ereignis-Handler ein, damit Stripe Zahlungsereignisse direkt an Ihren Server sendet und den Client vollständig umgeht. Webhooks sind der zuverlässigste Weg, um zu wissen, wann Sie bezahlt werden. Wenn die Zustellung des Webhook-Ereignisses fehlschlägt, versuchen wir es mehrmals.