Bankverbindung für Bacs-Lastschriftverfahren speichern
Sie können Stripe Checkout verwenden, um Zahlungsinformationen für das Bacs-Lastschriftverfahren vorab zu erfassen. Der endgültige Betrag bzw. das Zahlungsdatum wird dabei später festgelegt. Mögliche Anwendungsszenarien:
- Speichern von Zahlungsmethoden in einer Geldbörse, um zukünftige Käufe zu optimieren.
- Gebühreneinziehung nach der Leistungserbringung.
- Einrichtung kostenloser Probeabonnements.
Stripe einrichtenServerseitig
Zunächst benötigen Sie ein Stripe-Konto. Registrieren Sie sich jetzt.
Nutzen Sie unsere offiziellen Bibliotheken für den Zugriff auf die Stripe-API über Ihre Anwendung:
Kund/in erstellenServerseitig
Um das BACS-Lastschriftverfahren bei späteren Zahlungen wiederzuverwenden, müssen Sie es bestimmten Kund/innen zuordnen. Erstellen Sie ein Kundenobjekt, wenn jemand ein Konto bei Ihrem Unternehmen anlegt. Verknüpfen Sie die ID des Kundenobjekts dann mit Ihrem internen Kundenabbild, um die gespeicherten Zahlungsdaten später erneut zu verwenden. Überspringen Sie diesen Schritt, wenn Sie bereits ein vorhandenes Kundenobjekt haben.
Checkout-Sitzung erstellenClientseitigServerseitig
Bevor Sie Zahlungen per Lastschrift annehmen können, müssen Ihre Kund/innen ihre Kontoinformationen zur Verfügung stellen und Sie autorisieren, die Abbuchung per Stripe Checkout von ihrem Konto vorzunehmen (dies wird auch als Lastschriftmandat bezeichnet).
Fügen Sie Ihrer Website eine Schaltfläche zum Bezahlen hinzu, über die ein serverseitiger Endpoint aufgerufen wird, um eine Checkout-Sitzung zu erstellen.
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>
Erstellen Sie eine Checkout-Sitzung im setup
-Modus, um die erforderlichen Informationen zu erfassen. Leiten Sie Ihre Kund/innen nach dem Erstellen der Checkout-Sitzung zu der in der Antwort zurückgegebenen URL weiter.
Wenn Ihre Kund/innen ihre Angaben zur Zahlungsmethode machen, werden Sie an die success_url
weitergeleitet. Hierbei handelt es sich um eine Seite auf Ihrer Website, auf der Ihre Kund/innen darüber informiert werden, dass ihre Zahlungsmethode erfolgreich gespeichert wurde. Stellen Sie die Sitzungs-ID auf Ihrer Erfolgsseite zur Verfügung, indem Sie die Vorlagenvariable {CHECKOUT_SESSION_ID}
wie im obigen Beispiel in die success_url
einfügen.
Wenn Ihre Kund/innen in einer Checkout-Sitzung auf Ihr Logo klicken, ohne Angaben zur Zahlungsmethode zu machen, leitet Checkout sie über die cancel_url
zurück zu Ihrer Website. In der Regel ist dies die Seite auf Ihrer Website, die die Kund/innen vor der Weiterleitung zu Stripe Checkout besucht haben.
Vorsicht
Verlassen Sie sich beim Erkennen von initiierten Zahlungen nicht allein auf die Weiterleitung auf die success_url
:
- Böswillige Nutzer/innen könnten, ohne zu bezahlen, direkt auf die
success_url
zugreifen und sich so unberechtigt Zugang zu Waren und Dienstleistungen verschaffen. - In manchen Fällen werden Kund/innen nach erfolgreicher Zahlung nicht zur
success_url
weitergeleitet. Möglicherweise haben sie die Registerkarte im Browser geschlossen, bevor die Weiterleitung erfolgt ist.
Notiz
Die Regeln zum Bacs-Lastschriftverfahren sehen vor, dass die Kund/innen bei der Erfassung ihrer Zahlungsinformationen eine E-Mail-Benachrichtigung erhalten. Diese E-Mails versendet Stripe automatisch. Sie können aber auch Ihre eigenen Bacs-Benachrichtigungen versenden.
Zahlungsmethode abrufenServerseitig
Nachdem ein Kunde/eine Kundin seine/ihre Zahlungsdetails übermittelt hat, rufen Sie das PaymentMethod-Objekt ab. Eine PaymentMethod speichert die bank account-Informationen der Kundinnen und Kunden für spätere Zahlungen. Sie können die PaymentMethod synchron mit der success_url
oder asynchron mithilfe von Webhooks abrufen.
Ob Sie die PaymentMethod synchron oder asynchron abrufen, hängt von Ihrer Toleranz gegenüber Kaufabbrüchen ab, da Kund/innen in manchen Fällen nach erfolgreicher Zahlung nicht zur success_url
weitergeleitet werden. (Sie können beispielsweise die Registerkarte im Browser schließen, bevor die Weiterleitung erfolgt ist.) Die Verarbeitung von Webhooks verhindert diese Form von Kaufabbrüchen in Ihrer Integration.
Ereignisse nach Einrichtung verarbeitenServerseitig
Sobald die Checkout-Sitzung abgeschlossen ist, werden die Zahlungsinformationen als Mandat an die Bank übermittelt.
Das Mandat kann nach der Erteilung jederzeit geändert werden, wenn etwa die Kundinnen/Kunden ihre Bank anweisen, das Mandat zu ändern oder wenn sie zu einer anderen Bank wechseln. Bei Mandatsänderungen sendet Stripe die folgenden Ereignisse:
Ereignisname | Beschreibung | Werden Zahlungen akzeptiert? |
---|---|---|
mandate.updated | Wird ausgegeben, wenn ein Mandat vom Bacs-Netzwerk abgelehnt, widerrufen oder wieder aktiviert wird. Unter mandate.status erfahren Sie, ob das Lastschriftmandat weiterhin verwendet werden kann. | Ja, sofern der neue Status active ist |
payment_method.automatically_updated | Wird ausgegeben, wenn sich die kundenseitige Bankverbindung ändert. | Ja |
Sie können die Ereignisse in Ihrem Dashboard einsehen. Sie können einen Webhook einrichten, um diese programmatisch zu handhaben.
Integration testen
Für die Verwendung im Testmodus stehen Ihnen mehrere Testkontonummern zur Verfügung. So können Sie die Funktionsfähigkeit Ihrer Integration überprüfen.
Bankleitzahl | Kontonummer | Beschreibung |
---|---|---|
108800 | 00012345 | Die Zahlung ist erfolgreich und der PaymentIntent von wird von processing auf succeeded umgestellt. |
108800 | 90012345 | Die Zahlung erfolgt innerhalb von drei Minuten und der PaymentIntent von wird von processing auf succeeded umgestellt. |
108800 | 33333335 | Die Zahlung wird akzeptiert, schlägt dann aber unmittelbar fehl. Die Fehlerkennung debit_not_authorized wird ausgegeben und PaymentIntent wird von processing auf requires_payment_method umgestellt. Das Mandat wechselt zu inactive und die PaymentMethod kann nicht erneut verwendet werden. |
108800 | 93333335 | Die Zahlung schlägt nach drei Minuten fehl. Die Fehlerkennung debit_not_authorized wird ausgegeben und der PaymentIntent wird von processing auf requires_payment_method umgestellt. Das Mandat wechselt zu inactive und die PaymentMethod kann nicht erneut verwendet werden. |
108800 | 22222227 | Die Zahlung schlägt fehl, die Fehlerkennung insufficient_funds wird ausgegeben und der PaymentIntent wird von processing auf requires_payment_method umgestellt. Das Mandat bleibt active und die PaymentMethod kann erneut verwendet werden. |
108800 | 92222227 | Die Zahlung schlägt nach drei Minuten fehl, die Fehlerkennung insufficient_funds wird ausgegeben und der PaymentIntent wird von processing auf requires_payment_method umgestellt. Das Mandat bleibt active und die PaymentMethod kann erneut verwendet werden. |
108800 | 55555559 | Die Zahlung erfolgt innerhalb von drei Minuten und der PaymentIntent wechselt von processing zu succeeded . Eine Zahlungsanfechtung wird jedoch sofort erstellt. |
108800 | 00033333 | Die Zahlungsmethode wurde erfolgreich erstellt, das Mandat wird jedoch von der Kundenbank verweigert und sofort deaktiviert. |
108800 | 00044444 | Die Anfrage zur Einrichtung eines Bacs-Lastschriftverfahrens wird aufgrund einer ungültigen Kontonummer sofort abgelehnt. Die Kund/innen werden aufgefordert, ihre Angaben vor dem Absenden zu prüfen. Zahlungsinformationen werden nicht erfasst. |
Sie können die oben aufgeführten Kontonummern nach Belieben testen. Da die Verarbeitung von Zahlungen per Bacs-Lastschriftverfahren mehrere Tage in Anspruch nimmt, verwenden Sie bitte die Testkontonummern. Bei diesen ist eine dreiminütige Verzögerung eingebaut, um tatsächliche Zahlungen möglichst exakt nachzubilden.
Notiz
Stripe schickt den Kund/innen bei der erstmaligen Erfassung ihrer Zahlungsinformationen sowie bei jeder Kontobelastung standardmäßig E-Mails. Im Testmodus werden diese Benachrichtigungen nicht versendet.
Zahlungsmethode für künftige Zahlungen verwendenServerseitig
Wenn Sie eine PaymentMethod eingerichtet haben, können Sie künftige Zahlungen per Bacs-Lastschriftverfahren annehmen, indem Sie ein PaymentIntent einrichten und bestätigen.