advanced_reports mit einem Produkt, und jeder zahlende Kunde erhält eine Gewährung, die Ihre Anwendung über die API prüft oder mithilfe von Webhooks synchron hält. Es gibt keine externe Plattform, keinen OAuth-Schritt und keinen Bereitstellungsschritt: Die Gewährung selbst ist die Fähigkeit.Was bereitgestellt wird
Nichts verlässt Dodo Payments. Die Gewährung ist das Bereitstellungsergebnis:- Beim Kauf erstellt Dodo Payments die Gewährung direkt in
Delivered. Sie gelangt niemals inPending, erfordert keine Aktion des Kunden und hat keinen Bereitstellungsschritt, der fehlschlagen kann. - Die Gewährung enthält eine typisierte
feature-Nutzlast:{ "feature_type": "boolean", "feature_id": "advanced_reports" }. Ihre Anwendung liestfeature_id, um zu entscheiden, was freigeschaltet werden soll. - Eine Kündigung, Rückerstattung oder manuelle Aufhebung verschiebt die Gewährung nach
Revoked, und das Flag verschwindet aus den bereitgestellten Gewährungen des Kunden.
feature_id ist ein von Ihnen gewählter Bezeichner und über Berechtigungen hinweg nicht eindeutig. Zwei Berechtigungen können dieselbe feature_id gewähren, beispielsweise ein monatlicher und ein jährlicher Pro-Plan, die beide advanced_reports gewähren.Ein Feature-Flag erstellen
Open Entitlements
Name the Flag
api_access), und Sie können sie bearbeiten. Sie darf keine Leerzeichen enthalten.
Creating a feature flag. The Feature ID is what your application checks; Meta Data attaches limits alongside the flag.
Add Metadata (Optional)
Confirm

The created feature flag. The right pane tracks every customer grant issued from it.
Mit einem Produkt verknüpfen
Öffnen Sie ein Produkt oder erstellen Sie eines und suchen Sie die Karte Entitlements. Klicken Sie auf +, um vorhandene Berechtigungen zu verknüpfen, wählen Sie Ihr Feature-Flag aus und klicken Sie auf Done.
Attaching the feature flag to a product. One product can deliver multiple entitlements.

The product now includes the feature flag. Every successful purchase or active subscription grants it.
Erforderliche Konfiguration
Erstellung über API
Limits mit Metadaten anhängen
Ein boolesches Flag beantwortet die Frage: “Hat dieser Kunde diese Funktion?” Metadaten beantworten: “Mit welcher Konfiguration?” Berechtigungsmetadaten akzeptieren Zeichenfolgen-, Ganzzahl-, Zahlen- und boolesche Werte. Jede Gewährung erhält beim Erstellen einen unveränderlichen Snapshot der Metadaten der Berechtigung. Der Snapshot macht Metadaten sicher für Planlimits:- Eine spätere Bearbeitung der Metadaten der Berechtigung wirkt sich nur auf zukünftige Gewährungen aus. Kunden behalten die Limits, unter denen sie gekauft haben.
- Jede Gewährung gibt ihren Snapshot in ihrem Feld
metadatazurück, sodass ein API-Aufruf sowohl das Flag als auch seine Konfiguration liefert.
advanced_reports-Flag mit { "tier": "pro", "monthly_report_limit": 100 } Ihrer Anwendung, das Dashboard freizuschalten und das Kontingent von 100 Berichten ohne eine zweite Abfrage durchzusetzen. Wenn Sie das Limit später auf 250 erhöhen, bleiben bestehende Kunden bei 100, bis sie eine neue Gewährung erhalten, beispielsweise nach einem Planwechsel.
Die Funktionen eines Kunden prüfen
Um die Menge der Funktionen eines Kunden zu erstellen, listen Sie seine bereitgestellten Feature-Flag-Gewährungen auf. Der Endpunkt gibt eine Zeile pro Gewährung über alle Berechtigungen hinweg zurück. Sie können sie nachintegration_type und status filtern. Diese Beispiele verwenden die client aus Über die API erstellen.
feature-Nutzlast wird nur bei feature_flag-Gewährungen ausgefüllt. Für jeden anderen Integrationstyp ist sie null. Die vollständige Antwortstruktur finden Sie in der API-Referenz List Customer Grants.Lebenszyklus
Feature-Flag-Gewährungen folgen dem standardmäßigen Lebenszyklus einer Gewährung mit einer Vereinfachung: Es gibt keinen Bereitstellungsschritt, daher verbleiben Gewährungen niemals inPending und wechseln niemals nach Failed.
Webhooks
Um Flags in Ihre eigene Datenbank zu übernehmen, anstatt sie regelmäßig abzufragen, abonnieren Sie dieentitlement_grant.*-Ereignisse:
entitlement_grant.createdtrifft bereits im StatusDeliveredmit derfeature-Nutzlast ein. Aktivieren Sie die Funktion.entitlement_grant.deliveredwird ausgelöst, wenn eine zuvor aufgehobene Gewährung wiederhergestellt wird. Aktivieren Sie die Funktion erneut.entitlement_grant.revokedbedeutet, dass der Zugriff entzogen wurde. Deaktivieren Sie die Funktion und prüfen Sierevocation_reason, um Ihre Nachricht auszuwählen.
entitlement_grant.failed aus, da die Bereitstellung vollständig innerhalb von Dodo Payments erfolgt.
Beispiel: Pro-Plan schaltet erweiterte Berichte frei
- Erstellen Sie das Flag. Setzen Sie
feature_id: advanced_reportsmit den Metadaten{ "tier": "pro", "monthly_report_limit": 100 }. - Verknüpfen Sie es mit Ihrem Abonnementprodukt für den Pro-Plan.
- Ein Kunde abonniert. Dodo Payments erstellt eine Gewährung im Status
Deliveredund löstentitlement_grant.createdaus. Ihr Webhook-Handler aktiviertadvanced_reportsfür den Kunden mit einem Limit von 100. - Ihre Anwendung schaltet die Funktion frei. Prüfen Sie beim Laden des Dashboards den zwischengespeicherten Funktionsumfang (oder rufen Sie
listEntitlementGrantsauf) und rendern Sie den Tab für Berichte nur, wennadvanced_reportsvorhanden ist. - Der Kunde kündigt. Dodo Payments hebt die Gewährung auf und löst
entitlement_grant.revokedaus, woraufhin Ihr Handler die Funktion deaktiviert. Wird ein Abonnement später durch ein Mahnverfahren wiederhergestellt, aktiviertentitlement_grant.delivereddie Funktion ohne Codeänderungen erneut.
Best Practices
- Verwenden Sie stabile Feature-IDs in
snake_case. Ihr Anwendungscode prüft diese Zeichenfolgen. Eine Umbenennung ist daher auf beiden Seiten eine inkompatible Änderung. - Verwenden Sie ein Flag pro Fähigkeit. Bevorzugen Sie
advanced_reportsundapi_accessals zwei Berechtigungen gegenüber einer einzelnenpro_bundle, damit Aufhebungen und Plankombinationen übersichtlich bleiben. - Steuern Sie den Status über Webhooks und überprüfen Sie ihn mit der API. Webhooks halten Ihre Datenbank aktuell. Der Listenendpunkt ist die Quelle der Wahrheit für Abgleichsaufgaben und Cache-Fehltreffer.
- Behandeln Sie
Revokedals sofort wirksam. Ein aufgehobenes Flag bedeutet, dass der Kunde nicht länger für die Funktion bezahlt. Sperren Sie sie bei der nächsten Anfrage, nicht erst bei der nächsten Sitzung. - Legen Sie Limits in Metadaten statt im Code ab. Wenn Sie ein Kontingent ändern, müssen Sie anschließend nur die Berechtigung bearbeiten. Neue Kunden erhalten den neuen Wert, während bestehende Gewährungen ihren gekauften Snapshot behalten.