Passen Sie das Weiterleitungsverhalten mit einem integrierten Formular an
Wenn Sie eine Checkout-Integration haben, die ein integriertes Formular verwendet, können Sie anpassen, wie und ob Stripe Ihre Kundinnen/Kunden nach Abschluss der Zahlung weiterleitet. Sie können Stripe anweisen, Kundinnen/Kunden immer oder nur für einige Zahlungsmethoden weiterzuleiten oder Weiterleitungen vollständig zu deaktivieren.
Häufiger Fehler
Wenn Sie eine von Stripe gehostete Zahlungsseite integriert haben, können Sie den Parameter return_url
nicht verwenden. Sie müssen success_url
verwenden. Erfahren Sie mehr über das Anpassen einer Erfolgsseite für Integrationen mit einer von Stripe gehosteten Seite.
Um Weiterleitungen einzurichten, geben Sie die Rückgabeseite im return_url
Parameter an.
Optional können Sie auch:
- Kundinnen/Kunden nur weiterleiten, wenn die Zahlungsmethode dies erfordert (zum Beispiel eine Bankautorisierungsseite für eine Lastschriftmethode).
- Keine Rückgabeseite verwenden und auf Weiterleitung basierte Zahlungsmethoden deaktivieren.
Kundinnen/Kunden an eine Rückgabeseite weiterleiten
Wenn Sie die Checkout-Sitzung erstellen, geben Sie die URL der Rückgabeseite im return_url
Parameter an. Fügen Sie die Vorlagenvariable {CHECKOUT_SESSION_ID}
in die URL ein. Wenn Checkout einen Kunden/eine Kundin weiterleitet, wird die Variable durch die tatsächliche Checkout-Sitzungs-ID ersetzt.
Rufen Sie beim Rendern Ihrer Rückgabeseite den Status der Checkout-Sitzung mithilfe der ID der Checkout-Sitzung in der URL ab. Verarbeiten Sie das Ergebnis je nach Sitzungsstatus wie folgt:
complete
: Die Zahlung war erfolgreich. Verwenden Sie die Informationen aus der Checkout-Sitzung, um eine Bestätigungsseite zu rendern.open
: Die Zahlung ist fehlgeschlagen oder wurde storniert. Stellen Sie erneut eine Verbindung zu Checkout her, damit Ihre Kundinnen/Kunden es erneut versuchen können.
app.get('/session_status', async (req, res) => { const session = await stripe.checkout.sessions.retrieve(req.query.session_id); const customer = await stripe.customers.retrieve(session.customer); res.send({ status: session.status, payment_status: session.payment_status, customer_email: customer.email }); });
const session = await fetch(`/session_status?session_id=${session_id}`) if (session.status == 'open') { // Remount embedded Checkout else if (session.status == 'complete') { // Show success page // Optionally use session.payment_status or session.customer_email // to customize the success page }
Auf Weiterleitung basierende Zahlungsmethoden
Während der Zahlung leiten einige Zahlungsmethoden die Kundin/den Kunden auf eine Zwischenseite weiter, zum Beispiel eine Bankautorisierungsseite. Wenn sie diese Seite ausgefüllt haben, leitet Stripe sie zu Ihrer Rückgabeseite weiter.
Weiterleitung nur für auf Weiterleitung basierenden Zahlungsmethoden durchführen
Wenn Sie Kundinnen/Kunden nach Zahlungen, für die keine Weiterleitung erforderlich ist, nicht weiterleiten möchten, legen Sie redirect_on_completion auf if_required
fest. Dadurch werden nur Kundinnen/Kunden weitergeleitet, die mit auf Weiterleitung basierenden Zahlungsmethoden bezahlen.
Bei Kartenzahlungen rendert Checkout einen erfolgreichen Standardstatus, anstatt eine Weiterleitung durchzuführen. Um Ihren eigenen Erfolgsstatus zu verwenden, übergeben Sie einen onComplete-Callback, der die Checkout-Instanz löscht und Ihren benutzerdefinierten Erfolgsstatus rendert.
onComplete
wird aufgerufen, wenn die Checkout-Sitzung erfolgreich abgeschlossen wurde oder wenn das Webhook-Ereignis checkout.session.completed gesendet wurde.
Auf Weiterleitung basierende Zahlungsmethoden deaktivieren
Wenn Sie keine Rückgabeseite erstellen möchten, erstellen Sie Ihre Checkout-Sitzung und legen dabei redirect_on_completion auf never
fest.
Dadurch werden auf Weiterleitung basierende Zahlungsmethoden deaktiviert:
- Wenn Sie dynamische Zahlungsmethoden verwenden, können Sie Zahlungsmethoden weiterhin über das Dashboard verwalten. Die Zahlungsmethoden, für die Weiterleitungen erforderlich sind, können jedoch nicht ausgewählt werden.
- Wenn Sie Zahlungsmethoden manuell mit payment_method_types festlegen, können Sie keine auf Weiterleitung basierenden Zahlungsmethoden angeben.
Wenn Sie redirect_on_completion: never
festlegen, wird die return_url
entfernt. Für diese Sitzungen rendert Checkout einen erfolgreichen Standardstatus, anstatt eine Weiterleitung durchzuführen. Sie können Ihren eigenen Erfolgsstatus verwenden, indem Sie einen onComplete-Callback übergeben, der die Checkout-Instanz löscht und Ihren benutzerdefinierten Erfolgsstatus rendert.
onComplete
wird aufgerufen, wenn die Checkout-Sitzung erfolgreich abgeschlossen wurde oder wenn das Webhook-Ereignis checkout.session.completed gesendet wurde.