Verwenden Sie unsere vorkonfigurierten Benutzeroberflächenkomponenten Stripe Elements für die Erstellung von Zahlungsformularen, die Ihnen die sichere Erfassung von Kontodaten ermöglichen, ohne dass Sie die vertraulichen Daten selbst handhaben müssen. Mit der Setup Intents API können Sie Zahlungsinformationen für das BECS-Lastschriftverfahren vorab erfassen, wobei der endgültige Betrag bzw. das Zahlungsdatum später festgelegt werden. Dies eignet sich für die folgenden Anwendungsszenarien:
- Speichern von Zahlungsmethoden in einer digitalen Geldbörse, um zukünftige Käufe zu optimieren
- Einziehen von Zuschlägen nach Abwicklung einer Dienstleistung
- Kostenlose Probeabonnements
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:
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.
curl -X POST https://api.stripe.com/v1/customers \
-u "sk_test_4eC39HqLyjWDarjtT1zdp7dc
:"
Ein SetupIntent ist ein Objekt, das Ihre Absicht darstellt, die Zahlungsmethode eines/einer Kund/in für zukünftige Zahlungen einzurichten. Mit SetupIntent
werden die Schritte dieses Einrichtungsprozesses verfolgt. Für BECS-Lastschriftverfahren beinhaltet dies das Erfassen eines Mandats von dem Kunden/der Kundin und die Überprüfung der Gültigkeit während der Laufzeit des Mandats.
Erstellen Sie eine SetupIntent auf Ihrem Server, wobei payment_method_types auf au_becs_debit
gesetzt ist, und geben Sie die ID des/der Kund/in an.
curl https://api.stripe.com/v1/setup_intents \
-u sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \
-d "payment_method_types[]"="au_becs_debit" \
-d "customer"="{{CUSTOMER_ID}}"
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, wenn Sie bereit sind, Live-Zahlungen anzunehmen.
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-Konformität 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.
Notiz
Indem Sie Ihre Bankkontoinformationen angeben, stimmen Sie dieser Lastschriftanforderung und der Dienstleistungsvereinbarung zu Lastschriftenanfragen zu und ermächtigen Stripe Payments Australia Pty Ltd ACN 160 180 343, Lastschriften-Benutzer-ID 507156 („Stripe“), Ihr Konto über das Bulk Electronic Clearing System (BECS) im Namen von Rocketship Inc (der „Händler“) zu belasten in Höhe jedweden Betrags, den Ihnen der Händler gesondert mitgeteilt hat. Sie bestätigen, dass Sie entweder Kontoinhaber/in oder Zeichnungsberechtige/r sind in Bezug auf das oben genannte Konto.
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 Kund/innen 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.
<form action="/setup" method="post" id="setup-form">
<div class="form-row inline">
<div class="col">
<label for="accountholder-name">
Name
</label>
<input
id="accountholder-name"
name="accountholder-name"
placeholder="John Smith"
required
/>
</div>
<div class="col">
<label for="email">
Email Address
</label>
<input
id="email"
name="email"
type="email"
placeholder="john.smith@example.com"
required
/>
</div>
</div>
<div class="form-row">
<label for="au-bank-account-element">
Bank Account
</label>
<div id="au-bank-account-element">
</div>
</div>
<div id="bank-name"></div>
<div id="error-message" role="alert"></div>
<div class="col" id="mandate-acceptance">
By providing your bank account details, you agree to this Direct Debit Request
and the <a href="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>
<button id="submit-button" data-secret="{{CLIENT_SECRET}}">Set up BECS Direct Debit</button>
</form>
Wenn das Formular geladen wurde, erstellen Sie eine Instanz des australischen Bankkontoelements und verbinden Sie sie mit dem Element-Container:
const 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",
}
const auBankAccount = elements.create('auBankAccount', options);
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
der SetupIntent zurückgegeben. War die Einrichtung nicht erfolgreich, prüfen Sie den angegebenen error
, um den Grund zu erfahren.
Da Kund/in 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/einer Kund/in verknüpfen. Dadurch können Sie die gespeicherte PaymentMethod
verwenden, um zukünftige Zahlungen einzuziehen, ohne die Kund/innen zur Angabe der Zahlungsmethode auffordern zu müssen.
const form = document.getElementById('setup-form');
const accountholderName = document.getElementById('accountholder-name');
const email = document.getElementById('email');
const submitButton = document.getElementById('submit-button');
const clientSecret = submitButton.dataset.secret;
form.addEventListener('submit', async (event) => {
event.preventDefault();
stripe.confirmAuBecsDebitSetup(
clientSecret,
{
payment_method: {
au_becs_debit: auBankAccount,
billing_details: {
name: accountholderName.value,
email: email.value
}
}
}
);
});
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
auf dem 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.
curl https://api.stripe.com/v1/setup_intents/{{SETUP_INTENT_ID}} \
-u "sk_test_4eC39HqLyjWDarjtT1zdp7dc
:" \
-d "expand[]"=mandate
Testen Sie Ihr Formular mit der BSB-Prüfnummer 000-000
und einer der unten aufgeführten Testkontonummern, wenn Sie confirmAuBecsDebitSetup anfordern.
BSB-Nummer | Kontonummer | Beschreibung |
---|
000-000 | 000123456 | Der mit der resultierenden PaymentMethod erstellte PaymentIntent wechselt von processing zu succeeded . Der Mandatsstatus bleibt active . |
000-000 | 900123456 | Der mit der resultierenden PaymentMethod erstellte PaymentIntent wechselt von processing zu succeeded (mit einer Verzögerung von drei Minuten). Der Mandatsstatus bleibt active . |
000-000 | 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 . |
000-000 | 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 . |
000-000 | 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 . |
000-000 | 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 . |
000-000 | 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 . |
000-000 | 666666660 | Der mit der resultierenden PaymentMethod erstellte PaymentIntent wechselt von processing zu succeeded . Eine Zahlungsanfechtung wird jedoch sofort erstellt. |