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 im Abschnitt Wiederkehrende Zahlungen auf PayPal > Aktivieren.
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/basil/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
true
fest. 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 confirmPayPalPayment
bedingt 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
Ein Kunde/eine Kundin kann das Abonnement (Abrechnungsvereinbarung) über sein/ihr PayPal-Konto kündigen. Wenn dies geschieht, gibt Stripe den Webhook mandate.updated aus. Alle nachfolgenden Payment Intents, die die gespeicherte Zahlungsmethode verwenden, schlagen fehl, bis Sie zu einer Zahlungsmethode mit aktiven Mandaten wechseln. Wenn Abonnementzahlungen fehlschlagen, ändert sich der Status in den Abonnementstatus, der in Ihren Einstellungen für den automatischen Einzug konfiguriert ist. Benachrichtigen Sie die Kundinnen/Kunden, wenn die Zahlung fehlgeschlagen ist und belasten Sie ihr Konto mit einer anderen Zahlungsmethode.