Eine Affirm-Zahlung annehmen
So akzeptieren Sie die "Jetzt kaufen, später bezahlen"-Zahlungsmethode Affirm.
Stripe-Nutzer/innen können die Payment Intents API – einen zentralen Integrationspfad für die Erstellung von Zahlungen mit einer beliebigen unterstützten Methode – verwenden, um Zahlungen per Affirm von Kundinnen/Kunden aus folgenden Ländern anzunehmen:
- Kanada
- Vereinigte Staaten
Die Annahme von Affirm-Zahlungen auf Ihrer Website umfasst Folgendes:
- Objekt zur Zahlungsverfolgung erstellen
- Informationen zur Zahlungsmethode erfassen
- Zahlung zur weiteren Verarbeitung an Stripe übermitteln
- Umgang mit der Affirm-Weiterleitung und relevanten Webhook-Ereignissen
Stripe einrichtenServerseitig
Erstellen Sie zunächst ein Stripe-Konto oder melden Sie sich an.
Verwenden Sie unsere offiziellen Bibliotheken, um von Ihrer Anwendung aus auf die Stripe API zuzugreifen:
PaymentIntent erstellenServerseitig
Ein PaymentIntent ist ein Objekt, das Ihre Absicht, eine Kundenzahlung einzuziehen, darstellt und den gesamten Zahlungsvorgang dokumentiert.
Erstellen Sie zunächst einen PaymentIntent
auf Ihrem Server und geben Sie den einzuziehenden Betrag und die Währung an. Wenn Sie bereits eine Integration mit der Payment Intents API haben, fügen Sie Affirm zur Liste der Zahlungsmethoden-Typen für Ihren PaymentIntent
hinzu:
Sie können auch das Payment Element verwenden und Zahlungsmethoden über das Dashboard verwalten. Stripe handhabt die Rückgabe geeigneter Zahlungsmethoden basierend auf Faktoren wie Betrag, Währung und Zahlungsablauf der Transaktion. Weitere Informationen finden Sie unter Zahlung akzeptieren.
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 erfassen und weitergebenClientseitig
Wenn Kundinnen/Kunden über das „Click to Pay“-Verfahren mit Affirm bezahlen, 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.
Fügen Sie das Stripe.js-Skript auf Ihrer Bezahlseite ein, indem Sie es zum Header der HTML-Datei hinzufügen.
<head> <title>Checkout</title> <script src="https://js.stripe.com/v3/"></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 1. Dieses unterscheidet sich von Ihren API-Schlüsseln, mit denen Anfragen der Stripe-API authentifiziert werden.
Gehen Sie vorsichtig mit dem Client-Geheimnis um, da es die Zahlung abschließen kann. Sie dürfen nicht protokolliert, in URLs eingebettet oder Personen außer dem Kunden selbst zugänglich gemacht werden.
Zahlungserfolgsquoten mit zusätzlichen Details verbessern
Wir empfehlen die Übergabe von Versand- und Abrechnungs-Details, um die Konversionsrate zu verbessern. Dies ist jedoch nicht erforderlich.
In diesem Integrationsleitfaden wird vorgeschlagen, die Versand- und Rechnungsinformationen auf dem Client zu übergeben, nachdem der/die Kund/in seine/ihre Zahlungsmethode ausgewählt hat.
Wenn Sie diese Felder übergeben, sollte die Versandadresse gültige Daten in den Feldern line1
, city
, state
, postal_
und country
enthalten. Ebenso müssen Abrechnungsdetails gültige Daten in den Feldern line1
, city
, state
, postal_
und country
aufweisen.
PaymentIntent bestätigen
Verwenden Sie stripe.
um die Weiterleitung von Ihrer Seite zu verarbeiten und die Zahlung zu ermöglichen. Sie müssen außerdem eine return_url übergeben, um das Ziel anzugeben, an das Nutzer/innen weitergeleitet werden, nachdem sie die Zahlung auf der Website oder in der App von Affirm durchgeführt haben.
Auf der Zahlungsseite von Affirm wählen die Kund/innen die ihnen zur Verfügung stehenden Zahlungsoptionen aus. Weitere Informationen finden Sie auf der Übersichtsseite. Sie können die Zahlungsoptionen auf der Affirm-Zahlungsseite nicht einschränken oder vorab auswählen. Wenn Sie den Kund/innen diese Wahl überlassen, maximieren Sie ihre Möglichkeiten, Transaktionen mit Ihnen durchzuführen.
// Redirects away from the client stripe.confirmAffirmPayment( '{{PAYMENT_INTENT_CLIENT_SECRET}}', { payment_method: { // Billing information is optional but recommended to pass in. billing_details: { email: 'jenny@rosen.com', name: 'Jenny Rosen', address: { line1: '1234 Main Street', city: 'San Francisco', state: 'CA', country: 'US', postal_code: '94111', }, }, }, // Shipping information is optional but recommended to pass in. shipping: { name: 'Jenny Rosen', address: { line1: '1234 Main Street', city: 'San Francisco', state: 'CA', country: 'US', postal_code: '94111', }, }, // Return URL where the customer should be redirected after the authorization. return_url: 'https://example.com/checkout/complete', } ).then(function(result) { if (result.error) { // Inform the customer that there was an error. console.log(result.error.message); } });
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_ | The client secret of the PaymentIntent object. For subscription integrations, this client_secret is also exposed on the Invoice object via confirmation_ |
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.
Affirm-Integration testen
Testen Sie Ihre Affirm-Integration mit Ihren Test-API-Schlüsseln, indem Sie die Weiterleitungsseite anzeigen. Sie können die erfolgreiche Zahlung testen, indem Sie die Zahlung auf der Weiterleitungsseite authentifizieren. Der PaymentIntent wechselt von requires_
zu succeeded
.
Um den Fall zu testen, dass sich der/die Nutzer/in nicht authentifizieren kann, verwenden Sie Ihre Test-API-Schlüssel und rufen Sie die Weiterleitungsseite auf. Klicken Sie auf der Weiterleitungsseite in der oberen linken Ecke auf X. Der PaymentIntent wechselt von requires_
zu requires_
.
Bei einer Weiterleitung an die Affirm-Sandbox fragt Sie Affirm möglicherweise nach den letzten 4 Ziffern Ihrer SSN. Affirm schlägt vor, '0000'
oder '5678'
zu verwenden.
Fehlgeschlagene Zahlungen
Affirm berücksichtigt mehrere Faktoren bei der Entscheidung, ob eine Transaktion akzeptiert oder abgelehnt wird (zum Beispiel die Dauer der Nutzung von Affirm durch den/die Käufer/in, den ausstehenden Betrag, den der/die Kund/in zurückzahlen muss und den Wert der aktuellen Bestellung).
Bieten Sie in Ihrem Bezahlvorgang immer weitere Zahlungsoptionen wie card
an, da Affirm-Zahlungen eine höhere Ablehnungsrate haben als viele andere Zahlungsmethoden. In diesen Fällen wird die PaymentMethod getrennt, und der Status des PaymentIntent-Objekts wechselt automatisch zu requires_
.
Anders als bei einer abgelehnten Zahlung wird bei einem Affirm-PaymentIntent mit dem Status requires_
erwartet, dass die Kundinnen/Kunden die Zahlung innerhalb von 12 Stunden nach Weiterleitung zur Affirm-Website abschließen. Wenn nach 12 Stunden keine Aktion erfolgt ist, wird die PaymentMethod getrennt und der Status des PaymentIntent-Objekts wechselt automatisch 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.
Fehlercodes
Im Folgenden finden Sie die häufigsten Fehlercodes und die entsprechenden empfohlenen Maßnahmen:
Fehlercode | Empfohlene Maßnahme |
---|---|
payment_ | Ein allgemeiner Fehler, der darauf hinweist, dass der Bezahlvorgang mit Affirm fehlgeschlagen ist. Zusätzliche Informationen können im Grund für das Zahlungsergebnis verfügbar sein. |
payment_ | Affirm hat die Kundenzahlung abgelehnt. Als nächsten Schritt muss sich der Kunde/die Kundin an Affirm wenden, um weitere Informationen einzuholen. |
payment_ | Der Kunde/die Kundin hat die Zahlung auf der Zahlungsseite von Affirm nicht abgeschlossen und die Zahlungssitzung ist abgelaufen. Payment Intents, die nicht erfolgreich autorisiert wurden, lassen Stripe 12 Stunden nach der ersten Erstellung des Bezahlvorgangs automatisch ablaufen. |
payment_ | Bei Affirm ist ein Fehler im Zusammenhang mit der Dienstleistung aufgetreten und kann die Anfrage nicht abschließen. Versuchen Sie es zu einem späteren Zeitpunkt erneut. |
amount_ | Geben Sie einen Betrag innerhalb der Standard-Transaktionslimits von Affirm ein. |
amount_ | Geben Sie einen Betrag innerhalb der Standard-Transaktionslimits von Affirm ein. |
Bei einigen Fehlern können zusätzliche Erkenntnisse im Grund für das Zahlungsergebnis enthalten sein:
Ergebnisursachen | Was bedeutet das? |
---|---|
generic_ | Der Standardgrund für das Ergebnis eines Zahlungsfehlers. Dies weist in der Regel darauf hin, dass der Partner die Zahlung abgelehnt hat (z. B. aufgrund unzureichender Deckung), dass die Bank die Zahlung abgelehnt hat, dass die Transaktion einen Kauf mit hohem Risiko beinhaltete oder auf einen ähnlichen Grund. In diesen Fällen erhält Stripe möglicherweise nicht immer einen Ablehnungsgrund. |
affirm_ | Entweder hat der Kunde/die Kundin den Bezahlvorgang mit Affirm explizit abgebrochen oder Affirm hat den Kreditanspruch des Kunden/der Kundin abgelehnt. Stripe kann den Unterschied zwischen diesen beiden Ereignistypen nicht erkennen. |