منح الاستحقاق
الحمولة المرسلة إلى نقطة نهاية الويب هوك الخاصة بك عند إنشاء أو تسليم أو فشل أو إلغاء منحة الاستحقاق.
Documentation Index
Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
Use this file to discover all available pages before exploring further.
أحداث منح الاستحقاق عبر webhook
يتم إطلاق هذه الأحداث كلما تغيرت حالة منحة استحقاق العميل، على سبيل المثال عند إنشاء مفتاح ترخيص، أو تعيين دور Discord، أو توفير رابط تنزيل، أو سحب الوصول. اشترك في هذه الأحداث للحفاظ على توافق تطبيقك مع ما يمكن لكل عميل الوصول إليه.| الحدث | الوصف |
|---|---|
entitlement_grant.created | تم إنشاء صف منح جديد. الحالة هي delivered بشكل فوري لمفاتيح الترخيص، وpending لكل تكامل آخر. |
entitlement_grant.delivered | المنحة تنتقل إلى حالة التسليم. العميل لديه الآن وصول إلى المنصة المستحقة، أو الملف، أو مفتاح الترخيص. |
entitlement_grant.failed | فشل التسليم ولا يتم المحاولة مرة أخرى. تحقق من error_code وerror_message. |
entitlement_grant.revoked | تم سحب الوصول. تحقق من revocation_reason لفهم السبب. |
EntitlementGrantResponse الموثقة في المخطط أدناه.
محفزات الأحداث
entitlement_grant.created
تم إدخال صف المنحة للتو. يكون للمنحة دائمًاid ثابت من هذه النقطة فصاعدًا، حتى لو تغيرت حالتها. استخدم هذا الحدث لتسجيل أن الإنجاز قيد التقدم.
بالنسبة إلى مفاتيح الترخيص يتم إدخال الصف مباشرة مع status: "delivered" وdelivered_at معبأة، لذا يتم اتباع حدث created واحد دون تغييرات حالة إضافية إلا إذا تم إلغاء المنحة لاحقًا.
بالنسبة إلى كل تكامل آخر يصل الصف مع status: "pending". يتبع حدث delivered أو failed بمجرد اكتمال التسليم:
- التكاملات المستندة إلى OAuth (Discord، GitHub، Notion) تتضمن
oauth_urlيجب على العميل زيارته لإكمال الموافقة. تبقى المنحةpendingحتى يسمح العميل بذلك. - التكاملات المباشرة للمنصة (Telegram، Framer، ملفات رقمية) تبقى في
pendingلفترة وجيزة فقط أثناء تنفيذ اتصال المنصة، ثم تنتقل إلىdelivered.
entitlement_grant.delivered
انتقلت المنحة منpending إلى delivered. لدى العميل الآن الوصول الموصوف بواسطة الاستحقاق. استخدم هذا الحدث لفتح الميزات التابعة في أنظمتك الخاصة، على سبيل المثال لتوفير مساحة عمل، إرسال بريد ترحيبي مخصص، أو وضع علامة “منجز”.
تلتقط حقل الحمولة delivered_at عندما اكتمل التسليم. للمنح التي وصلت delivered عند الإنشاء، ستتلقى أحداث created وdelivered متتالية.
entitlement_grant.failed
تمت المحاولة وفشل التسليم بخطأ غير قابل لإعادة المحاولة. تشرح الحقولerror_code وerror_message الفشل. تشمل الأسباب الشائعة إلغاء رمز OAuth، أو رفض إذن المنصة، أو الهدف المفقود (على سبيل المثال، تم حذف خادم Discord).
entitlement_grant.revoked
تم سحب الوصول على مستوى المنصة: تمت إزالة دور Discord، تمت إزالة المتعاون في GitHub، تم تعطيل مفتاح الترخيص، لم يعد يتم إصدار روابط تنزيل الملفات. يسجل الحقلrevocation_reason المحفز.
revocation_reason | المحفز |
|---|---|
subscription_cancelled | تم إلغاء اشتراك العميل (حدث subscription.cancelled). |
subscription_on_hold | الاشتراك معلق بسبب فشل التجديد (subscription.on_hold). قابل للاسترداد: تولد المحاولة الناجحة إعادة منح. |
subscription_expired | وصل الاشتراك إلى نهاية مدته (subscription.expired). |
plan_changed | تم تغيير الخطة؛ يتم إلغاء المنح القديمة قبل إصدار الجديدة (subscription.plan_changed). |
refund | تم معالجة استرداد للدفعة الأصلية لمرة واحدة (refund.succeeded). |
manual | ألغى التاجر المنحة عبر API أو اللوحة. عمليات الإلغاء اليدوية لا تُمنح تلقائيًا عند تجديد الاشتراك. |
license_key_disabled | تم تعطيل مفتاح الترخيص خلف منحته. يتم إعادة تنشيط المنحة تلقائيًا إذا أُعيد تمكين المفتاح. |
platform_external | خرج الجانب المتكامل من النظام من التزامن (على سبيل المثال، تمت إزالة دور Discord يدويًا، فقد تطبيق GitHub وصولاً للمستودع، أو تم اكتشاف عدم وجود هدف في عملية التسوية). لا يُعاد منحها تلقائيًا عند تجديد الاشتراك حتى يتم حل مشكلة النظام الأساسية. |
أنواع الحمولة
حقلdata دائمًا عبارة عن كائن EntitlementGrantResponse. نوعين من التكامل يرفقان كائنات متداخلة إضافية:
license_keyيتم تضمينه عند نوع تكامل الاستحقاق هوlicense_key. يحتوي على المفتاح المُولد، فترة الانتهاء، واستخدام التفعيل.digital_product_deliveryيتم تضمينه عندما يكون نوع التكاملdigital_files. يحتوي على روابط تنزيل موقعة مسبقًا،instructionsاختياريًا، وexternal_urlاختياريًا.
null؛ يتم التقاط التكوين ذي الصلة في الاستحقاق نفسه، وليس في المنحة.
نماذج حمولة
تم تسليم مفتاح ترخيص (entitlement_grant.delivered)
تم تسليم الملفات الرقمية (entitlement_grant.delivered)
إنشاء دور Discord معلق (entitlement_grant.created)
تم إلغاء المنحة عند إلغاء الاشتراك (entitlement_grant.revoked)
فشل التسليم (entitlement_grant.failed)
نصائح للتكامل
- انتظر حتى
entitlement_grant.deliveredقبل فتح الميزات التابعة. يخبرك حدثpayment.succeededبأن المال قد تم تسديدة؛ لا يخبرك أن العميل قد حصل على مستودع GitHub أو دور Discord بعد. الحدثdeliveredهو المصدر الحقيقي للوفاء. - خريطة
revocation_reasonللتدفقات التفاعلية. عادةً ما يعني حدثsubscription_on_holdأن بطاقة العميل قد فشلت وستعيد التجديد التالي الوصول. حدثmanualأوsubscription_cancelledهو متعمد. عاملهم بشكل مختلف في الرسائل الموجهة للعملاء. - استخدم منح
idكمفتاح لعدم التكرار. تصدر منحة واحدة على الأكثر حدثcreatedواحد وعلى الأكثر حدث واحد نهائي (deliveredأوfailed)، وعلى الأكثر حدثrevokedواحد. يمكن أن تتكرر إعادة التوجيهات من نظام webhook؛ قم بإزالة الازدواجية علىidبالإضافة إلىtype. - افحص
license_keyوdigital_product_deliveryللتعرف على نوع التكامل. لا يحمل حمولة المنحة نوع التكامل، ولكن واحدة من هذه الكائنات المتداخلة بالضبط مليئة بالاستحقاقات ذات المفاتيح الرقمية والملفات الرقمية. - بالنسبة إلى المنح المستندة إلى OAuth، امسح
oauth_urlإلى العميل. يتضمن الحدثentitlement_grant.createdلتدفقات المشتركين في Discord، GitHub، أو Notionoauth_urlوoauth_expires_at. قم بإرسالها بالبريد الإلكتروني إلى العميل أو عرضها في تطبيقك لفتح التسليم.
Detailed view of a single entitlement grant: who it's for, its lifecycle state, and any integration-specific delivery payload.
Identifier of the business that owns the grant.
Timestamp when the grant was created.
Identifier of the customer the grant was issued to.
Identifier of the entitlement this grant was issued from.
Unique identifier of the grant.
Arbitrary key-value metadata recorded on the grant.
Lifecycle status of the grant.
Pending, Delivered, Failed, Revoked Timestamp when the grant was last modified.
Timestamp when the grant transitioned to delivered, when applicable.
Digital-product-delivery payload, present when the entitlement
integration is digital_files.
Machine-readable code reported when delivery failed, when applicable.
Human-readable message reported when delivery failed, when applicable.
License-key delivery payload, present when the entitlement integration
is license_key.
Timestamp when oauth_url stops being valid, when applicable.
Customer-facing OAuth URL for OAuth-style integrations. Populated
during the customer-portal accept flow; null until the customer
completes that step, and on grants for non-OAuth integrations.
Identifier of the payment that triggered this grant, when applicable.
Reason recorded when the grant was revoked, when applicable.
Timestamp when the grant transitioned to revoked, when applicable.
Identifier of the subscription that triggered this grant, when applicable.