Voraussetzungen
Um die Dodo Payments API zu integrieren, benötigen Sie:- Ein Dodo Payments Händlerkonto
- API-Anmeldeinformationen (API-Schlüssel und Webhook-Geheimschlüssel) aus dem Dashboard
API-Integration
Checkout-Sitzungen
Verwenden Sie Checkout-Sitzungen, um Abonnementprodukte mit einem sicheren, gehosteten Checkout zu verkaufen. Übergeben Sie Ihr Abonnementprodukt inproduct_cart und leiten Sie die Kunden zu dem zurückgegebenen checkout_url weiter.
- Node.js SDK
- Python SDK
- REST API
API-Antwort
Die folgende ist ein Beispiel für die Antwort:checkout_url weiter.
Webhooks
Bei der Integration von Abonnements erhalten Sie Webhooks, um den Lebenszyklus des Abonnements zu verfolgen. Diese Webhooks helfen Ihnen, Abonnementzustände und Zahlungsszenarien effektiv zu verwalten. Um Ihren Webhook-Endpunkt einzurichten, folgen Sie bitte unserem Detaillierten Integrationshandbuch.Abonnement-Ereignistypen
Die folgenden Webhook-Ereignisse verfolgen Änderungen des Abonnementstatus:subscription.active- Abonnement wurde erfolgreich aktiviert.subscription.updated- Abonnementobjekt wurde aktualisiert (wird bei jeder Feldänderung ausgelöst).subscription.on_hold- Abonnement wurde aufgrund fehlgeschlagener Erneuerung pausiert.subscription.failed- Erstellung des Abonnements ist während der Mandatserstellung fehlgeschlagen.subscription.renewed- Abonnement wird für den nächsten Abrechnungszeitraum erneuert.
Zahlungsszenarien
Erfolgreicher Zahlungsfluss Wenn eine Zahlung erfolgreich ist, erhalten Sie die folgenden Webhooks:subscription.active- Zeigt die Aktivierung des Abonnements anpayment.succeeded- Bestätigt die erste Zahlung:- Bei sofortiger Abrechnung (0 Testtage): Erwarten Sie innerhalb von 2-10 Minuten
- Bei Testtagen: wann immer diese enden
subscription.renewed- Zeigt die Abzug der Zahlung und die Erneuerung für den nächsten Zyklus an. (Im Grunde, wann immer eine Zahlung für Abonnementprodukte abgezogen wird, erhalten Sie densubscription.renewedWebhook zusammen mitpayment.succeeded)
- Abonnementfehler
subscription.failed- Erstellung des Abonnements ist aufgrund eines Fehlers bei der Erstellung eines Mandats fehlgeschlagen.payment.failed- Zeigt fehlgeschlagene Zahlung an.
- Abonnement auf Hold
subscription.on_hold- Abonnement wurde aufgrund einer fehlgeschlagenen Erneuerungszahlung oder einer fehlgeschlagenen Planänderungsgebühr pausiert.- Wenn ein Abonnement pausiert wird, wird es nicht automatisch erneuert, bis die Zahlungsmethode aktualisiert wird.
Best Practice: Um die Implementierung zu vereinfachen, empfehlen wir, hauptsächlich Abonnementereignisse zur Verwaltung des Lebenszyklus von Abonnements zu verfolgen.
Umgang mit Abonnements auf Hold
Wenn ein Abonnement in denon_hold Zustand eintritt, müssen Sie die Zahlungsmethode aktualisieren, um es wieder zu aktivieren. Dieser Abschnitt erklärt, wann Abonnements pausiert werden und wie man damit umgeht.
Wann Abonnements auf Hold gehen
Ein Abonnement wird auf Hold gesetzt, wenn:- Erneuerungszahlung schlägt fehl: Die automatische Erneuerungsgebühr schlägt aufgrund unzureichender Mittel, abgelaufener Karte oder Bankablehnung fehl
- Planänderungsgebühr schlägt fehl: Eine sofortige Gebühr während des Upgrades/Downgrades des Plans schlägt fehl
- Zahlungsmethodenautorisierung schlägt fehl: Die Zahlungsmethode kann für wiederkehrende Gebühren nicht autorisiert werden
Reaktivierung von Abonnements aus dem Hold-Zustand
Um ein Abonnement aus demon_hold Zustand zu reaktivieren, verwenden Sie die Update Payment Method API. Dies führt automatisch durch:
- Erstellt eine Gebühr für ausstehende Beträge
- Generiert eine Rechnung für die Gebühr
- Verarbeitet die Zahlung mit der neuen Zahlungsmethode
- Reaktiviert das Abonnement in den
activeZustand nach erfolgreicher Zahlung
1
Webhook für subscription.on_hold verarbeiten
Wenn Sie einen
subscription.on_hold Webhook erhalten, aktualisieren Sie den Status Ihrer Anwendung und benachrichtigen Sie den Kunden:2
Zahlungsmethode aktualisieren
Wenn der Kunde bereit ist, seine Zahlungsmethode zu aktualisieren, rufen Sie die Update Payment Method API auf:
Sie können auch eine vorhandene Zahlungsmethoden-ID verwenden, wenn der Kunde gespeicherte Zahlungsmethoden hat:
3
Webhook-Ereignisse überwachen
Nach der Aktualisierung der Zahlungsmethode überwachen Sie diese Webhook-Ereignisse:
payment.succeeded- Die Gebühr für ausstehende Beträge war erfolgreichsubscription.active- Das Abonnement wurde reaktiviert
Beispiel für das Abonnementereignis-Payload
| Eigenschaft | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
business_id | string | Ja | Die eindeutige Kennung für das Unternehmen |
timestamp | string | Ja | Der Zeitstempel, wann das Ereignis aufgetreten ist (nicht unbedingt dasselbe wie der Zeitpunkt der Zustellung) |
type | string | Ja | Der Typ des Ereignisses. Siehe Ereignistypen |
data | object | Ja | Die Hauptdatenlast. Siehe Datenobjekt |
Ändern von Abonnementplänen
Sie können einen Abonnementplan über den API-Endpunkt zum Ändern des Plans upgraden oder downgraden. Dies ermöglicht es Ihnen, das Produkt des Abonnements, die Menge zu ändern und die Proratisierung zu handhaben.API-Referenz zum Planwechsel
Für detaillierte Informationen zum Ändern von Abonnementplänen verweisen wir auf unsere Dokumentation zur API für Planänderungen.
Proratisierungsoptionen
Beim Ändern von Abonnementplänen haben Sie zwei Optionen zur Handhabung der sofortigen Gebühr:1. prorated_immediately
- Berechnet den proratisierten Betrag basierend auf der verbleibenden Zeit im aktuellen Abrechnungszyklus
- Berechnet dem Kunden nur die Differenz zwischen dem alten und dem neuen Plan
- Während einer Testphase wird der Benutzer sofort auf den neuen Plan umgeschaltet, wobei der Kunde sofort belastet wird
2. full_immediately
- Belastet den Kunden mit dem vollen Abonnementbetrag für den neuen Plan
- Ignoriert die verbleibende Zeit oder Gutschriften des vorherigen Plans
- Nützlich, wenn Sie den Abrechnungszyklus zurücksetzen oder den vollen Betrag unabhängig von der Proratisierung berechnen möchten
3. difference_immediately
- Bei einem Upgrade wird der Kunde sofort mit der Differenz zwischen den beiden Planbeträgen belastet.
- Wenn der aktuelle Plan 30 Dollar beträgt und der Kunde auf 80 Dollar aufsteigt, wird ihm sofort 50 Dollar berechnet.
- Bei einem Downgrade wird der nicht genutzte Betrag des aktuellen Plans als interne Gutschrift hinzugefügt und automatisch auf zukünftige Abonnementerneuerungen angewendet.
- Wenn der aktuelle Plan 50 Dollar beträgt und der Kunde auf einen Plan von 20 Dollar wechselt, werden die verbleibenden 30 Dollar gutgeschrieben und für den nächsten Abrechnungszyklus verwendet.
Verhalten
- Wenn Sie diese API aufrufen, initiiert Dodo Payments sofort eine Gebühr basierend auf Ihrer ausgewählten Proratisierungsoption
- Wenn die Planänderung ein Downgrade ist und Sie
prorated_immediatelyverwenden, werden Gutschriften automatisch berechnet und dem Guthaben des Abonnements hinzugefügt. Diese Gutschriften sind spezifisch für dieses Abonnement und werden nur verwendet, um zukünftige wiederkehrende Zahlungen des gleichen Abonnements auszugleichen - Die
full_immediatelyOption umgeht die Berechnung von Gutschriften und belastet den vollständigen Betrag des neuen Plans
Gebührenverarbeitung
- Die sofortige Gebühr, die bei der Planänderung initiiert wird, wird normalerweise in weniger als 2 Minuten verarbeitet
- Wenn diese sofortige Gebühr aus irgendeinem Grund fehlschlägt, wird das Abonnement automatisch auf Hold gesetzt, bis das Problem behoben ist
On-Demand-Abonnements
On-Demand-Abonnements ermöglichen es Ihnen, Kunden flexibel zu belasten, nicht nur nach einem festen Zeitplan. Kontaktieren Sie den Support, um diese Funktion zu aktivieren.
on_demand Feld in Ihren Anfragekörper ein. Dies ermöglicht es Ihnen, eine Zahlungsmethode ohne sofortige Gebühr zu autorisieren oder einen benutzerdefinierten Anfangspreis festzulegen.
Um ein On-Demand-Abonnement zu belasten:
Für nachfolgende Gebühren verwenden Sie den POST /subscriptions/charge Endpunkt und geben Sie den Betrag an, den der Kunde für diese Transaktion belastet werden soll.
Für eine vollständige, schrittweise Anleitung—einschließlich Anfrage-/Antwortbeispiele, sichere Wiederholungsrichtlinien und Webhook-Verarbeitung—sehen Sie sich das Handbuch für On-Demand-Abonnements an.