Zukünftige PayPal-Zahlungen einrichten
Erfahren Sie, wie Sie PayPal-Details speichern und später Zahlungen Ihrer Kund/innen akzeptieren.
Richten Sie zukünftige PayPal-Zahlungen ein, um Kundenzahlungsdaten für Abonnements und verzögerte Abbuchungen zu speichern und zukünftige Einkäufe zu optimieren. Erfahren Sie, wie Sie wiederkehrende Zahlungen mit PayPal über Stripe aktivieren und verwenden können.
Wiederkehrende Zahlungen aktivieren
Stripe aktiviert wiederkehrende Zahlungen für die meisten Nutzer/innen automatisch, wenn sie im Stripe-Dashboard PayPal-Zahlungen aktivieren. Aufgrund der Richtlinien und regionalen Einschränkungen von PayPal müssen einige Nutzer/innen wiederkehrende Zahlungen jedoch möglicherweise manuell aktivieren. Dies gilt auch für Nutzer/innen, die ihre Konten vor der Einführung der automatischen Aktivierung eingerichtet haben. So aktivieren Sie wiederkehrende Zahlungen manuell:
Gehen Sie zu Ihren Einstellungen für Zahlungsmethoden.
Klicken Sie auf PayPal > Aktivieren im Abschnitt Wiederkehrende Zahlungen.
Nachdem Sie wiederkehrende Zahlungen aktiviert haben, werden diese im Dashboard als ausstehend angezeigt. In der Regel dauert es bis zu fünf Werktage, bis Sie Zugriff erhalten.
Wenn Ihnen Zugriff gewährt wird, stehen wiederkehrende Zahlungen in Ihren PayPal-Einstellungen zur Verfügung. In Testumgebungen sind wiederkehrende Zahlungen standardmäßig aktiviert.
Verwenden Sie die Setup Intents, um die Details der PayPal-Zahlungsmethode im Voraus zu erfassen und den endgültigen Betrag oder das Zahlungsdatum zu einem späteren Zeitpunkt zu bestimmen. Dies ist nützlich für Folgendes:
- Zahlungsmethoden in einer Wallet speichern, um zukünftige Einkäufe zu optimieren
- Einziehen von Zuschlägen nach Abwicklung einer Dienstleistung
- Kostenlosen Testzeitraum für ein Abonnement starten
Stripe einrichtenServerseitig
Zunächst benötigen Sie ein Stripe-Konto. Registrieren Sie sich jetzt.
Nutzen Sie unsere offiziellen Bibliotheken für den Zugriff auf die Stripe-API über Ihre Anwendung:
Kund/innen vor Einrichtung erstellen oder abrufenServerseitig
Um eine PayPal-Zahlungsmethode für zukünftige Zahlungen zu wiederzuverwenden, muss sie einem Customer-Objekt zugeordnet werden.
Sie sollten ein Customer-Objekt erstellen, wenn Ihre Kund/innen ein Konto bei Ihrem Unternehmen anlegen. Wenn Sie die ID des Customer-Objekts mit Ihrer eigenen Darstellung einer Kundin/eines Kunden verknüpfen, können Sie später die gespeicherten Angaben zur Zahlungsmethode abrufen und verwenden. Wenn Ihre Kund/innen noch kein Konto erstellt haben, können Sie jetzt trotzdem ein Customer-Objekt erstellen und es zu einem späteren Zeitpunkt mit Ihrer eigenen internen Darstellung des Kundenkontos verknüpfen.
SetupIntent erstellenServerseitig
Ein SetupIntent ist ein Objekt, das Ihre Absicht darstellt, die Zahlungsmethode Ihrer Kundinnen/Kunden für zukünftige Zahlungen einzurichten, und die entsprechenden Schritte dokumentiert.
Erstellen Sie einen SetupIntent auf Ihrem Server, wobei die payment_method_types auf paypal festgelegt sind, und geben Sie die ID des Kunden/der Kundin an:
Das SetupIntent-Objekt enthält ein client_secret. Dies ist ein eindeutiger Schlüssel, den Sie auf der Client-Seite an Stripe übergeben müssen, um Ihre Käufer/innen an PayPal weiterzuleiten und Mandate zu autorisieren.
Kund/innen weiterleitenClientseitig
Wenn Kundinnen/Kunden versuchen, ihr PayPal-Konto für zukünftige Zahlungen einzurichten, empfehlen wir die Verwendung von Stripe.js zur Bestätigung des SetupIntent. 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 Erweiterung Ihrer Integration durch zusätzliche Zahlungsmethoden in der Zukunft.
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/clover/stripe.js"></script> </head>
Erstellen Sie einen Instanz von Stripe.js mit dem folgenden JavaScript auf Ihrer Bezahlseite.
// Set your publishable key. Remember to change this to your live publishable key in production! // See your keys here: https://dashboard.stripe.com/apikeys const stripe = Stripe(, {} );'pk_test_TYooMQauvdEDq54NiTphI7jx'
Um die Einrichtung auf der Client-Seite zu bestätigen, übergeben Sie das Client-Geheimnis des SetupIntent-Objekts, das Sie in Schritt 3 erstellt haben.
Das Client-Geheimnis unterscheidet sich von Ihren API-Schlüsseln, die Stripe-API-Anfragen authentifizieren. Dennoch sollte sorgfältig damit umgegangen werden, da damit Zahlungen abgeschlossen werden können. Es darf nicht protokolliert, in URLs eingebettet oder Personen außer den Kund/innen selbst zugänglich gemacht werden.
PayPal-Einrichtung bestätigen
Um die Verwendung des PayPal-Kontos für zukünftige Zahlungen zu genehmigen, werden Ihre Kundinnen/Kunden an eine PayPal-Zahlungsvereinbarungsseite weitergeleitet, der sie zustimmen müssen, bevor sie wieder zu Ihrer Website weitergeleitet werden. Verwenden Sie stripe.confirmPayPalSetup, um die Weiterleitung von Ihrer Seite durchzuführen und die Einrichtung abzuschließen. Fügen Sie dieser Funktion eine return_ hinzu, um anzugeben, wohin Stripe die Nutzer/innen weiterleiten soll, nachdem sie die Abrechnungsvereinbarung auf der Website von PayPal bestätigt haben.
// Redirects away from the client const {error} = await stripe.confirmPayPalSetup( '{{SETUP_INTENT_CLIENT_SECRET}}', { return_url: 'https://example.com/setup/complete', mandate_data: { customer_acceptance: { type: 'online', online: { infer_from_client: true } } }, } ); if (error) { // Inform the customer that there was an error. }
Sie finden die ID der zahlenden Person und die ID der Abrechnungsvereinbarung im sich ergebenden Mandat unter der Eigenschaft payment_method_details). Die E-Mail-Adresse des Käufers/der Käuferin und die ID der zahlenden Person finden Sie auch in der Eigenschaft PayPal der PaymentMethod.
| Feld | Wert |
|---|---|
payer_ | Die E-Mail-Adresse der zahlenden Person in ihrem PayPal-Konto. |
payer_ | Eine eindeutige ID des PayPal-Kontos der zahlenden Person. |
billing_ | Die PayPal Billing Agreement ID (BAID). Dies ist eine von PayPal erzeugte ID, die das Mandat zwischen dem Unternehmen und der Kundin bzw. dem Kunden darstellt. |
Webhooks überwachenServerseitig
Verwenden Sie eine Methode wie Webhooks, um zu bestätigen, dass die Abrechnungsvereinbarung kundenseitig ordnungsgemäß autorisiert wurde, statt sich darauf zu verlassen, dass Ihre Kunden und Kundinnen zur Zahlungsstatusseite zurückkehren. Wird eine Abrechnungsvereinbarung erfolgreich autorisiert, so gibt der SetupIntent das Webhook-Ereignis setup_intent.succeeded aus. Wenn Kundinnen/Kunden die Abrechnungsvereinbarung nicht erfolgreich autorisieren, gibt der SetupIntent das Webhook-Ereignis setup_intent.setup_failed aus und wechselt wieder in den Status requires_. Wenn ein Kunde/eine Kundin die Abrechnungsvereinbarung von seinem/ihren PayPal-Konto widerruft, wird mandate.updated ausgegeben.
Off-Session-Zahlungen mit einer gespeicherten PayPal-Zahlungsmethode belastenServerseitig
Wenn Sie bereit sind, Kundinnen/Kunden Off-Session abzurechnen, verwenden Sie die Kunden- und PaymentMethod-IDs, um einen PaymentIntent zu erstellen.
Um ein paypal-Instrument zu finden, das belastet werden soll, listen Sie die Ihren Kundinnen/Kunden zugeordneten PaymentMethods auf.
Wenn Ihnen die Kunden-ID und die PaymentMethod-ID vorliegen, erstellen Sie eine PaymentIntent mit dem Betrag und der Währung der Zahlung. Legen Sie einige weitere Parameter fest, um die Off-Session-Zahlung durchzuführen:
- Setzen Sie off_session auf
true, um anzugeben, dass sich der Kunde/die Kundin während dieses Zahlungsversuchs nicht in Ihrem Bezahlvorgang befindet. Dies hat zur Folge, dass der PaymentIntent einen Fehler ausgibt, wenn eine Authentifizierung erforderlich ist. - Legen Sie den Wert der Eigenschaft confirm des PaymentIntent auf
truefest. Dadurch erfolgt die Bestätigung sofort, wenn der PaymentIntent erstellt wird. - Setzen Sie payment_method auf die ID der PaymentMethod und Kunde/Kundin auf die ID des Kunden/der Kundin.
On-Session-Zahlungen mit einer gespeicherten PayPal-Zahlungsmethode belastenClientseitig
Wenn Sie bereit sind, Kundinnen/Kunden On-Session abzurechnen, verwenden Sie die Kunden- und PaymentMethod-IDs, um einen PaymentIntent zu erstellen.
Um ein zu belastendes paypal-Instrument zu finden, listen Sie die PaymentMethods auf, die mit Ihrem Kunden/Ihrer Kundin verbunden sind.
Wenn Ihnen die Kunden-ID und die PaymentMethod-ID vorliegen, erstellen Sie einen PaymentIntent mit dem Betrag und der Währung der Zahlung:
Rufen Sie mit dem Stripe.js SDK die Funktion confirmPayPalPayment auf, um den erstellten PaymentIntent auszuführen:
// Confirms the on-session payment const {error} = await stripe.confirmPayPalPayment( '{{PAYMENT_INTENT_CLIENT_SECRET}}', {payment_method: '{{PAYMENT_METHOD_ID}}'} // Note: return_url is not required here because the PayPal payment method was // previously set up using either a SetupIntent or a PaymentIntent with setup_future_usage ); if (error) { // Inform the customer that there was an error. }
Hinweis: Der Parameter
return_ist fürurl confirmPayPalPaymentbedingt erforderlich:
- Sie ist nicht erforderlich, wenn Sie eine PayPal-Zahlungsmethode verwenden, die zuvor mit einem SetupIntent oder einer PaymentIntent mit
setup_eingerichtet wurde.future_ usage - Sie ist für alle anderen Fälle erforderlich, einschließlich bei der On-Session-Erstellung einer neuen PayPal-Zahlungsmethode.
Abbruch einer nutzerinitiierten ZahlungsmethodeServerseitig
Eine Kundin/ein Kunde kann das Abo (Abrechnungsvereinbarung) über ihr/sein PayPal-Konto kündigen. Wenn dies geschieht, sendet Stripe einen mandate.updated-Webhook. Alle nachfolgenden PaymentIntents, die die gespeicherte Zahlungsmethode verwenden, schlagen fehl, bis Sie auf eine Zahlungsmethode mit aktiven Mandaten wechseln. Wenn Zahlungen für Abos fehlschlagen, ändert sich der Status gemäß den in Ihren automatischen Einzugs-Einstellungen konfigurierten Abo-Status. Informieren Sie die Kundin/den Kunden über den Zahlungsausfall und belasten Sie die Zahlung mit einer anderen Zahlungsmethode.
OptionalKünftige PayPal-Zahlungen einrichten und eine Zahlung erfassenServerseitig
Es ist auch möglich, eine PayPal-Zahlungsmethode für die zukünftige Verwendung einzurichten und gleichzeitig eine Belastung vorzunehmen, wenn eine PaymentIntent erstellt wird.
Legen Sie setup_future_usage auf off_ fest, um anzugeben, das Sie die Zahlungsmethode für die zukünftige Verwendung einrichten möchten.
OptionalPayPal-Weiterleitung manuell handhabenServerseitig
Wir empfehlen, die Abwicklung von PayPal-Weiterleitungen und Abrechnungsautorisierungen auf Client-Seite mit confirmPayPalSetup Stripe.js zu überlassen. Wenn Sie Stripe.js verwenden, können Sie Ihre Integration viel einfacher um weitere Zahlungsmethoden erweitern. Sie können Ihre Kund/innen jedoch auch mithilfe der folgenden Schritte manuell an Ihren Server weiterleiten:
Sie können den SetupIntent zur Erstellungszeit bestätigen, indem Sie confirm: true festlegen und Daten über das Mandat im Parameter mandate_data angeben. Bei der Bestätigung eines SetupIntent muss eine return_ bereitgestellt werden, um anzugeben, wohin Stripe den/die Nutzer/in weiterleiten soll, nachdem er/sie die Einrichtung auf der Website oder in der App von PayPal abgeschlossen hat.
Überprüfen Sie, ob die SetupIntent den Status requires_ hat und ob next_ den Typ redirect_ hat.
{ "id": "seti_1IQ9hjJJahOk1vSNevPWnhEN", "object": "setup_intent", "status": "requires_action", "next_action": { "type": "redirect_to_url", "redirect_to_url": { "url": "https://hooks.stripe.com/...", "return_url": "https://example.com/setup/complete" } }, "application": null,
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.
Bei Abschluss des Autorisierungsvorgangs werden Kund/innen an die return_ weitergeleitet, die Sie in Schritt 1. konfiguriert haben. Die URL-Abfrageparameter setup_ und setup_ sind darin enthalten, und Sie können, wie oben beschrieben, Ihre eigenen Abfrageparameter übergeben.
OptionalIntegration der Risikobibliothek für On-Session-Zahlungen manuell handhabenServerseitig
Wir empfehlen, Stripe.js zu nutzen, um On-Session-Zahlungen mit einer gespeicherten PayPal-Zahlungsmethode abzuwickeln, da es über eine integrierte Fraudnet-Integration verfügt. Sie können PayPal PaymentIntents jedoch auch mit den folgenden Schritten manuell auf Ihrem Server bestätigen:
Vernetzen Sie sich mit den Risikobibliotheken von PayPal (Fraudnet für Web und Magnes für Mobilgeräte), damit PayPal Risikodaten erfassen kann, wenn der/die Käufer/in bei der Zahlungssitzung anwensend ist. Dadurch lässt sich Betrug reduzieren und die Zahlungskonversion bei On-Session-Zahlungen erhöhen. Sie benötigen die Client-Metadaten-ID (auch bekannt als Risikokorrelations-ID), die zur Initialisierung der Bibliothek beim API-Aufruf an Stripe verwendet wird.
Nachdem die Bibliothek geladen wurde, können Sie einen PaymentIntent mit der Client-Metadaten-ID, dem Betrag und der Währung der Zahlung erstellen:
Sie erhalten den Meldungscode paypal_, wenn Sie bei der Bestätigung einer On-Session-Zahlung den Parameter risk_correlation_id nicht übergeben.