Eine Klarna-Zahlung annehmen
Erfahren Sie, wie Sie Klarna, eine globale Zahlungsmethode für "jetzt kaufen, später bezahlen", akzeptieren können.
Wenn Ihre App Klarna akzeptiert, wird Kund/innen für die Authentifizierung der Zahlung eine Webansicht angezeigt. Anschließend kehrt der/die Kund/in zu Ihrer App zurück und Sie können sofort bestätigen, ob die Zahlung erfolgreich war oder fehlgeschlagen ist.
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 einrichtenServerseitigClientseitig
Zunächst benötigen Sie ein Stripe-Konto. Registrieren Sie sich jetzt.
Serverseitig
Diese Integration erfordert Endpoints auf Ihrem Server, die mit der Stripe-API kommunizieren können. Nutzen Sie diese offiziellen Bibliotheken für den Zugriff auf die Stripe-API von Ihrem Server aus:
Clientseitig
Das Stripe Android SDK ist Open Source und vollständig dokumentiert.
Um das SDK zu installieren, fügen Sie stripe-android
in den Block dependencies
Ihrer app/build.gradle-Datei ein:
Notiz
Details zur aktuellen SDK-Version und zu vorherigen Versionen finden Sie auf der Seite Releases auf GitHub. Um bei Veröffentlichung eines neuen Release eine Benachrichtigung zu erhalten, beobachten Sie Veröffentlichungen für das jeweilige Repository.
Konfigurieren Sie das SDK mit Ihrem veröffentlichbaren Schlüssel von Stripe so, dass dieser Anfragen an die API stellen kann, wie beispielsweise in Ihrer Unterklasse Application
:
Notiz
Verwenden Sie Ihre Testschlüssel beim Testen und Entwickeln Ihrer App und Ihre Live-Modus-Schlüssel beim Veröffentlichen Ihrer App.
Stripe-Beispiele nutzen auch OkHttp und GSON, um HTTP-Anfragen an einen Server zu stellen.
PaymentIntent erstellenServerseitigClientseitig
Ein PaymentIntent ist ein Objekt, das Ihre Absicht, eine Kundenzahlung einzuziehen, darstellt und den gesamten Zahlungsvorgang dokumentiert.
Clientseitig
Im zurückgegebenen PaymentIntent ist ein Client-Geheimnis enthalten, mit dem der Client den Zahlungsvorgang sicher abschließen kann, anstatt das gesamte PaymentIntent-Objekt zu übergeben. Fordern Sie auf dem Client einen PaymentIntent von Ihrem Server an und speichern Sie dessen Client-Geheimnis.
Zahlung an Stripe sendenClientseitig
Rufen Sie von dem in Schritt 2 erstellten PaymentIntent das Client-Geheimnis ab und rufen Sie die Methode PaymentLauncher bestätigen auf. Dies entspricht einer Webansicht, über die der/die Kund/in die Zahlung durchführen kann. Anschließend wird onActivityResult mit dem Ergebnis der Zahlung aufgerufen.
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.
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 |
|
OptionalGetrennte 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
manual
fest. 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.
OptionalHandhabung von Ereignissen nach der Zahlung
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.
OptionalAnpassung 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
OptionalPosten 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.
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. |