Daten zu BECS-Lastschriftverfahren in Australien für zukünftige Zahlungen speichern
Mit der Setup Intents API können Sie Angaben zur Zahlungsmethode für künftige australische BECS-Lastschriftzahlungen speichern.
Verwenden Sie Stripe Elements, unsere vorkonfigurierten Nutzeroberflächenkomponenten, zum Erstellen von Zahlungsformularen zur sicheren Erfassung von Bankverbindungen, ohne die vertraulichen Daten selbst handhaben zu müssen. Mit der Setup Intents API können Sie Zahlungsinformationen für das BECS-Lastschriftverfahren vorab erfassen und den endgültigen Betrag bzw. Zahlungsdatum später festlegen. Verwenden Sie dies für:
Zahlungsmethoden in einer Wallet speichern, um zukünftige Einkäufe zu optimieren
Einziehen von Zuschlägen nach Abwicklung einer Dienstleistung
Um ein BECS-Lastschriftkonto für zukünftige Zahlungen zu verwenden, müssen Sie es einem Customer-Objekt zuordnen.
Erstellen Sie ein Customer-Objekt, wenn Ihre Kund/innen ein Konto bei Ihrem Unternehmen anlegen. Wenn Sie die ID des Customer-Objekts mit Ihrer eigenen Darstellung einer Kundin/eines Kunden verknüpfen, können Sie später die gespeicherten Angaben zur Zahlungsmethode abrufen und verwenden.
Legen Sie neue Kund/innen an oder rufen Sie bestehende Kund/innen ab, um sie mit dieser Zahlung zu verknüpfen. Fügen Sie den folgenden Code auf Ihrem Server ein, um neue Kund/innen zu erstellen.
Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -X POST https://api.stripe.com/v1/customers \
-u"
Ein SetupIntent ist ein Objekt, das Ihre Absicht darstellt, die Zahlungsmethode einer Kundin/eines Kunden für zukünftige Zahlungen einzurichten. Mit dem SetupIntent werden die Schritte dieses Einrichtungsprozesses verfolgt. Für BECS-Lastschriftverfahren beinhaltet dies das Erfassen eines Mandats von der Kundin/dem Kunden und die Überprüfung der Gültigkeit während der Laufzeit des Mandats.
Nach Erstellen eines SetupIntent auf Ihrem Server können Sie die SetupIntent-ID im Datenmodell Ihrer Anwendung mit dem Kunden/der Kundin der aktuellen Sitzung verknüpfen. Dadurch können Sie nach erfolgreichem Einholen einer Zahlungsmethode die Informationen abrufen.
Das zurückgegebene SetupIntent-Objekt enthält die Eigenschaft client_secret. Übergeben Sie das Client-Geheimnis an die Anwendung auf Client-Seite, um mit der Einrichtung fortzufahren.
Sie können jetzt mit Stripe Elements Zahlungsinformationen auf dem Client erfassen. Elements beinhaltet vorgefertigte Komponenten der Nutzeroberfläche zur Erfassung von Zahlungsdetails.
Ein Stripe Element enthält ein iframe, dass die Zahlungsdaten über eine HTTPS-Verbindung sicher an Stripe sendet. Die Adresse der Bezahlseite muss ebenfalls mit https:// beginnen, nicht mit http://, damit Ihre Integration funktioniert.
Sie können Ihre Integration ohne HTTPS testen. Dann müssen Sie das Protokoll aber aktivieren, bevor Sie Ihre ersten Live-Zahlungen empfangen.
Stripe Elements einrichten
Stripe Elements ist ein Feature von Stripe.js und steht damit automatisch zur Verfügung. Fügen Sie das Stripe.js-Skript auf Ihrer Zahlungsseite ein, indem Sie es in den head Ihrer HTML-Datei einbinden. Laden Sie Stripe.js immer direkt von js.stripe.com, um die PCI-Compliance zu gewährleisten. Fügen Sie das Skript nicht in ein Bundle ein und hosten Sie selbst keine Kopie davon.
Erstellen Sie auf Ihrer Zahlungsseite mit dem folgenden JavaScript eine Instanz von Elements:
const stripe =Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
);const elements = stripe.elements();
Lastschriftanfragen
Bevor Sie eine BECS-Lastschriftzahlung erstellen können, muss Ihr/e Kund/in der Dienstleistungsvereinbarung zu Lastschriftenanfragen zustimmen. Dies können sie tun, indem sie eine ausgefüllte Lastschriftanfrage (DDR) einreichen. Durch die Genehmigung erhalten Sie ein Mandat, sein/ihr Konto zu belasten. Das Mandate ist eine Aufzeichnung der Zustimmung, Zahlungen über eine Zahlungsmethode einzuziehen.
Für die Mandatsannahme online können Sie ein Formular erstellen, um die erforderlichen Informationen einzuholen. Stellen Sie das Formular über HTTPS bereit und erfassen Sie die folgenden Informationen:
Informationen
Beschreibung
Kontoname
Der vollständige Name des Kontoinhabers/der Kontoinhaberin
BSB-Nummer
Die Zweigniederlassungsnummer des Bankkontos (z. B. 123-456)
Kontonummer
Die Bankkontonummer (z. B. 87654321).
Bei Einzug einer Lastschriftanforderung befolgen Sie unsere BECS-Lastschriftbedingungen und tun Sie im Rahmen Ihres Bezahlformulars Folgendes:
Zeigen Sie die genauen Bedingungen der Stripe-Dienstleistungsvereinbarung zu Lastschriftenanfragen entweder inline im Formular oder auf einer im Formular verlinkten Seite an und kennzeichnen Sie diese als „Dienstleistungsvereinbarung zu Lastschriftanfragen“.
Stellen Sie sicher, dass die akzeptierten Lastschriftanfragen und die dazugehörige Dienstleistungsvereinbarung zu Lastschriftenanfragen zu jeder Zeit mit Ihren Kundinnen/Kunden geteilt werden kann, entweder als gedruckte oder unveränderliche elektronische Kopie (z. B. E-Mail). Stripe hostet dies für Sie.
Zeigen Sie den folgenden Standard-Autorisierungstext für Ihre Kund/innen an, um BECS-Lastschriftanfragen zu akzeptieren. Ersetzen Sie Rocketship Inc durch den Namen Ihres Unternehmens. Dadurch sind Sie berechtigt, Zahlungen mit BECS-Lastschrift vom Bankkonto Ihrer Kund/innen zu veranlassen.
Hinweis
Mit der Angabe Ihrer Bankdaten erklären Sie sich mit dieser Lastschriftanforderung und der Dienstleistungsvereinbarung Lastschriftverfahren einverstanden und autorisieren Stripe Payments Australia Pty Ltd ACN 160 180 343, Lastschriftverfahren-Nutzer-ID 507156 („Stripe“), Ihr Konto über das Bulk Electronic Clearing System (BECS) im Namen von Rocketship Inc (dem „Händler“) für Zahlungen gemäß den Bedingungen Ihrer Vereinbarung mit dem Händler/der Händlerin zu belasten. Sie bestätigen, dass Sie entweder Kontoinhaber oder Zeichnungsberechtigter des oben genannten Kontos sind.
Die Details des akzeptierten Mandats werden beim Einrichten einer PaymentMethod oder beim Bestätigen eines PaymentIntent generiert. Sie sollten jederzeit in der Lage sein, dieses Mandat – die akzeptierten Lastschriftanfragen und die dazugehörige Dienstleistungsvereinbarung – entweder in gedruckter Form oder als unveränderliche elektronische Kopie (z. B. per E-Mail) mit Ihren Kundinnen/Kunden zu teilen. Stripe hostet dies für Sie unter der url-Eigenschaft des Mandate-Objekts, das mit der PaymentMethod verknüpft ist.
Australisches Bankkontoelement hinzufügen und konfigurieren
Das australische Bankkontoelement hilft Ihnen beim Einziehen und Validieren der BSB-Nummer und der Kontonummer. Stellen Sie sicher, dass es in Ihrem Zahlungsformular erscheint. Erstellen Sie in Ihrem Zahlungsformular leere DOM-Knoten (Container) mit einmaligen IDs. Außerdem müssen Ihre Kund/innen die Nutzungsvereinbarung für Lastschriftanforderungen lesen und akzeptieren.
payment_setup.html
HTML
CSS
No results
<formaction="/setup"method="post"id="setup-form"><divclass="form-row inline"><divclass="col"><labelfor="accountholder-name">
Name
</label><inputid="accountholder-name"name="accountholder-name"placeholder="John Smith"required/></div><divclass="col"><labelfor="email">
Email Address
</label><inputid="email"name="email"type="email"placeholder="john.smith@example.com"required/></div></div><divclass="form-row"><!--
Using a label with a for attribute that matches the ID of the
Element container enables the Element to automatically gain focus
when the customer clicks on the label.
--><labelfor="au-bank-account-element">
Bank Account
</label><divid="au-bank-account-element"><!-- A Stripe Element will be inserted here. --></div></div><!-- Used to display bank (branch) name associated with the entered BSB --><divid="bank-name"></div><!-- Used to display form errors. --><divid="error-message"role="alert"></div><!-- Display mandate acceptance text. --><divclass="col"id="mandate-acceptance">
By providing your bank account details, you agree to this Direct Debit Request
and the <ahref="stripe.com/au-becs-dd-service-agreement/legal">Direct Debit Request service agreement</a>,
and authorise Stripe Payments Australia Pty Ltd ACN 160 180 343
Direct Debit User ID number 507156 (“Stripe”) to debit your account
through the Bulk Electronic Clearing System (BECS) on behalf of
Rocket Rides (the "Merchant") for any amounts separately
communicated to you by the Merchant. You certify that you are either
an account holder or an authorised signatory on the account listed above.
</div><!-- Add the client_secret from the SetupIntent as a data attribute --><buttonid="submit-button"data-secret="{{CLIENT_SECRET}}">Set up BECS Direct Debit</button></form>
Wenn das Formular geladen wurde, erstellen Sie eine Instanz des Australia Bank Account Element und verbinden sie mit dem Element-Container:
// Custom styling can be passed to options when creating an Elementconst style ={
base:{
color:'#32325d',
fontSize:'16px','::placeholder':{
color:'#aab7c4'},':-webkit-autofill':{
color:'#32325d',},},
invalid:{
color:'#fa755a',
iconColor:'#fa755a',':-webkit-autofill':{
color:'#fa755a',},}};const options ={
style: style,
disabled:false,
hideIcon:false,
iconStyle:"default",// or "solid"}// Create an instance of the auBankAccount Element.const auBankAccount = elements.create('auBankAccount', options);// Add an instance of the auBankAccount Element into// the `au-bank-account-element` <div>.
auBankAccount.mount('#au-bank-account-element');
Anstatt das gesamte SetupIntent-Objekt an den Client zu senden, verwenden Sie dessen Client-Geheimnis aus Schritt 2. Dieses unterscheidet sich von Ihren API-Schlüsseln, mit denen Anfragen der Stripe-API authentifiziert werden.
Achten Sie auf einen sorgfältigen Umgang mit dem Client-Geheimnis, da mit ihm die Einrichtung abgeschlossen werden kann. Es darf nicht protokolliert, in URLs eingebettet oder Dritten zugänglich gemacht werden.
Verwenden Sie stripe.confirmAuBecsDebitSetup, damit die Einrichtung abgeschlossen werden kann, wenn der/die Nutzer/in das Formular absendet. War die Einrichtung erfolgreich, wird der Wert succeeded für die Eigenschaft status des SetupIntent zurückgegeben. War die Einrichtung nicht erfolgreich, prüfen Sie den angegebenen error, um den Grund zu erfahren.
Da der Kunde/die Kundin festgelegt ist, wird die PaymentMethod nach erfolgreicher Einrichtung dem angegebenen Customer-Objekt zugeordnet. Nun können Sie die ID des Customer-Objekts mit Ihrer eigenen, internen Darstellung eines Kunden/einer Kundin verknüpfen. Dadurch können Sie die gespeicherte PaymentMethod verwenden, um zukünftige Zahlungen einzuziehen, ohne die Kundinnen/Kunden zur Angabe der Zahlungsmethode auffordern zu müssen.
Teilen Sie nach Bestätigung des SetupIntent die Mandats-URL aus dem Mandats-Objekt mit Ihrem Kunden/Ihrer Kundin. Wir empfehlen außerdem, die folgenden Details hinzuzufügen, wenn Sie bestätigen, dass sein/ihr Mandat eingerichtet wurde.
Eine eindeutige Bestätigungsnachricht über die Einrichtung des Lastschriftverfahrens
Der Name des Unternehmens, der auf den Kontoauszügen von Kund/innen angezeigt wird, wenn ihr Konto belastet wird
Der Zahlungsbetrag und der Zahlungsplan (falls zutreffend)
Ein Link zur generierten Mandats-URL für Lastschriftanfragen
Sie können vom mandate für das SetupIntent-Objekt aus auf die ID des Mandate-Objekts zugreifen, das nach Bestätigung zusammen mit dem Ereignis setup_intent.succeeded gesendet wird. Oder Sie können sie über die API abrufen.
Sie können Ihr Formular mit der BSB-Nummer 000000 und einer der unten aufgeführten Kontonummern testen, wenn Sie confirmAuBecsDebitSetup anfordern.
BSB-Nummer
Kontonummer
Beschreibung
000000
000123456
Der mit der resultierenden PaymentMethod erstellte PaymentIntent wechselt von processing zu succeeded. Der Mandatsstatus bleibt active.
000000
900123456
Der mit der resultierenden PaymentMethod erstellte PaymentIntent wechselt von processing zu succeeded (mit einer Verzögerung von drei Minuten). Der Mandatsstatus bleibt active.
000000
111111113
Der mit der resultierenden PaymentMethod erstellte PaymentIntent wechselt von processing zu requires_payment_method mit dem Fehlercode account_closed. Der Mandatsstatus ändert sich an dieser Stelle in inactive.
000000
111111116
Der mit der resultierenden PaymentMethod erstellte PaymentIntent wechselt von processing zu requires_payment_method mit dem Fehlercode no_account. Der Mandatsstatus ändert sich an dieser Stelle in inactive.
000000
222222227
Der mit der resultierenden PaymentMethod erstellte PaymentIntent wechselt von processing zu requires_payment_method mit dem Fehlercode refer_to_customer. Der Mandatsstatus bleibt active.
000000
922222227
Der mit der resultierenden PaymentMethod erstellte PaymentIntent wechselt von processing zu requires_payment_method mit dem Fehlercode refer_to_customer (mit einer Verzögerung von drei Minuten). Der Mandatsstatus bleibt active.
000000
333333335
Der mit der resultierenden PaymentMethod erstellte PaymentIntent wechselt von processing zu requires_payment_method mit dem Fehlercode debit_not_authorized. Der Mandatsstatus ändert sich an dieser Stelle in inactive.
000000
666666660
Der mit der resultierenden PaymentMethod erstellte PaymentIntent wechselt von processing zu succeeded. Eine Zahlungsanfechtung wird jedoch sofort erstellt.
000000
343434343
Der mit der resultierenden PaymentMethod erstellte PaymentIntent schlägt mit dem Fehler charge_exceeds_source_limit fehl, da der Zahlungsbetrag dazu führt, dass das Konto sein wöchentliches Limit für das Zahlungsvolumen überschreitet.
000000
121212121
Der mit der resultierenden PaymentMethod erstellte PaymentIntent schlägt mit dem Fehler charge_exceeds_transaction_limit fehl, da der Zahlungsbetrag das Transaktionsvolumenlimit des Kontos überschreitet.
Das australische Bankkontoelement validiert Nutzereingaben bereits bei der Eingabe. Achten Sie auf Change-Ereignisse am australischen Bankkontoelement und zeigen Sie etwaige Fehler an, um Ihren Kund/innen die Fehlerkorrektur zu erleichtern:
Das Change-Ereignis umfasst zusätzliche Parameter, mit denen Sie die Nutzererfahrung weiter optimieren können. Weitere Informationen finden Sie in der Dokumentation zu Stripe.js.
Ist der SetupIntent erfolgreich, werden eine neue PaymentMethod und ein Mandatsobjekt erstellt. Damit können künftige Zahlungen eingeleitet werden, ohne dass zusätzliche Daten von den Kundinnen/Kunden abgefragt werden müssen.