Ein Abonnement mit vorab autorisierten Lastschriften in Kanada einrichten
Erfahren Sie, wie Sie ein Abonnement mit kanadischen vorab autorisierten Lastschriften erstellen und abrechnen können.
Notiz
Der Abonnement-Modus in Checkout wird noch nicht unterstützt. Um mehr über den frühzeitigen Zugriff zu erfahren, wenn diese Funktion verfügbar ist, kontaktieren Sie uns, um sich auf der Warteliste zu registrieren.
Produkt und Preis erstellenDashboard
Produkte stehen für den von Ihnen angebotenen Artikel oder Dienst. Preise geben an, wie viel und wie häufig Sie für ein Produkt berechnen. Dies schließt ein, wie viel ein Produkt kostet, welche Währung Sie akzeptieren und ob es sich um eine einmalige oder eine wiederkehrende Zahlung handelt. Wenn Sie nur ein paar wenige Produkte und Preise haben, können Sie diese im Dashboard erstellen und verwalten.
In diesem Leitfaden wird ein Stock-Foto-Service als Beispiel verwendet, für den Kund/innen ein monatliches Abonnement mit dem Betrag von 15 CAD berechnet werden. Um dies zu modellieren:
- Navigieren Sie zur Seite Produkt hinzufügen.
- Geben Sie einen Namen für das Produkt an.
- Geben Sie 15 für den Preis ein.
- Wählen Sie als Währung CAD aus.
- Klicken Sie auf Produkt speichern.
Zeichnen Sie nach Erstellen des Produkts und des Preises die Preis-ID auf, sodass Sie diese in nachfolgenden Schritten verwenden können. Die ID wird auf der Preisseite angezeigt und sieht in etwa so aus: price_
.
Abonnement erstellenServerseitig
Notiz
Informationen dazu, wie Sie ein Abonnement mit einer kostenlosen Testphase erstellen, finden Sie unter Abonnement-Testphasen.
Erstellen Sie ein Abonnement mit dem Preis und dem Kunden/der Kundin mit dem Status incomplete
, indem Sie den Parameter payment_behavior mit dem Wert default_
angeben.
Die Antwort umfasst den ersten PaymentIntent des Abonnements, der das Client-Geheimnis enthält. Dieses verwenden Sie auf der Client-Seite, um den Bezahlvorgang sicher durchzuführen, statt das gesamte PaymentIntent-Objekt zu übergeben. Um die Zahlung abzuschließen, geben Sie das client_
an das Frontend zurück.
Angaben zur Zahlungsmethode und Mandatsbestätigung erfassenClientseitig
Um vorab autorisierte Lastschriftzahlungen in Kanada verwenden zu können, müssen Sie mithilfe einer vorab autorisierten Lastschriftvereinbarung (siehe PAD-Mandate) die Zustimmung Ihrer Kundin/Ihres Kunden für einmalige und wiederkehrende Lastschriften einholen. Das Mandate-Objekt zeichnet diese Vereinbarung und Autorisierung auf.
Stripe konfiguriert automatisch Mandate für Abonnements und Rechnungen für Sie. Der/die Kund/in muss die Mandatsbedingungen nur einmal bestätigen. Nachfolgende Abonnementzahlungen werden ohne weitere Aktion durchgeführt.
Wenn Kundinnen/Kunden über das „Click to Pay“-Verfahren mit Canadian pre-authorized debit zahlen, empfehlen wir Ihnen, Stripe.js zu verwenden, um die Zahlung an Stripe zu übermitteln. Stripe.js ist unsere grundlegende JavaScript-Bibliothek für die Erstellung von Zahlungsabläufen. Sie übernimmt automatisch komplexe Integrationsaufgaben und ermöglicht es Ihnen, Ihre Integration in Zukunft unkompliziert um andere Zahlungsmethoden zu erweitern.
Binden Sie das Stripe.js-Skript in Ihre Zahlungsseite ein, indem Sie es im head
Ihrer HTML-Datei einfügen.
<head> <title>Checkout</title> <script src="https://js.stripe.com/v3/"></script> </head>
Erstellen Sie auf Ihrer Bezahlseite eine Instanz von Stripe.js mit dem folgenden JavaScript.
// Set your publishable key. Remember to change this to your live publishable key in production! // See your keys here: https://dashboard.stripe.com/apikeys const stripe = Stripe(
);'pk_test_TYooMQauvdEDq54NiTphI7jx'
Anstatt das gesamte PaymentIntent-Objekt an den Client zu übermitteln, verwenden Sie dessen Client-Geheimnis aus dem vorherigen Schritt. Dieses unterscheidet sich von Ihren API-Schlüsseln, mit denen Anfragen der Stripe API authentifiziert werden.
Achten Sie aber auf einen vorsichtigen Umgang mit dem Client-Geheimnis, da mit ihm die Zahlung abgeschlossen werden kann. Es darf nicht protokolliert, in URLs eingebettet oder Personen außer den Kund/innen selbst zugänglich gemacht werden.
Verwenden Sie stripe.confirmAcssDebitPayment, um Bankkontodaten und Verifizierungen zu erfassen, das Mandat zu bestätigen und die Zahlung abzuschließen, wenn der/die Nutzer/in das Formular übermittelt. Die Angabe der E-Mail-Adresse der Kundinnen/Kunden und des Namens der Kontoinhaber/innen in der Eigenschaft billing_
des Parameters payment_
ist erforderlich, um eine Zahlungsmethode für vorab autorisierte Lastschriften (PAD) zu erstellen.
const form = document.getElementById('payment-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(); const {paymentIntent, error} = await stripe.confirmAcssDebitPayment( clientSecret, { payment_method: { billing_details: { name: accountholderName.value, email: email.value, }, }, } ); if (error) { // Inform the customer that there was an error. console.log(error.message); } else { // Handle next step based on PaymentIntent's status. console.log("PaymentIntent ID: " + paymentIntent.id); console.log("PaymentIntent status: " + paymentIntent.status); } });
Stripe.js lädt anschließend eine modale On-Page-Nutzeroberfläche, um die Erfassung und Überprüfung der Bankkontodaten abzuwickeln, eine gehostete Mandatsvereinbarung anzuzeigen und die Autorisierung einzuholen.
Notiz
Die Ausführung von stripe.
kann einige Sekunden dauern. Während dieser Zeit sollten Sie Ihr Formular deaktivieren, damit keine erneute Übermittlung erfolgen kann. Lassen Sie stattdessen ein Wartesymbol einblenden, wie beispielsweise eine Sanduhr. Tritt ein Fehler auf, lassen Sie eine Fehlermeldung für die Kundin/den Kunden anzeigen, aktivieren Sie das Formular erneut und blenden Sie das Wartesymbol aus.
Wenn der/die Kund/in die Sofortüberprüfung abschließt, wird das Abonnement automatisch active
. Lesen Sie andernfalls im folgenden Abschnitt nach, wie die Verifizierung von Testeinzahlungen abgewickelt wird, während das Abonnement incomplete
bleibt.
Bankkonto mit Testeinzahlungen verifizierenClientseitig
Notiz
Kund/innen haben 10 Tage Zeit, um Testeinzahlungen für ein Abonnements erfolgreich zu verifizieren, statt der normalerweise im Lebenszylus eines Abonnements angegebenen 23 Stunden. Diese Ablauffrist kann jedoch nicht nach dem Datum des Abrechnungszyklus liegen.
Nicht alle Kund/innen können das Bankkonto sofort verifizieren. Dieser Schritt wird nur ausgeführt, wenn Ihre Kundin/Ihr Kunde die Sofortverifizierung im vorherigen Schritt deaktiviert hat.
In this case, Stripe automatically sends two micro-deposits to the customer’s bank account. These deposits take 1–2 business days to appear on the customer’s online statement and have statement descriptors that include ACCTVERIFY
.
Das Ergebnis des Aufrufs der Methode stripe.
im vorhergehenden Schritt ist ein PaymentIntent mit dem Status requires_
. Der PaymentIntent enthält das Feld next_
, das einige nützliche Informationen zum Abschließen der Verifizierung enthält.
Stripe benachrichtigt Ihre Kundinnen/Kunden über die E-Mail-Adresse für die Rechnungsstellung, wann die Einzahlungen voraussichtlich eingehen werden. Die E-Mail enthält einen Link zu einer von Stripe gehosteten Verifizierungsseite, auf der sie die Beträge der Einzahlungen bestätigen und die Verifizierung abschließen können.
Es besteht eine Grenze von drei fehlgeschlagenen Verifizierungsversuchen. Wenn diese Grenze überschritten wird, kann das Bankkonto nicht mehr verifiziert werden. Zusätzlich gibt es für Verifizierungen von Testeinzahlungen eine Frist von 10 Tagen. Werden Testeinzahlungen nicht innerhalb dieser Zeit verifiziert, fordert die PaymentIntent wieder neue Angaben zur Zahlungsmethode an. Wenn Sie Ihren Kund/innen genau erläutern, was Testeinzahlungen sind und wie sie verwendet werden, können Sie Probleme bei der Verifizierung vermeiden.
Optional: Nutzerdefinierte E-Mails und Verifizierungsseite
Wenn Sie nutzerdefinierte Benachrichtigungen versenden möchten, müssen Sie stattdessen E-Mails an Ihre Kundinnen/Kunden senden. Dafür können Sie die URL verify_
im Objekt next_
verwenden, um Ihre Kundinnen/Kunden aufzufordern, den Verifizierungsvorgang abzuschließen.
Wenn Sie nutzerdefinierte E-Mails versenden und nicht die von Stripe gehostete Verifizierungsseite verwenden möchten, können Sie auf Ihrer Website ein Formular für Ihre Kundinnen/Kunden zur Weiterleitung dieser Beträge an Sie erstellen und das Bankkonto mit Stripe.js verifizieren.
stripe.verifyMicrodepositsForPayment(clientSecret, { amounts: [32, 45], });
Standard-Zahlungsmethode festlegenServer
Sie haben jetzt ein aktives Abonnement eines/einer Kund/in mit einer Zahlungsmethode. Diese Zahlungsmethode wird jedoch nicht automatisch für zukünftige Zahlungen verwendet. Um diese Zahlungsmethode in Zukunft automatisch zu belasten, verwenden Sie einen Webhook-Consumer, um das Ereignis invoice.
für neue Abonnements zu überwachen und die Standard-Zahlungsmethode festzulegen.
Abonnementstatus verwaltenClientseitig
Sofern die erste Zahlung erfolgreich war, ist der Status des Abonnements active
, und es sind keine weiteren Maßnahmen erforderlich. Wenn Zahlungen fehlschlagen, ändert sich der Status in den Abonnementstatus, der in Ihren Einstellungen für den automatischen Einzug konfiguriert ist. Benachrichtigen Sie die Kund/innen, wenn die Zahlung fehlgeschlagen ist und belasten Sie sie mit einer anderen Zahlungsmethode.
Notiz
Kanadische vorab autorisierte Lastschriftzahlungen werden nie automatisch wiederholt, auch dann nicht, wenn Sie einen Wiederholungsplan für andere Zahlungsmethoden konfiguriert haben.
Integration testen
E-Mail zur Verifizierung der Testeinzahlung erhalten
Um die E-Mail zur Verifizierung der Testeinzahlung im Testmodus zu erhalten, nachdem Sie die Bankkontodaten erfasst und ein Mandat angenommen haben, geben Sie bei der Bestätigung der Details der Zahlungsmethode im Feld payment_
eine E-Mail-Adresse im folgenden Format an: {any_
.
Testkontonummern
Stripe stellt mehrere Testnummern zur Verfügung, um sicherzustellen, dass Ihre Integration für manuell eingegebene Bankkontodaten produktionsbereit ist. Alle Testkonten, die eine Zahlung automatisch ausführen oder fehlschlagen lassen, müssen vor dem Zahlungsabschluss anhand der unten aufgeführten Testeinzahlungen überprüft werden.
Institutsnummer | Transitnummer | Kontonummer | Szenario |
---|---|---|---|
000 | 11000 | 000123456789 | Die Zahlung ist sofort nach Prüfung der Testeinzahlungen erfolgreich. |
000 | 11000 | 900123456789 | Die Zahlung ist mit einer Verzögerung von drei Minuten nach Prüfung der Testeinzahlungen erfolgreich. |
000 | 11000 | 000222222227 | Die Zahlung schlägt sofort nach Prüfung der Testeinzahlungen fehl. |
000 | 11000 | 900222222227 | Die Zahlung schlägt mit einer Verzögerung von drei Minuten nach Prüfung der Testeinzahlungen fehl. |
000 | 11000 | 000666666661 | Die Testeinzahlungen zur Verifizierung schlagen fehl. |
000 | 11000 | 000777777771 | Fails the payment due to the payment amount causing the account to exceed its weekly payment volume limit. |
000 | 11000 | 000888888881 | Fails the payment due to the payment amount exceeding the account’s transaction limit. |
Um im Testmodus erfolgreiche oder fehlgeschlagene Bankkontoverifizierungen zu imitieren, verwenden Sie die folgenden aussagekräftigen Beträge für Testeinzahlungen:
Werte für Testeinzahlungen | Szenario |
---|---|
32 und 45 | Die Verifizierung des Kontos ist erfolgreich. |
Jede andere Zahlenkombination | Die Verifizierung des Kontos schlägt fehl. |