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.
- 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 Zahlungseinziehung und Erneuerung für den nächsten Zyklus an. (Im Grunde, wann immer eine Zahlung für Abonnementprodukte abgebucht wird, erhalten Sie dassubscription.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 pausiert
subscription.on_hold- Abonnement wurde aufgrund einer fehlgeschlagenen Erneuerungszahlung oder einer fehlgeschlagenen Planänderungsgebühr pausiert.- Wenn ein Abonnement pausiert, 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 wieder zu aktivieren, verwenden Sie die Update Payment Method API. Dies automatisiert:
- 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
Webhook subscription.on_hold verarbeiten
Wenn Sie ein
subscription.on_hold Webhook erhalten, aktualisieren Sie den Status Ihrer Anwendung und benachrichtigen Sie den Kunden: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:
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 bei der Lieferung) |
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 anteiligen 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 den vollen Abonnementbetrag für den neuen Plan
- Ignoriert verbleibende Zeit oder Guthaben vom vorherigen Plan
- Nützlich, wenn Sie den Abrechnungszyklus zurücksetzen oder den vollen Betrag unabhängig von der anteiligen Berechnung berechnen möchten
3. difference_immediately
- Bei einem Upgrade wird der Kunde sofort mit der Differenz zwischen den beiden Planbeträgen belastet.
- Zum Beispiel, wenn der aktuelle Plan 30 Dollar beträgt und der Kunde auf einen Plan von 80 Dollar aufsteigt, wird ihm sofort 50 Dollar berechnet.
- Bei einem Downgrade wird der ungenutzte Betrag des aktuellen Plans als internes Guthaben hinzugefügt und automatisch auf zukünftige Abonnementerneuerungen angewendet.
- Zum Beispiel, wenn der aktuelle Plan 50 Dollar beträgt und der Kunde auf einen Plan von 20 Dollar wechselt, wird der verbleibende Betrag von 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 anteiligen Option
- Wenn die Planänderung ein Downgrade ist und Sie
prorated_immediatelyverwenden, werden Guthaben automatisch berechnet und dem Guthaben des Abonnements hinzugefügt. Diese Guthaben sind spezifisch für dieses Abonnement und werden nur verwendet, um zukünftige wiederkehrende Zahlungen des gleichen Abonnements auszugleichen - Die
full_immediatelyOption umgeht die Guthabenberechnung 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 berechnen, nicht nur nach einem festen Zeitplan. Diese Funktion ist für alle Konten verfügbar.
on_demand Feld in Ihren Anfragekörper ein. Dies ermöglicht es Ihnen, eine Zahlungsmethode zu autorisieren, ohne eine sofortige Belastung vorzunehmen, 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.