Eine Klarna-Zahlung annehmen
Erfahren Sie, wie Sie Klarna, eine globale Zahlungsmethode für "jetzt kaufen, später bezahlen", akzeptieren können.
Um eine fortgeschrittene Integration zu erstellen, die komplexe Zahlungsabläufe verarbeitet und Klarna-Zahlungen akzeptiert, können Sie Stripe Elements verwenden, z. B. das Payment-Element und das Express-Checkout-Element. Das Payment Element akzeptiert über 40 Zahlungsmethoden, validiert Eingaben und behandelt Fehler. Das Express Checkout Element bietet One-Click-Zahlungsmethoden-Schaltflächen für Klarna und andere Zahlungsmethoden.
Folgen Sie dem Schnellstart, um zu erfahren, wie Sie ein benutzerdefiniertes Stripe-Zahlungsformular in Ihre Website einbetten..
Dieser Leitfaden erläutert die empfohlenen Schritte zum Umgang mit Klarna-Zahlungen in einer Integration, die Elements und die Payment Intents API verwendet.
Notiz
Bevor Sie mit der Integration beginnen, stellen Sie sicher, dass Ihr Konto für Klarna berechtigt ist. Überprüfen Sie dazu Ihre Zahlungsmethoden-Einstellungen.
Manuelles Auflisten von Zahlungsmethoden
Wir empfehlen die Verwendung von dynamischen Zahlungsmethoden, bei denen Stripe die Logik übernimmt, um jeder Kundin/jedem Kunden die jeweils relevantesten verfügbaren Zahlungsmethoden anzuzeigen und so die Konversion zu maximieren. Wenn Sie sich dafür entscheiden, Zahlungsmethoden manuell aufzulisten, geben Sie klarna in der Liste payment_method_types an, wenn Sie einen PaymentIntent erstellen.
Erstellen Sie ein PaymentIntent
Um die Akzeptanzraten zu maximieren und angefochtene Zahlungen zu reduzieren, übergeben Sie beim Erstellen eines PaymentIntent für Klarna-Zahlungen die folgenden Parameter:
- Versand: Stellen Sie sicher, dass diese Felder definiert und nicht leer sind:
name,address.,line1 city,countryundpostal_.code - amount_details.line_items
- payment_method_data.billing_details: Stellen Sie sicher, dass diese Felder definiert und nicht leer sind:
Name,address.,line1 Stadt,Landundpostal_.code
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.
Zahlung an Stripe senden
In diesem Schritt führen Sie Klarna-Zahlungen auf dem Client mit Stripe.js durch.
Stripe.js einrichten
Wenn Kund/innen über das „Click to Pay“-Verfahren mit Klarna bezahlen, empfehlen wir die Verwendung von Stripe.js, um die Zahlungen an Stripe zu übermitteln. Stripe.js ist unsere grundlegende JavaScript-Bibliothek für die Erstellung von Zahlungsabläufen. Sie verarbeitet automatisch komplexe Szenarien wie die nachfolgend beschriebene Weiterleitung und ermöglicht die unkomplizierte Erweiterung Ihrer Integration durch weitere Zahlungsmethoden in der Zukunft. Binden Sie das Stripe.js-Skript in Ihre Bezahlseite ein, indem Sie es zum Header der HTML-Datei hinzufügen.
<head> <title>Checkout</title> <script src="https://js.stripe.com/clover/stripe.js"></script> </head>
Erstellen Sie auf Ihrer Zahlungsseite 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 var stripe = Stripe();'pk_test_TYooMQauvdEDq54NiTphI7jx'
Anstatt das gesamte PaymentIntent-Objekt an den Client zu senden, verwenden Sie dessen Client-Geheimnis. (Dies unterscheidet sich von Ihren API-Schlüsseln, die Stripe-API-Anfragen authentifizieren.)
Stellen Sie einen vorsichtigen Umgang mit dem Client-Geheimnis sicher, da mit ihm die Zahlung abgeschlossen werden kann. Protokollieren Sie es nicht, betten Sie es nicht in URLs ein und geben Sie es nur an Kundinnen und Kunden weiter.
Verwenden Sie stripe.confirmKlarnaZahlung, um die Weiterleitung von Ihrer Seite zu steuern und die Zahlung abzuschließen. Fügen Sie dieser Funktion eine return_url hinzu, um anzugeben, wohin Stripe die Kundin/den Kunden weiterleiten soll, nachdem die Zahlung auf der Klarna-Website oder in der mobilen Anwendung abgeschlossen ist.
Auf der Bezahlseite von Klarna wählt die Kundin/der Kunde aus den in ihrem/seinem Markt verfügbaren Zahlungsoptionen. Informationen zur Verfügbarkeit nach Markt finden Sie in der Tabelle auf der Übersichtsseite. Sie können die Zahlungsoptionen auf der Klarna-Zahlungsseite nicht einschränken oder vorab auswählen – diese Entscheidung den Kundinnen und Kunden zu überlassen, maximiert die Chance, dass sie bei Ihnen einen Kauf tätigen.
// Redirects away from the client const {error} = await stripe.confirmKlarnaPayment( '{{PAYMENT_INTENT_CLIENT_SECRET}}',{ return_url: 'https://example.com/checkout/complete', } ); if (error) { // Inform the customer that there was an error. }
Wenn Ihr Kunde/Ihre Kundin eine Zahlung übermittelt, leitet Stripe ihn an die return_ weiter und fügt die folgenden URL-Abfrageparameter ein. Die Rückgabeseite kann diese nutzen, um den Status des PaymentIntent abzurufen, damit der Kunde/die Kundin den Zahlungsstatus anzeigen kann.
Wenn Sie die return_ angeben, können Sie auch Ihre eigenen Abfrageparameter für die Verwendung auf der Rückgabeseite anhängen.
| Parameter | Beschreibung |
|---|---|
payment_ | Die eindeutige ID für den PaymentIntent. |
payment_ | Das Client-Geheimnis des PaymentIntent-Objekts. Bei Abonnementintegrationen wird dieses client_secret auch über confirmation_ im Invoice-Objekt sichtbar gemacht |
Wenn Kundinnen und Kunden auf Ihre Seite weitergeleitet werden, können Sie payment_ nutzen, um den PaymentIntent abzufragen und Ihren Kundinnen und Kunden den Transaktionsstatus anzuzeigen.
Details zur von der Kundin/vom Kunden gewählten Klarna-Zahlungsoption finden Sie in charge unter der Eigenschaft payment_method_details. Es gibt vier mögliche Werte: pay_, pay_, pay_ und pay_. Weitere Informationen zu diesen Optionen finden Sie auf unserer Klarna-Übersichtsseite.
Sie können die für die Lokalisierung der Klarna-Zahlungsseite verwendete Sprache auch unter der Eigenschaft payment_method_details finden.
{ "charges": { "data": [ { "payment_method_details": { "klarna": { "payment_method_category": "pay_in_installments", "preferred_locale": "en-US" }, "type": "klarna" }, "id": "src_16xhynE8WzK49JbAs9M21jaR", "object": "source", "amount": 1099, "client_secret": "src_client_secret_UfwvW2WHpZ0s3QEn9g5x7waU",
Ihre Integration testen
Nachfolgend haben wir speziell ausgewählte Testdaten für die derzeit unterstützten Kundenländer zusammengestellt. In einer Sandbox nutzt Klarna die angegebene E-Mail-Adresse, um eine Transaktion zu genehmigen oder abzulehnen.
Für Produktionstests können Sie einen Betrag von 3500 in Ihrer Landeswährung verwenden, um alle Klarna-Zahlungsoptionen außer Finanzierung zu testen. Wenn Sie zum Beispiel „In 3 Raten bezahlen“ in Italien testen möchten, können Sie eine Transaktion von 35,00 EUR verwenden.
Zwei-Schritte-Authentifizierung
Jede 6-stellige Zahl ist ein gültiger Code für die Zwei-Schritte-Authentifizierung. Verwenden Sie 999999, damit die Authentifizierung fehlschlägt.
Rückzahlungmethode
Innerhalb des Klarna-Ablaufs können Sie die folgenden Testwerte verwenden, um verschiedene Rückzahlungsarten auszuprobieren:
| Typ | Wert |
|---|---|
| Lastschriftverfahren | DE11520513735120710131 |
| Banküberweisung | Demo-Bank |
| Kreditkarte |
|
| Debitkarte |
|
Fehlgeschlagene Zahlungen
Klarna berücksichtigt mehrere Faktoren bei der Entscheidung, ob eine Transaktion akzeptiert oder abgelehnt wird (zum Beispiel die Dauer der Nutzung von Klarna durch den/die Käufer/in, den ausstehenden Betrag, den der/die Kund/in zurückzahlen muss, oder den Wert der aktuellen Bestellung).
Wenn Kund/innen eine Zahlungsmethode mit Zahlungsaufschub wählen, führt Klarna eine Risikoeinschätzung durch, bevor die Transaktion akzeptiert wird. Klarna kann die Transaktion ablehnen, wenn das Ergebnis der Risikoeinschätzung nicht zufriedenstellend ist, es sich um einen hohen Transaktionsbetrag handelt oder der Kunde/die Kundin hohe Außenstände hat. Wir empfehlen daher, dass Sie bei Ihrem Bezahlvorgang zusätzliche Zahlungsoptionen wie card angeben. In diesen Fällen wird die PaymentMethod getrennt und der Status des PaymentIntent-Objekts wechselt automatisch zu requires_.
Es wird erwartet, dass Kundinnen/Kunden die Zahlung innerhalb von 48 Stunden nach Weiterleitung zur Klarna-Website abschließen. Wenn nach 48 Stunden keine Aktion erfolgt ist, wird die PaymentMethod getrennt, und der Status des PaymentIntent-Objekts wechselt automatisch von requires_ zu requires_.
Teilen Sie Ihren Kund/innen in diesen Fällen mit, dass sie es mit einer anderen Zahlungsoption versuchen sollten, die in Ihrem Bezahlvorgang zur Verfügung gestellt wird.
Ratenbegrenzungen von Klarna
API-Anfragen an Klarna unterliegen zusätzlichen Begrenzungen, die über die API-weiten Begrenzungen von Stripe hinausgehen. Diese Grenzwerte können je nach Form der API-Anforderungen, die Sie stellen, unterschiedlich sein. Wenn Sie mehr als 50 Anforderungen pro Sekunde stellen, kann es im Allgemeinen zu einer Begrenzung in Form von Antworten mit HTTP-Statuscode 400 oder402 kommen.Kontaktieren Sie uns wenn Sie befürchten, dass Ihr Nutzung diese Werte erreichen könnte, da Klarna diese Grenzwerte von Fall zu Fall eventuell erhöhen kann.
Fehlermeldungen
Fehlgeschlagene Klarna-Zahlungen geben üblicherweise einen der folgenden Fehlercodes zurück. Diese Codes werden im API-Objekt last_payment_error angezeigt.
Vorsicht
Vor der API-Version 2023-08-16 wurde jeder Klarna-Fehler als payment_intent_authentication_failure gemeldet. Stellen Sie sicher, dass Ihre API-Version auf dem neuesten Stand ist, um die unten aufgeführten detaillierten Fehler anzuzeigen.
| Fehlercode | Erklärung |
|---|---|
| payment_method_customer_decline | Die Kundin/der Kunde hat den Bezahlvorgang auf der Seite von Klarna abgebrochen. |
| payment_method_provider_decline | Klarna hat die Kundenzahlung abgelehnt. |
| payment_intent_payment_attempt_expired | Die Kundin/der Kunde hat den Bezahlvorgang auf der Seite von Klarna nicht abgeschlossen und die Zahlungssitzung ist abgelaufen. |
| payment_method_not_available | Beim Aufruf von Klarna ist ein unerwarteter Fehler aufgetreten. |
Optionale Anpassungen
Optional können Sie verschiedene Anpassungen für Klarna-Zahlungsabläufe implementieren (z. B. Trennung von Autorisierung und Einzug von Geldern) sowie für Kundeninteraktionen (z. B. Umgang mit Weiterleitungen).
Separate Autorisierung und Erfassung
Klarna unterstützt die getrennte Autorisierung und Erfassung. Wenn es zu einer Verzögerung zwischen der Zahlung und der Auslieferung des Kaufs an Ihre Kundinnen/Kunden kommt, sollten Sie die Zahlung zuerst zu autorisieren und später erfassen. Zum Zeitpunkt der Erfassung sendet Klarna eine Abrechnung an den Kunden/die Kundin und leitet die Fälligkeitsfristen für alle nachfolgenden Zahlungen ein, die er/sie leisten muss. Eine autorisierte Klarna-Zahlung muss innerhalb von 28 Tagen nach der Autorisierung erfasst werden. Andernfalls wird die Autorisierung automatisch storniert, und es ist nicht mehr möglich, diese Zahlung zu erfassen.
Stripe anweisen, nur die Autorisierung durchzuführen
Um anzugeben, dass Sie Autorisierung und Erfassung trennen möchten, legen Sie capture_method beim Erstellen des PaymentIntent auf
manualfest. Dieser Parameter weist Stripe an, nur den Betrag auf dem Klarna-Konto der Kundin/des Kunden zu autorisieren.Die Gelder erfassen
Nachdem die Autorisierung erfolgreich war, wechselt der PaymentIntent-Status zu
requires_. Um die autorisierten Gelder einzuziehen, senden Sie eine PaymentIntent-Capture-Anfrage. Standardmäßig wird der insgesamt autorisierte Betrag eingezogen – Sie können nicht mehr als diesen Betrag, aber durchaus weniger erfassen.capture Optional Autorisierung stornieren
Klarna rechnet alle autorisierten Zahlungen auf das gesamte Kaufkraftlimit des Kunden/der Kundin bei Klarna an. Stellen Sie sicher, dass Sie alle autorisierten Zahlungen, die Sie nicht erfüllen können (z. B. wenn die Ware nicht versendet werden kann), sofort stornieren, sobald dies erkennbar ist.
Klarna-Weiterleitung manuell handhaben
Wir empfehlen, die Abwicklung von Klarna-Weiterleitungen und -Zahlungen auf Client-Seite mit confirmKlarnaPayment Stripe.js zu überlassen. Wenn Sie Stripe.js verwenden, können Sie Ihre Integration um weitere Zahlungsmethoden erweitern. Sie können Ihre Kundinnen/Kunden jedoch mit den folgenden Schritten auch manuell an Ihren Server weiterleiten:
Erstellen und bestätigen Sie einen PaymentIntent vom Typ
klarna. Sie müssen die Weiterleitungs-URL nach der Zahlung für Ihre Kundinnen/Kunden im Feldreturn_angeben. Sie können Ihre eigenen Abfrageparameter in dieser URL angeben und die endgültige URL des Weiterleitungsablaufs wird diese enthalten.url Der erstellte
PaymentIntenthat den Statusrequires_, und der Typ füraction next_istaction redirect_.to_ url { "status": "requires_action", "next_action": { "type": "redirect_to_url", "redirect_to_url": { "url": "https://hooks.stripe.com/...", "return_url": "https://example.com/checkout/complete" } }, "id": "pi_1G1sgdKi6xqXeNtkldRRE6HT", "object": "payment_intent", "amount": 1099,Leiten Sie den/die Kund/in an die in der Eigenschaft
next_angegebene URL weiter. Das folgende Codebeispiel ist nur eine Annäherung und kann sich vom Weiterleitungsverfahren in Ihrem Web-Framework unterscheiden.action. redirect_ to_ url. url
Bei Abschluss des Authentifizierungsvorgangs werden Kundinnen/Kunden an die in Schritt 1 konfigurierte return_ weitergeleitet. Die URL-Abfrageparameter payment_ und payment_ sind enthalten. Wenn return_ bereits Abfrageparameter enthält, werden diese ebenfalls beibehalten.
Wir empfehlen die Verwendung von Webhooks, um den Zahlungsstatus zu bestätigen.
Ereignisse nach der Zahlung verarbeiten
Stripe übermittelt ein payment_intent.succeeded-Ereignis, wenn die Zahlung abgeschlossen ist. Verwenden Sie im Dashboard einen Webhook oder eine Partnerlösung, um diese Ereignisse zu empfangen und Aktionen auszuführen (Versenden einer Bestellbestätigung per E-Mail an die Kund/innen, Erfassen des Verkaufs in einer Datenbank oder Einleiten des Versandablaufs).
Überwachen Sie diese Ereignisse, statt auf einen Callback vom Client zu warten. Auf dem Client könnte der Kunde/die Kundin das Browserfenster schließen oder die App beenden, bevor der Callback erfolgt ist und böswillige Clients könnten die Antwort manipulieren. Wenn Sie Ihre Integration so einrichten, dass asynchrone Ereignisse überwacht werden, hilft Ihnen dies auch dabei, in Zukunft mehr Zahlungsmethoden zu akzeptieren. Hier erhalten Sie Informationen zu den Unterschieden zwischen allen unterstützten Zahlungsmethoden.
Manuelles Bearbeiten von Ereignissen im Dashboard
Verwenden Sie das Dashboard, um Ihre Testzahlungen im Dashboard anzuzeigen, E-Mail-Belege zu senden, Auszahlungen zu bearbeiten oder fehlgeschlagene Zahlungen erneut zu versuchen.
Erstellen eines benutzerdefinierten Webhooks
Erstellen Sie einen benutzerdefinierten Webhook-Handler, um auf Ereignisse zu hören und eigene asynchrone Zahlungsabläufe zu implementieren. Testen und debuggen Sie Ihre Webhook-Integration lokal mit der Stripe CLI.
Integrieren einer vorgefertigten App
Bearbeiten Sie häufige Unternehmensereignisse, wie z. B.Automatisierung oderMarketing und Vertrieb, indem Sie eine Partneranwendung integrieren.
Anpassung der Klarna-Zahlungsseite
Klarna-Formular vorausfüllen
Wenn die Kundin/der Kunde sich dafür entscheidet, mit einer aufgeschobenen Zahlungsoption von Klarna zu zahlen (später bezahlen, Ratenzahlungen oder Finanzierung), erhebt Klarna ausreichende Informationen für die Risikobewertung und Genehmigung. Welche Informationen erforderlich sind, hängt vom Land der Kundin/des Kunden ab. In den meisten europäischen Ländern sind dies die vollständigen Rechnungsdetails und das Geburtsdatum. Sie können diese Informationen über die API übergeben, sodass das Formular vorausgefüllt ist, wenn Ihre Kundin/Ihr Kunde auf der Seite ankommt.

Eine Klarna-Zahlungsseite, die mit Rechnungsdaten aus der API vorausgefüllt und so angepasst wurde, dass sie für eine/n Kund/in in Deutschland auf Englisch dargestellt wird
Posten zum PaymentIntent hinzufügen
Einheitliche Einzelposten mit Klarna
Um die Genehmigungsraten bei der Integration mit Klarna zu optimieren, fügen Sie line_-Daten hinzu, um darzustellen, was sich im Warenkorb eines Käufers/einer Käuferin befindet. Informationen zum frühzeitigen Zugriff finden Sie unter Zahlungsposten.
Mitteilungen über Zahlungsmethoden auf Ihrer Website anzeigen
Das Payment Method Messaging Element ist eine integrierbare Komponente der Nutzeroberfläche, die Ihre Kundinnen/Kunden direkt auf Ihren Produkt-, Warenkorb- oder Zahlungsseiten darüber informiert, welche „Jetzt kaufen, später bezahlen“-Zahlungsoptionen ihnen beim Bezahlvorgang zur Verfügung stehen.
Informationen zum Hinzufügen des Payment Method Messaging Element zu Ihrer Website finden Sie unter Payment Method Messaging anzeigen.
