Ein Abonnement mit PayPal einrichten
Erfahren Sie, wie Sie ein Abonnement PayPal einrichten und abrechnen können.
Vorsicht
Um PayPal-Abonnements in Stripe anzunehmen, müssen Sie im Dashboard wiederkehrende PayPal-Zahlungen aktivieren.
Verwenden Sie diesen Leitfaden, um ein Abonnement mit PayPal als Zahlungsmethode einzurichten.
Produkt und Preis erstellenDashboard
Produkte stehen für den von Ihnen angebotenen Artikel oder Dienst. Preise geben an, wie viel und wie häufig Sie für ein Produkt berechnen. Dies schließt ein, wie viel ein Produkt kostet, welche Währung Sie akzeptieren und ob es sich um eine einmalige oder eine wiederkehrende Zahlung handelt. Wenn Sie nur ein paar wenige Produkte und Preise haben, können Sie diese im Dashboard erstellen und verwalten.
In diesem Leitfaden wird ein Stock-Foto-Service als Beispiel verwendet, für den Kund/innen ein monatliches Abonnement mit dem Betrag von 15 EUR berechnet werden. Um dies zu modellieren:
- Navigieren Sie zur Seite Produkt hinzufügen.
- Geben Sie einen Namen für das Produkt an.
- Geben Sie 15 für den Preis ein.
- Wählen Sie als Währung EUR aus.
- Klicken Sie auf Produkt speichern.
Zeichnen Sie nach Erstellen des Produkts und des Preises die Preis-ID auf, sodass Sie diese in nachfolgenden Schritten verwenden können. Die ID wird auf der Preisseite angezeigt und sieht in etwa so aus: price_
.
Kund/innen vor Einrichtung erstellen oder abrufenServerseitig
Um die Zahlungsmethode PayPal für künftige Zahlungen zu hinterlegen, ordnen Sie diese den gewünschten Kundinnen und Kunden zu.
Sie sollten ein Customer-Objekt erstellen, wenn ein Kunde/eine Kundin ein Konto bei Ihrem Unternehmen anlegt. Wenn Sie die ID des Customer-Objekts mit Ihrer eigenen Darstellung eines Kunden/einer Kundin verknüpfen, können Sie später die gespeicherten Angaben zur Zahlungsmethode abrufen und verwenden. Wenn der Kunde/die Kundin noch kein Konto erstellt hat, 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/v3/"></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 E-Mail-Adresse des Inhabers/der Inhaberin der Zahlungsmethode, 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 in der Eigenschaft paypal der PaymentMethod.
Feld | Wert |
---|---|
verified_ | 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.
Abonnement erstellenServerseitig
Erstellen Sie ein Abonnement mit dem Preis und dem Kunden/der Kundin:
Durch das Erstellen von Abonnements werden Kundenzahlungen automatisch abgewickelt, weil die Standard-Zahlungsmethode festgelegt wird. Nach einer erfolgreichen Zahlung ändert sich der Status im Stripe-Dashboard in Aktiv. Der Preis, den Sie zuvor erstellt haben, bestimmt nachfolgende Abrechnungen.
Abonnementstatus verwaltenClientseitig
Falls die erste Zahlung erfolgreich war, ist der Status des Abonnements active
, und es sind keine weiteren Schritte erforderlich. Wenn Zahlungen fehlschlagen, wird der Status in den in Ihren Einstellungen für die automatische Abrechnung konfigurierten Abonnementstatus geändert. Benachrichtigen Sie die Kunden/Kundinnen beim Fehlschlagen einer Zahlung und führen Sie die Zahlungsabwicklung mit einer anderen Zahlungsmethode durch.
Ein Abonnement aktualisierenServerseitig
Wenn Sie ein Abonnement aktualisieren, müssen Sie off_
angeben. Andernfalls ist für jede neue Zahlung eine Weiterleitung der Nutzer/innen an PayPal zur Bestätigung erforderlich. Wenn Sie beispielsweise die Menge eines im Abonnement enthaltenen Artikels ändern möchten, können Sie Folgendes verwenden:
Integration testen
Testen Sie Ihre PayPal-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, in dem Nutzer/innen sich nicht authentifizieren können, verwenden Sie Ihre Test-API-Schlüssel und zeigen Sie die Weiterleitungsseite an. Klicken Sie auf der Weiterleitungsseite auf Fail test payment (Testzahlung fehlschlagen lassen). Der PaymentIntent wechselt von requires_
zu requires_
.