Zahlung annehmen
Nehmen Sie Zahlungen sicher online an.
Erstellen Sie ein Zahlungsformular oder verwenden Sie eine vorgefertigte Bezahlseite, um mit der Annahme von Online-Zahlungen zu beginnen.
Führen Sie mithilfe von Stripe Checkout eine Weiterleitung an eine von Stripe gehostete Zahlungsseite durch. Sehen Sie sich diese Integration im Vergleich zu anderen Integrationstypen von Stripe an.
Integrationsaufwand
Integration
Auf eine von Stripe gehostete Zahlungsseite umleiten
Anpassung der Nutzeroberfläche
Registrieren Sie sich zunächst für ein Stripe-Konto.
Verwenden Sie unsere offiziellen Bibliotheken, um von Ihrer Anwendung aus auf die Stripe API zuzugreifen:
Ihre Kund/innen zu Stripe Checkout weiterleitenClientseitigServerseitig
Fügen Sie Ihrer Website eine Schaltfläche zum Bezahlen hinzu, über die ein serverseitiger Endpoint aufgerufen wird, um eine Checkout-Sitzung zu erstellen.
Sie können auch eine Checkout-Sitzung für einen bestehenden Kunden/eine bestehende Kundin erstellen. Dadurch können Sie Checkout-Felder mit bekannten Kontaktinformationen vorab ausfüllen und Ihre Kaufhistorie für diesen Kunden/diese Kundin vereinheitlichen.
<html> <head> <title>Buy cool new product</title> </head> <body> <!-- Use action="/create-checkout-session.php" if your server is PHP based. --> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>
Eine Checkout-Sitzung ist eine programmgesteuerte Darstellung dessen, was Ihren Kundinnen und Kunden bei der Weiterleitung zum Zahlungsformular angezeigt wird. Es gibt folgende Konfigurationsoptionen:
- Posten für die Zahlungsabwicklung
- Zu verwendende Währungen
Sie müssen die success_
mit der URL einer Seite auf Ihrer Website ausfüllen, an die Checkout Ihre Kundinnen und Kunden nach Durchführung der Zahlung zurückleitet. Sie können optional auch eine cancel_
angeben, eine Seite auf Ihrer Website, an die Checkout Ihre Kundinnen und Kunden zurückleitet, wenn sie den Zahlungsvorgang vor Zahlungsabschluss abbrechen.
Notiz
Checkout-Sitzungen laufen standardmäßig 24 Stunden nach Erstellung ab.
Leiten Sie Ihre Kundinnen und Kunden nach dem Erstellen einer Checkout-Sitzung zu der in der Antwort zurückgegebenen URL weiter.
Zahlungsmethoden
Standardmäßig aktiviert Stripe Karten und andere gängige Zahlungsmethoden. Sie können einzelne Zahlungsmethoden im Stripe Dashboard aktivieren oder deaktivieren. In Checkout wertet Stripe die Währung und etwaige Einschränkungen aus und zeigt den Kundinnen/Kunden dann dynamisch die unterstützten Zahlungsmethoden an.
Um zu sehen, wie Ihre Zahlungsmethoden Kundinnen und Kunden angezeigt werden, geben Sie eine Transaktions-ID ein oder legen Sie einen Bestellbetrag und eine Währung im Dashboard fest.
Sie können Apple Pay und Google Pay in Ihren Einstellungen für Zahlungsmethoden aktivieren. Standardmäßig ist Apple Pay aktiviert und Google Pay deaktiviert. In einigen Fällen filtert Stripe die Optionen jedoch heraus, auch wenn sie aktiviert sind. Wir filtern Google Pay, wenn Sie automatische Steuern aktivieren, ohne eine Versandadresse zu erfassen.
Die von Stripe gehosteten Checkout-Seiten benötigen keine Integrationsänderungen, um Apple Pay oder Google Pay zu aktivieren. Stripe verarbeitet diese Zahlungen genauso wie andere Kartenzahlungen.
Ihren Endpoint bestätigen
Bestätigen Sie, dass auf Ihren Endpoint zugegriffen werden kann, indem Sie Ihren Webserver starten (beispielsweise localhost:4242
) und den folgenden Befehl ausführen:
curl -X POST -is "http://localhost:4242/create-checkout-session" -d ""
In Ihrem Terminal sollten Sie folgende Antwort sehen:
HTTP/1.1 303 See Other Location: https://checkout.stripe.com/c/pay/cs_test_... ...
Testen
Sie sollten jetzt eine funktionierende Schaltfläche zum Bezahlen haben, über die Ihre Kundinnen und Kunden zu Stripe Checkout weitergeleitet werden.
- Klicken Sie auf die Schaltfläche zum Bezahlen.
- Sie werden zum Zahlungsformular von Stripe Checkout weitergeleitet.
Wenn Ihre Integration nicht funktioniert:
- Öffnen Sie in den Entwickler-Tools Ihres Browsers die Registerkarte „Netzwerk“.
- Klicken Sie auf die Schaltfläche zum Bezahlen und bestätigen Sie, dass eine XHR-Anfrage an Ihren serverseitigen Endpoint gesendet wurde (
POST /create-checkout-session
). - Prüfen Sie, ob die Anfrage den Status 200 zurückgibt.
- Verwenden Sie in Ihrem Button-Click-Listener
console.
, um zu prüfen, ob die richtigen Daten zurückgegeben werden.log(session)
Eine Bestätigungsseite anzeigenClientseitigServerseitig
Es ist wichtig, dass Ihre Kund/innen nach erfolgreicher Übermittlung des Zahlungsformulars eine Bestätigungsseite angezeigt bekommen. Diese Bestätigungsseite wird auf Ihrer Website gehostet.
So erstellen Sie eine einfache Bestätigungsseite:
<html> <head><title>Thanks for your order!</title></head> <body> <h1>Thanks for your order!</h1> <p> We appreciate your business! If you have any questions, please email <a href="mailto:orders@example.com">orders@example.com</a>. </p> </body> </html>
Aktualisieren Sie als Nächstes den Endpoint zur Erstellung der Checkout-Sitzung, um diese neue Seite zu verwenden:
Notiz
Beachten Sie den Leitfaden für nutzerdefinierte Bestätigungsseiten, wenn Sie Ihre Bestätigungsseite anpassen möchten.
Testen
- Klicken Sie auf Ihre Checkout-Schaltfläche.
- Geben Sie die Zahlungsdetails mit den Testkartendaten 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 als Prüfziffer/CVC eine 3-stellige Zahl ein.
- Geben Sie eine beliebige Postleitzahl ein.
- Geben Sie als Kartennummer
- Klicken Sie auf Bezahlen.
- Sie werden an Ihre neue Bestätigungsseite weitergeleitet.
Suchen Sie anschließend die neue Zahlung im Stripe-Dashboard. Erfolgreiche Zahlungen werden im Dashboard in der Zahlungsliste angezeigt. Wenn Sie auf eine Zahlung klicken, werden Sie zur Seite mit den Zahlungsdetails weitergeleitet. Der Abschnitt Checkout-Übersicht umfasst Rechnungsinformationen und die Liste der gekauften Artikel, die Sie zur manuellen Abwicklung der Bestellung verwenden können.
Ereignisse nach Zahlung verarbeiten
Stripe sendet das Ereignis checkout.session.completed, wenn ein Kunde/eine Kundin eine Zahlung in der Checkout-Sitzung abschließt. Verwenden Sie das Webhook-Tool des Dashboards oder befolgen Sie die Webhook-Anleitung, um diese Ereignisse zu empfangen und zu verarbeiten. Dies kann zu Folgendem führen:
- Senden Sie eine Bestellbestätigung per E-Mail an Ihre Kundinnen/Kunden.
- Protokollieren Sie den Verkauf in einer Datenbank.
- Starten Sie einen Versand-Workflow.
Überwachen Sie diese Ereignisse, anstatt darauf zu warten, dass Ihre Kundinnen/Kunden auf Ihre Website zurückgeleitet werden. Es ist unzuverlässig, die Ausführung nur über die Landingpage Ihrer Zahlungsseite auszulösen. Wenn Sie Ihre Integration so einrichten, dass sie asynchrone Ereignisse überwacht, können Sie verschiedene Arten von Zahlungsmethoden mit einer einzelnen Integration akzeptieren.
Weitere Informationen finden Sie in unserem Fulfillment-Leitfaden für Checkout.
Verarbeiten Sie die folgenden Ereignisse, wenn Sie Zahlungen mit Checkout einziehen:
Ereignis | Beschreibung | Aktion |
---|---|---|
checkout.session.completed | Wird gesendet, wenn ein Kunde/eine Kundin eine Checkout-Sitzung erfolgreich abschließt. | Senden Sie den Kundinnen/Kunden eine Auftragsbestätigung und wickeln Sie die Bestellung ab. |
checkout.session.async_payment_succeeded | Wird gesendet, wenn eine Zahlung mit einer Zahlungsmethode mit Verzögerung, wie z. B. ACH-Lastschriftverfahren, erfolgreich ausgeführt wird. | Senden Sie den Kundinnen/Kunden eine Auftragsbestätigung und wickeln Sie die Bestellung ab. |
checkout.session.async_payment_failed | Wird gesendet, wenn eine Zahlung mit einer Zahlungsmethode mit Verzögerung, wie z. B. ACH-Lastschriftverfahren, fehlschlägt. | Benachrichtigen Sie die Kundin/den Kunden über den Fehler und bitten Sie ihn/sie, für einen erneuten Zahlungsversuch zur Sitzung zurückzukehren. |
Integration testen
So testen Sie die Integration Ihres von Stripe gehosteten Zahlungsformulars:
- Erstellen Sie eine Checkout-Sitzung.
- Geben Sie die Zahlungsdetails mit einer Methode aus der folgenden Tabelle ein.
- Geben Sie für die Karte ein beliebiges Ablaufdatum in der Zukunft ein.
- Geben Sie als Prüfziffer/CVC eine 3-stellige Zahl ein.
- Geben Sie eine beliebige Postleitzahl ein.
- Klicken Sie auf Bezahlen. Sie werden an Ihre
success_
weitergeleitet.url - Gehen Sie zum Dashboard und suchen Sie auf der Seite Transaktionen nach der Zahlung. Wenn Ihre Zahlung erfolgreich war, wird sie in dieser Liste angezeigt.
- Klicken Sie auf Ihre Zahlung, um weitere Details anzuzeigen, wie beispielsweise eine Checkout-Zusammenfassung mit Rechnungsinformationen und die Liste der gekauften Artikel. Sie können diese Informationen zur Abwicklung der Bestellung verwenden.
Erfahren Sie mehr über das Testen Ihrer Integration.
Hier finden Sie weitere Informationen zum Testen Ihrer Integration.
Testkarten
Nummer | Beschreibung |
---|---|
Die Zahlung ist erfolgreich und wird sofort verarbeitet. | |
Für eine erfolgreiche Zahlung muss die 3D Secure 2-Authentifizierung durchgeführt werden. | |
Zahlung schlägt immer mit dem Ablehnungscode insufficient_ fehl. |
OptionalProdukte und Preise erstellen
Bevor Sie eine Checkout-Sitzung erstellen, können Sie im Voraus Produkte und Preise erstellen. Verwenden Sie Produkte, um verschiedene physische Waren oder Dienstleistungsebenen darzustellen, und Preise, um die Preise jedes Produkts darzustellen.
Sie können zum Beispiel ein T-Shirt als Produkt mit einem Preis von 20 USD erstellen. Auf diese Weise können Sie Preise aktualisieren und hinzufügen, ohne die Details der zugrunde liegenden Produkte ändern zu müssen. Sie können Produkte und Preise entweder mit dem Stripe-Dashboard oder über die API erstellen. Erfahren Sie mehr darüber, wie Produkte und Preise funktionieren.
Jeder von Ihnen erstellte Preis hat eine ID. Wenn Sie eine Checkout-Sitzung erstellen, verweisen Sie auf die Preis-ID und die Menge. Wenn Sie in mehreren Währungen Verkäufe tätigen, legen Sie Ihren Preis in mehreren Währungen fest. Checkout erkennt die lokale Währung des/der Kund/in automatisch und gibt diese Währung an, wenn der Preis diese unterstützt.
OptionalKundendaten vorab angebenServerseitig
Wenn Sie die E-Mail-Adresse Ihrer Kundin/Ihres Kunden bereits erfasst haben und sie in einer Checkout-Sitzung vorab angeben möchten, übergeben Sie customer_email beim Erstellen der Checkout-Sitzung.
OptionalAngaben zur Zahlungsmethode speichernServerseitig
Standardmäßig sind Zahlungsmethoden, die für einmalige Zahlungen mit Checkout verwendet werden, nicht für die zukünftige Verwendung verfügbar.
Zahlungsmethoden speichern, um sie Off-Session zu belasten
Sie können Checkout die für eine einmalige Zahlung verwendeten Zahlungsmethoden speichern lassen, indem Sie das Argument payment_intent_data.setup_future_usage übergeben. Das ist hilfreich, wenn Sie eine hinterlegte Zahlungsmethode für künftige Gebühren, wie Stornogebühren oder Gebühren bei Nichterscheinen, erfassen müssen.
Wenn Sie Checkout im subscription
-Modus verwenden, speichert Stripe die Zahlungsmethode automatisch, um sie für nachfolgende Zahlungen zu belasten. Kartenzahlungsmethoden, die für Kundinnen und Kunden entweder im setup_
- oder im subscription
-Modus gespeichert wurden, werden für Rücksendungen nicht in Checkout angezeigt (mehr dazu unten). Wir empfehlen, nutzerdefinierten Text zu verwenden, um auf alle relevanten Bedingungen in Bezug auf die Nutzung gespeicherter Zahlungsinformationen zu verweisen.
Vorsicht
Die weltweiten Datenschutzgesetze sind komplex und vielschichtig. Wir empfehlen Ihnen, sich vor der Implementierung von setup_future_usage mit Ihrem Rechts- und Datenschutzteam in Verbindung zu setzen, da dies Ihr bestehendes Compliance-Framework für den Datenschutz beeinträchtigen könnte. Weitere Informationen zum Speichern von Zahlungsdaten finden Sie in den Leitlinien des Europäischen Datenschutzausschusses.
Zahlungsmethoden speichern, um sie in Checkout vorab auszufüllen
Standardmäßig verwendet CheckoutLink um Ihren Kunden die Möglichkeit zu geben, ihre Zahlungsinformationen sicher zu speichern und wiederzuverwenden. Wenn Sie es vorziehen, die Zahlungsmethoden selbst zu verwalten, verwenden Siesaved_payment_method_options.payment_method_save wenn Sie eine Checkout Session erstellen, damit Ihre Kunden ihre Zahlungsmethoden für zukünftige Einkäufe in Checkout speichern können.
Wenn Sie diesen Parameter entweder im Zahlungs- oder im Abonnement-Modus übergeben, wird ein optionales Kontrollkästchen angezeigt, mit dem Kundinnen/Kunden ihre Zahlungsmethode für zukünftige Käufe explizit speichern können. Wenn Kundinnen/Kunden dieses Kontrollkästchen aktivieren, speichert Checkout die Zahlungsmethode mit allow_redisplay: always. Checkout verwendet diesen Parameter, um zu ermitteln, ob eine Zahlungsmethode für zukünftige Käufe vorausgefüllt werden kann. Wenn Sie saved_
verwenden, müssen Sie setup_
nicht übergeben, um die Zahlungsmethode zu speichern.
Für die Verwendung von saved_payment_method_options.payment_method_save ist ein Customer
erforderlich. Um einen neuen Kunden/eine neue Kundin zu speichern, legen Sie die customer_creation der Checkout-Sitzung auf always
fest. Andernfalls wird in der Sitzung weder der Kunde/die Kundin noch die Zahlungsmethode gespeichert.
Wenn payment_
nicht übergeben wird oder wenn der Kunde/die Kundin nicht zustimmt, die Zahlungsmethode zu speichern, speichert Checkout weiterhin Zahlungsmethoden, die im Modus subscription
oder mit setup_
erstellt wurden. Diese Zahlungsmethoden haben den allow_
-Wert limited
, der verhindert, dass sie für wiederkehrende Käufe vorausgefüllt werden, und es Ihnen ermöglicht, die Regeln des Kartennetzwerks und die Datenschutzbestimmungen einzuhalten. Erfahren Sie, wie Sie das durch diese Modi aktivierte Standardverhalten ändern und wie Sie das allow_
-Verhalten ändern oder außer Kraft setzen können.
Notiz
Sie können Checkout verwenden, um Karten und andere Zahlungsmethoden zu speichern, um sie Off-Session zu belasten, aber Checkout füllt nur gespeicherte Karten vorab aus. So können Sie gespeicherte Karten vorab ausfüllen. Um eine Zahlungsmethode ohne anfängliche Zahlung zu speichern, verwenden Sie Checkout im Einrichtungsmodus.
Lassen Sie Kundinnen und Kunden gespeicherte Zahlungsmethoden entfernen
Damit Ihre Kundinnen und Kunden eine gespeicherte Zahlungsmethode entfernen können, damit sie für zukünftige Zahlungen nicht wieder angezeigt wird, verwenden Sie beim Erstellen einer Checkout-Sitzung saved_payment_method_options.payment_method_remove.
Der Kunde/Die Kundin kann eine Zahlungsmethode nicht entfernen, wenn sie an ein aktives Abonnement gebunden ist und der Kunde/die Kundin keine Standardzahlungsmethode für Rechnungs- und Abonnementzahlungen gespeichert hat.
OptionalGetrennte Autorisierung und ErfassungServerseitig
Stripe unterstützt Kartenzahlungen in zwei Schritten. Sie können also Karten autorisieren und die Gelder erst später erfassen. Wenn Stripe eine Zahlung autorisiert, garantiert der Kartenaussteller die Gelder und stellt den Zahlungsbetrag auf der Kundenkarte zurück. Sie müssen die Gelder dann in einem bestimmten Zeitraum erfassen – wie lange Sie Zeit haben, hängt von der Karte ab). Wenn Sie die Zahlung nicht vor Ablauf der Autorisierung erfassen, wird die Zahlung storniert und der Kartenaussteller gibt die zurückgestellten Gelder wieder frei.
Die zeitliche Trennung von Autorisierung und Erfassung ist hilfreich, wenn Sie zwischen dem Bestätigen der Zahlungsfähigkeit einer Kundin/eines Kunden und dem Einziehen der Zahlung zusätzliche Schritte ausführen möchten. Wenn Sie beispielsweise Artikel mit begrenztem Bestand verkaufen, müssen Sie gegebenenfalls überprüfen, ob der bestellte Artikel überhaupt verfügbar ist, bevor Sie die Zahlung erfassen und den Kauf abwickeln. Nutzen Sie dafür den folgenden Ablauf:
- Überprüfen Sie, ob Stripe die Zahlungsmethode der Kundin/des Kunden autorisiert hat.
- Kontrollieren Sie in Ihrem Bestandsverwaltungssystem, ob der Artikel verfügbar ist.
- Geben Sie in Ihrem Bestandsverwaltungssystem an, dass der Kunde/die Kundin den Artikel gekauft hat.
- Erfassen Sie die Zahlung der Kundin/des Kunden.
- Informieren Sie die Kundin/den Kunden auf Ihrer Bestätigungsseite darüber, ob der Kauf erfolgreich war.
Um anzugeben, dass Sie Autorisierung und Erfassung trennen möchten, müssen Sie beim Erstellen der Checkout-Sitzung den Wert von payment_intent_data.capture_method auf manual
festlegen. Dadurch wird Stripe angewiesen, nur den Betrag auf der Karte der Kundin/des Kunden zu autorisieren.
Eine nicht erfasste Zahlung können Sie entweder über den Endpoint Dashboard oder Erfassung erfassen. Um Zahlungen programmgesteuert zu erfassen, ist der Zugriff auf den PaymentIntent erforderlich, der während der Checkout-Sitzung erstellt wurde. Diesen können Sie über das Session-Objekt abrufen.
OptionalVerwaltung von KundenkontenKein Code
Lassen Sie Ihre Kundinnen/Kunden ihre eigenen Konten verwalten und senden sie ihnen einen Link zu Ihrem Kundenportal. Über das Kundenportal können sich Kundinnen/Kunden mit ihrer E-Mail-Adresse anmelden, um Abonnements zu verwalten, Zahlungsmethoden zu aktualisieren und vieles mehr.