Multibanco-Zahlungen annehmen
So akzeptieren Sie Zahlungen per Multibanco.
Vorsicht
Wir empfehlen Ihnen, den Leitfaden Zahlung akzeptieren zu befolgen, es sei denn, Sie müssen eine manuelle serverseitige Bestätigung verwenden oder Ihre Integration erfordert die separate Angabe von Zahlungsmethoden. Wenn Sie Elements bereits integriert haben, lesen Sie den Migrationsleitfaden für Payment Element.
Multibanco ist eine auf Gutscheinen basierende Zahlungsmethode in Portugal. Wenn Ihr Unternehmen in Europa oder den Vereinigten Staaten ansässig ist, können Sie Multibanco-Zahlungen von Kunden/Kundinnen in Portugal über die Payment Intents API akzeptieren.
Zur Abwicklung einer Transaktion erhalten die Kunden/Kundinnen einen Gutschein, der die Multibanco-Einheit und die Referenznummern enthält. Mithilfe dieser Gutscheindaten kann eine Zahlung außerhalb des Bezahlvorgangs über das Online-Banking oder einen Geldautomaten getätigt werden.
Die Zahlungsbestätigung kann sich aufgrund der Einleitung einer Banküberweisung um mehrere Tage verzögern, wenn ein Kunde/eine Kundin für einen Multibanco-Gutschein bezahlt. Banküberweisungen können insbesondere am Wochenende zu Verzögerungen führen, was wiederum zu einer Verzögerung der Zahlungsbestätigung beiträgt.
Stripe einrichtenServerseitig
Zunächst benötigen Sie ein Stripe-Konto. Registrieren Sie sich jetzt.
Um von Ihrer Anwendung auf die Stripe API zuzugreifen, verwenden Sie unsere offiziellen Bibliotheken:
PaymentIntent erstellenServerseitig
Stripe verwendet ein PaymentIntent-Objekt, um Ihre Absicht darzustellen, eine Kundenzahlung einzuziehen und Statusänderungen von der Erstellung des Multibanco-Gutscheins bis zum Zahlungsabschluss zu dokumentieren.
Erstellen Sie einen PaymentIntent auf Ihrem Server mit einem Betrag und der Währung eur
(Multibanco unterstützt keine anderen Währungen). Wenn Sie bereits eine Integration mit dem Payment Intents API haben, fügen Sie multibanco
zur Liste der Zahlungsmethoden für Ihren PaymentIntent hinzu.
Client-Geheimnis abrufen
Im PaymentIntent ist ein Client-Geheimnis enthalten, das auf dem Client verwendet wird, um Zahlungen sicher abzuschließen. Es gibt verschiedene Verfahren zum Übergeben des Client-Geheimnisses an den Client.
Angaben zur Zahlungsmethode erfassenClientseitig
Erstellen Sie ein Zahlungsformular auf Ihrem Client, um die erforderlichen Rechnungsdaten von den Kundinnen/Kunden zu erfassen:
Feld | Wert |
---|---|
email | Die vollständige E-Mail-Adresse der Kundin/des Kunden. |
<form id="payment-form"> <div class="form-row"> <label for="email"> Email </label> <input id="email" name="email" required /> </div> <!-- Used to display form errors. --> <div id="error-message" role="alert"></div> <button id="submit-button">Pay with Multibanco</button> </form>
Zahlung an Stripe sendenClientseitig
Verwenden Sie Stripe.js zur Übermittlung von Zahlungen an Stripe, wenn Kundinnen/Kunden mit Multibanco bezahlen möchten. Stripe.js ist unsere grundlegende JavaScript-Bibliothek für die Erstellung von Zahlungsabläufen.
Binden Sie das Stripe.js-Skript in Ihre Bezahlseite ein, indem Sie es im head
Ihrer HTML-Datei einfügen.
<head> <title>Checkout</title> <script src="https://js.stripe.com/basil/stripe.js"></script> </head>
Erstellen Sie auf Ihrer Checkout-Seite mit dem folgenden JavaScript eine Instanz von Stripe.js.
// Set your publishable key. Remember to switch to your live publishable key in production! // See your keys here: https://dashboard.stripe.com/apikeys const stripe = Stripe(
);'pk_test_TYooMQauvdEDq54NiTphI7jx'
Übermitteln Sie die Rechnungsdaten der Kundin/des Kunden durch Aufruf von stripe.confirmMultibancoPayment mit dem Client-Geheimnis des PaymentIntent Objekts, das Sie erstellt haben.
Nach der Bestätigung öffnet Stripe automatisch ein Modal, um den Multibanco-Gutschein für Ihre Kundin/Ihren Kunden anzuzeigen.
const form = document.getElementById('payment-form'); form.addEventListener('submit', async (event) => { event.preventDefault(); const result = await stripe.confirmMultibancoPayment( '{{PAYMENT_INTENT_CLIENT_SECRET}}', { payment_method: { billing_details: { email: document.getElementById('email').value, }, }, }); // Stripe.js will open a modal to display the Multibanco voucher to your customer // This async function finishes when the customer closes the modal if (result.error) { // Display error to your customer const errorMsg = document.getElementById('error-message'); errorMsg.innerText = result.error.message; } });
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. Wenn ein Fehler auftritt, zeigen Sie der Kundin/dem Kunden eine Fehlermeldung an, aktivieren das Formular erneut und blenden das Wartesymbol aus.
Wenn die Erstellung des Multibanco-Gutscheins erfolgreich war, lautet der Wert der zurückgegebenen status
-Eigenschaft des PaymentIntent requires_
. Sie können den Status eines PaymentIntent im Dashboard oder in der Statuseigenschaft des Objekts einsehen. War die Erstellung des Multibanco-Gutscheins nicht erfolgreich, prüfen Sie den zurückgegebenen error
, um den Grund zu erfahren (z. B. ein ungültiges E-Mail-Format).
Stripe sendet ein payment_intent.requires_action-Ereignis, wenn ein Multibanco-Gutschein erfolgreich erstellt wurde. Wenn Sie Ihren Kundinnen/Kunden den Link für Zahlungsanweisungen zum Gutschein per E-Mail senden müssen, können Sie die hosted_
bei payment_intent.next_action.multibanco_display_details.hosted_voucher_url ermitteln.
Ereignisse nach Zahlung verarbeitenServerseitig
Multibanco ist eine Zahlungsmethode mit verzögerter Benachrichtigung. Ein Kunde/Eine Kundin bezahlt einen Multibanco-Gutschein außerhalb Ihres Bezahlvorgangs über das Online-Banking oder an einem Geldautomaten.
Nach Abschluss einer Multibanco-Zahlung sendet Stripe das Ereignis payment_intent.succeeded. Verwenden Sie das Dashboard oder erstellen Sie einen Webhook-Handler, um diese Ereignisse zu erhalten und Aktionen auszuführen. Beispiele für Aktionen sind u. a. das Senden einer E-Mail zur Bestellbestätigung an Ihre Kund/innen, das Protokollieren des Verkaufs in einer Datenbank oder das Starten eines Versand-Workflows.
Erfahren Sie mehr über den Ablaufzeitpunkt von Multibanco.
Ereignis | Beschreibung | Nächste Schritte |
---|---|---|
payment_ | Der Multibanco-Gutschein wurde erfolgreich erstellt. | Warten Sie, bis die Kundin/der Kunde für den Multibanco-Gutschein bezahlt hat. |
payment_ | Die Kundin/der Kunde kann den Multibanco-Gutschein nicht mehr bezahlen. | Warten Sie, bis die initiierte Zahlung erfolgt oder fehlschlägt. |
payment_ | Die Kundin/der Kunde hat für den Multibanco-Gutschein bezahlt. | Wickeln Sie die Kundenbestellung ab. |
payment_ | Die Kundin/der Kunde hat nicht für den Multibanco-Gutschein bezahlt. | Kontaktieren Sie Ihre/n Kund/in per E-Mail oder Push-Benachrichtigung und fordern Sie eine andere Zahlungsmethode an. |
Ereignisse empfangen und Geschäftsaktionen ausführen
Manuell
Im Stripe-Dashboard können Sie alle Stripe-Zahlungen anzeigen, Zahlungsbelege per E-Mail versenden, Auszahlungen abwickeln oder fehlgeschlagene Zahlungen erneut durchführen.
Testzahlungen im Dashboard anzeigen.
Benutzerdefinierter Code
Erstellen Sie einen Webhook-Handler, um Ereignisse zu überwachen und benutzerdefinierte asynchrone Zahlungsabläufe zu erstellen. Mit der Stripe-CLI können Sie Ihre Webhook-Integration lokal testen und Fehler beheben.
Erfahren Sie, wie Sie einen benutzerdefinierten Webhook erstellen.
Integration testen
Legen Sie in einer Sandbox payment_
auf die folgenden Werte fest, wenn Sie stripe.confirmMultibancoPayment aufrufen, um verschiedene Szenarien zu testen.
Beschreibung | |
---|---|
| Simuliert einen Multibanco-Gutschein, den ein Kunde/eine Kundin bezahlt. Der Webhook Beispiel: irgendetwas@example.com |
| Simuliert einen Multibanco-Gutschein, den ein Kunde/eine Kundin sofort bezahlt. Der Webhook Beispiel: succeed_immediately@example.com |
| Simuliert einen Multibanco-Gutschein, der sofort abläuft. Der Webhook Beispiel: expire_immediately@example.com |
| Simuliert einen Multibanco-Gutschein, der abläuft, bevor ein Kunde/eine Kundin bezahlt. Der Webhook Beispiel: expire_with_delay@example.com |
| Simuliert einen Multibanco-Gutschein, der nie erfolgreich ist. Der Webhook Beispiel: fill_never@example.com |
Ablaufdatum
Multibanco-Gutscheine laufen am expires_
UNIX-Zeitstempel in next_action.multibanco_display_details.expires_at ab, d. h. 7 Tage, nachdem Sie den Gutschein erstellt haben. Kunden/Kundinnen können einen Multibanco-Gutschein nicht bezahlen, nachdem er abgelaufen ist. Nach Ablauf geht der Status des PaymentIntent von requires_
in processing
über, und Stripe sendet ein payment_intent.processing-Ereignis.
Der PaymentIntent verbleibt für eine Pufferzeit von 4 Tagen im Status processing
, um mögliche abgeschlossene Verzögerungen von Zahlungsbestätigungen aufgrund von Banküberweisungsverzögerungen zu berücksichtigen. Wenn die Multibanco-Zahlung nicht innerhalb der Pufferzeit abgeschlossen wird, wechselt der Status des PaymentIntent zu requires_
und Stripe sendet das Ereignis payment_intent.payment_failed. Wenn Sie die Gelder des Kunden/der Kundin nach der Pufferzeit erhalten, leitet Stripe automatisch den Rückerstattungsprozess für den falsch bezahlten Betrag ein.
Stornierung
Sie können Multibanco-Gutscheine über PaymentIntent stornieren stornieren. Anschließend sendet Stripe ein payment_intent.canceled-Ereignis.
Wenn Gelder eines Kunden/einer Kundin für einen stornierten Multibanco-Gutschein eingehen, leitet Stripe automatisch den Rückerstattungsvorgang für den falsch bezahlten Betrag ein.
Notiz
Wenn Sie eine ausstehende Zahlung stornieren, werden die ursprünglichen Anweisungen für den Gutschein ungültig. Wenn Sie eine ausstehende Multibanco-Zahlung stornieren, informieren Sie Ihre Kundin/Ihren Kunden.
Wenn Sie einen PaymentIntent mit dem Status requires_
erfolgreich erneut bestätigen, erstellet Stripe neue Gutscheinanweisungen und eine neue hosted_
. Sie müssen Ihre Kundinnen/Kunden darüber in Kenntnis setzen.
Rückerstattungen
Erfahren Sie mehr über Multibanco-Rückerstattungen.