Eine Klarna-Zahlung annehmen
Erfahren Sie, wie Sie Klarna, eine globale Zahlungsmethode für "jetzt kaufen, später bezahlen", akzeptieren können.
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.
Stripe-Nutzer/innen können die Payment Intents API – einen einzelnen Integrationspfad zum Erstellen von Zahlungen mit jeder unterstützten Zahlungsmethode – dazu verwenden, Klarna-Zahlungen von Kundinnen/Kunden in den unterstützten Ländern anzunehmen.
Klarna ist eine Zahlungsmethode für die einmalige Nutzung mit sofortiger Benachrichtigung, bei der Kundinnen/Kunden ihre Zahlung authentifizieren müssen. Kundinnen/Kunden werden auf eine Klarna-Seite weitergeleitet, auf der sie zwischen mehreren Zahlungsoptionen (sofortige vollständige Zahlung, Ratenzahlung oder verzögerter Zahlung) wählen können. Wenn die Kundin/der Kunde die Bedingungen akzeptiert, garantiert Klarna, dass die Gelder für den Kunden/die Kundin verfügbar sind und überweist sie auf Ihr Stripe-Konto. Die Kundinnen/Kunden zahlen Klarna die Gelder entsprechend der von ihnen gewählten Zahlungsoption zurück.
Notiz
Bevor Sie mit der Integration beginnen, vergewissern Sie sich, dass Ihr Konto für Klarna geeignet ist. Dies können Sie in Ihren Einstellungen für Zahlungsmethoden prüfen.
Stripe einrichtenServerseitig
Zunächst benötigen Sie ein Stripe-Konto. Jetzt registrieren.
Nutzen Sie unsere offiziellen Bibliotheken für den Zugriff auf die Stripe-API aus Ihrer Anwendung heraus:
PaymentIntent erstellenServerseitig
Ein PaymentIntent ist ein Objekt, das Ihre Absicht, eine Kundenzahlung einzuziehen, darstellt und den gesamten Zahlungsvorgang dokumentiert. Erstellen Sie zuerst einen PaymentIntent
auf Ihrem Server:
Wenn Sie bereits eine Integration mit der Payment Intents API haben, fügen Sie klarna
zur Liste der Zahlungsmethoden für Ihren PaymentIntent
hinzu.
Klarna benötigt nur die Währung des Kunden/der Kundin. Wenn Sie den optionalen Parameter Versand übergeben, stellen Sie sicher, dass die folgenden Felder definiert und nicht leer sind: name
, address.
, city
, country
und postal_
.
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 sendenClientseitig
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/basil/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 aus Schritt 2. Dies unterscheidet sich von Ihren API-Schlüsseln, die API-Anfragen von Stripe authentifizieren.
Achten Sie aber weiterhin 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 der Kundin/dem Kunden selbst zugänglich gemacht werden.
Verwenden Sie stripe.confirmKlarnaPayment, um die Weiterleitung von Ihrer Seite zu verarbeiten und die Zahlung zu ermöglichen. Fügen Sie dieser Funktion ein return_url hinzu, um das Ziel anzugeben, an das Stripe-Nutzer/innen weitergeleitet werden sollen, nachdem sie die Zahlung auf der Website oder in der Klarna-App durchgeführt haben.
Auf der Zahlungsseite von Klarna wählt die Kundin/der Kunde eine der in ihrem/seinem Markt verfügbaren Zahlungsoptionen aus. In der Tabelle auf der Übersichtsseite finden Sie eine Übersicht über die Verfügbarkeit in den einzelnen Märkten. Sie können die Zahlungsoptionen auf der Klarna-Zahlungsseite nicht einschränken oder vorab auswählen. Wenn Sie den Kundinnen/Kunden diese Wahl überlassen, maximieren Sie ihre Möglichkeiten, Transaktionen mit Ihnen durchzuführen.
// 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.
Einzelheiten zur Klarna-Zahlungsoption, die der Kunde/die Kundin für die Abbuchung ausgewählt hat, finden Sie in der charge
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.
In der Eigenschaft payment_method_details finden Sie auch das Gebietsschema, das für die Lokalisierung der Zahlungsseite von Klarna verwendet wird.
{ "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",
Klarna-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 Ratenbegrenzungen, die über die API-weiten Ratenbegrenzungen von Stripe hinausgehen. Diese Grenzwerte können je nach Form der von Ihnen gestellten API-Anfragen unterschiedlich sein. Wenn Sie mehr als etwa 360 Anfragen pro Minute stellen, kann es im Allgemeinen zu einer gewissen Ratenbegrenzung in Form von Antworten mit dem HTTP-Statuscode 400
oder 402
kommen. Bitte kontaktieren Sie uns für weitere Einzelheiten, wenn Sie befürchten, dass Ihre Nutzung diese Werte erreichen könnte, da Klarna diese Limits möglicherweise auf Fallbasis 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. |