الامتيازات تحول الدفع الناجح أو الاشتراك النشط إلى وصول حقيقي: مفتاح ترخيص في صندوق بريد العميل، علامة مميزة لميزة يتفقدها تطبيقك، دور في Discord، مستودع GitHub، قالب Notion، رابط Remix في Framer، دعوة دردشة في Telegram، أو حزمة ملفات قابلة للتنزيل. يقوم Dodo Payments بإصدار وتتبع وإلغاء هذا الوصول تلقائيًا مع تغييرات دورة الدفع.

ما هي الاستحقاقات؟
الاستحقاق هو تعريف قابل لإعادة الاستخدام لشيء تقدمه للعميل: مفتاح ترخيص Pro، دور “Patrons” في Discord، الوصول إلى مستودع GitHub الخاص بك، أو حزمة كتب إلكترونية قابلة للتنزيل. تقوم بإرفاق الاستحقاقات بالمنتجات، وتتعامل Dodo Payments مع الباقي. عندما يشتري العميل المنتج، تنشئ Dodo Payments منحة، وهي إصدار استحقاق مخصص لذلك العميل. تمر المنح بعدة حالات:pending أثناء تقدم التسليم، delivered بمجرد أن يحصل العميل على الوصول، failed إذا لم يكتمل التسليم، و revoked عند سحب الوصول.
عمليات دمج متاحة
تقوم Dodo Payments بتسليم كل استحقاق من خلال تكامل مخصص. اختر التكامل الذي يتناسب مع ما تبيعه.License Keys
إنشاء مفاتيح ترخيص فريدة مع حدود تفعيل وانتهاء. الأفضل للبرامج، الملحقات، و CLIs.
Digital Files
تسليم الملفات القابلة للتنزيل (الكتب الإلكترونية، القوالب، الوسائط) مع عناوين URL مسبقة التوقيع وتعليمات اختيارية.
Feature Flags
قيد الميزات في تطبيقك عند الشراء. يتم التوصيل فورًا، التحقق عبر API، الإلغاء عند الإلغاء.
Discord
امنح العميل دورًا في خادم Discord الخاص بك عند الشراء. يتم الإلغاء تلقائيًا عند الإلغاء.
GitHub
أضف العملاء كمتعاونين في مستودع خاص بمستوى الإذن الذي تختاره.
Telegram
أضف العملاء إلى دردشة أو قناة Telegram خاصة بعد الشراء.
Framer
افتح رابط قالب Remix في Framer للعملاء الذين يدفعون.
Notion
انسخ قالب Notion إلى مساحة عمل العميل عند الشراء.
كيف تعمل المنح
يتم تشغيل المنح من خلال نفس أحداث الدفع والاشتراكات التي تتلقاها بالفعل كخدمات ويب. ليس لديك حاجة لاستدعاء API للمنح بنفسك للشراء. Dodo Payments ينشئ ويلغي المنح تلقائيًا بناءً على دورة الدفع الأساسية.دورة حياة المنحة
Created
يتم إنشاء منحة عند اكتمال الدفع أو تفعيل الاشتراك. مفاتيح الترخيص والعلامات المميزة للميزات تنتقل مباشرة إلى
delivered. تبدأ كل التكاملات الأخرى في pending. تتضمن التكاملات التي تعتمد على OAuth (Discord، GitHub، Notion) oauth_url يجب على العميل زيارتها لإكمال الموافقة. التكاملات المباشرة مع المنصات (Telegram، Framer، Digital Files) تبقى في pending فقط لفترة وجيزة أثناء توفير التسليم، ثم تتحول إلى delivered.Delivered
عندما يكتمل التسليم (تم إنشاء مفتاح ترخيص، تم تعيين دور، تم منح وصول إلى المستودع، تم حل روابط الملفات، تم إكمال OAuth)، تنتقل المنحة إلى
delivered ويتم تعيين delivered_at.Failed
إذا أرجع استدعاء التكامل خطأ غير قابل للتكرار (تم إلغاء رمز OAuth، تم رفض إذن، لم يعد الملف موجودًا)، تنتقل المنحة إلى
failed. يتم التقاط السبب في error_code وerror_message.سلوك المنحة حسب الحدث
| الحدث | السلوك |
|---|---|
payment.succeeded (دفعة واحدة) | إصدار منحة واحدة لكل امتياز ملحق. |
payment.succeeded (دفع مرتبط بالاشتراك) | لا يوجد عملية. المنح مدفوعة بحدث الاشتراك أدناه. |
subscription.active | إصدار منح لأي امتيازات مرتبطة لا تملك واحدة بالفعل. إعادة منح أي منح تم إلغاؤها سابقًا لنفس الاشتراك. |
subscription.renewed | لا يوجد عملية. تبقى المنح الحالية ثابتة مع التجديدات. |
subscription.on_hold | إلغاء جميع المنح التي تم تسليمها والمعلقة. revocation_reason: subscription_on_hold. |
subscription.cancelled | إلغاء الكل. revocation_reason: subscription_cancelled. |
subscription.expired | إلغاء الكل. revocation_reason: subscription_expired. |
subscription.plan_changed | إلغاء جميع المنح الحالية، ثم إصدار منح لامتيازات الخطة الجديدة. revocation_reason: plan_changed. |
refund.succeeded (دفعة واحدة) | إلغاء المنح لتلك الدفعة. revocation_reason: refund. |
| إلغاء API يدوي | إلغاء مع revocation_reason: manual. لا يتم إعادة منح الإلغاءات اليدوية تلقائيًا عند تجديد الاشتراك. |
| تم تعطيل مفتاح الترخيص | بالنسبة للمنح التي تعتمد على مفتاح الترخيص، فإن تعطيل المفتاح الأساسي يلغي المنحة مع revocation_reason: license_key_disabled. يتم تنشيط المنحة تلقائيًا إذا تم إعادة تفعيل المفتاح. |
| تم اكتشاف انجراف في المنصة | إذا انحرفت الجانب المنصة للتكامل عن التزامن (تم إزالة دور في Discord يدويًا، فقد الوصول إلى مستودع في تطبيق GitHub، أو اكتشاف تمرير تصالح يفقد الهدف)، تلغى المنحة مع revocation_reason: platform_external. لن يتم إعادة منحها تلقائيًا عند تجديد الاشتراك حتى يتم حل المشكلة الأساسية في المنصة. |
المنح التي تعتمد على الاشتراك تكون فائضة لكل
(entitlement, customer, subscription); لا تنشئ التجديدات وإعادة التفعيل منحًا مكررة. تكون المنح الفردية فائضة لكل (entitlement, customer, payment).أنشئ أول امتياز لك
Pick an integration
اختر نوع التكامل: مفتاح ترخيص، ملفات رقمية، علامة مميزة للميزات، Discord، GitHub، Telegram، Framer، أو Notion. بالنسبة لتكاملات المنصة، قم بتوصيل حسابك أولاً إذا لم تكن قد فعلت ذلك من قبل.
Configure delivery
املأ الحقول الخاصة بالتكامل. على سبيل المثال، يطلب GitHub مستودعًا ومستوى إذن؛ يطلب Discord خادمًا ودورًا اختياريًا؛ يطلب مفتاح الترخيص حدود تنشيط وانتهاء الصلاحية.

إرفاق الامتيازات بالمنتجات
افتح منتجًا، وقم بتوسيع إعدادات متقدمة → الامتيازات والائتمانات، وحدد الامتيازات التي يجب تسليمها عند شراء المنتج. يمكن أن يسلم منتج واحد عدة امتيازات في وقت واحد. على سبيل المثال، يمكن أن تشمل خطة Pro مفتاح ترخيص، وصول إلى GitHub، ودور في Discord.
تجربة العميل
البريد الإلكتروني وبوابة العميل
يتلقى العملاء بريدًا إلكترونيًا للتسليم بعد الشراء يحتوي على مفتاح الترخيص، وروابط التحميل، وروابط الدعوة لـ OAuth، أو دعوة للمنصة، أيًا ما ينطبق على الامتيازات الموجودة في المنتج. تبقى نفس التفاصيل متاحة إلى الأبد من بوابة العملاء تحت سجل الطلبات الخاص بهم.التسليم المستند إلى OAuth
يتطلب الوصول للمشتركين في Discord وGitHub وNotion من العميل تفويض Dodo Payments لمنحهم الوصول. تبقى هذه المنح في حالةpending حتى يكمل العميل تدفق OAuth باستخدام الرابط من بريده الإلكتروني أو بوابة العملاء. بمجرد التفويض، تنتقل المنحة إلى delivered ويتم توفير الوصول إلى المنصة فورًا.
الإلغاء
تم إزالة المنح الملغاة على مستوى المنصة: يتم إزالة دور Discord، ويتم إزالة المتعاون في GitHub، ويتم تعطيل مفتاح الترخيص. يرى العملاء هذا التغيير منعكسًا في بوابة العملاء.إدارة المنح
افتح أي امتياز من لوحة التحكم لرؤية منحته. تعرض لوحة تفاصيل المنحة إجمالي المنح ومرشحات الحالة ومعلومات العميل وتواريخ التسليم وإجراء الإلغاء. يمكنك أيضًا إدارة المنح برمجيًا:إدارة API
Create Entitlement
أنشئ امتيازًا جديدًا من أي نوع تكامل.
List Entitlements
إدراج الامتيازات مع التصفية حسب نوع التكامل.
Get Entitlement
استعراض امتياز وتكوينه المحلل.
Update Entitlement
تحديث الاسم، الوصف، أو تكوين التكامل.
Delete Entitlement
حذف امتياز بشكل ناعم؛ لا تتأثر الامتيازات الحالية.
Upload File
رفع ملف إلى امتياز الملفات الرقمية (حتى 500 ميجابايت).
List Grants
إدراج جميع المنح لامتياز مع فلترة الحالة والعميل.
Revoke Grant
الغاء منحة واحدة يدويًا.
خدمات ويب
يقوم Dodo Payments بتشغيل أربع أحداث ويب لحالة المنحة. اشترك في هذه الأحداث للحفاظ على توافق تطبيقك مع ما يمكن لكل عميل الوصول إليه.| الحدث | يعمل عند |
|---|---|
entitlement_grant.created | تم إنشاء منحة جديدة. تصل منح مفتاح الترخيص delivered؛ تصل كل تكامل أخرى pending وتنتقل إلى delivered بمجرد نجاح استدعاء المنصة (أو بالنسبة للتكاملات المستندة إلى OAuth، بمجرد أن يمنح العميل التفويض). |
entitlement_grant.delivered | تنتقل المنحة إلى التسليم. العميل الآن لديه إمكانية الوصول. |
entitlement_grant.failed | لم يمكن توصيل المنحة. تحقق من error_code وerror_message. |
entitlement_grant.revoked | تم سحب الوصول. تحقق من revocation_reason. |
Entitlement Grant Webhook Payloads
استعرض المخطط الكامل للحزمة، الأحداث النموذجية، ومرجع
revocation_reason.أفضل الممارسات
- استخدم امتيازًا واحدًا لكل قناة تسليم. لا تشارك امتياز Discord واحد عبر منتجات ذات نوايا دور مختلفة؛ أنشئ واحدًا لكل دور لقيامك بإلغاء نظيف.
- اختبر أولاً في وضع الاختبار. أنشئ الامتياز، قم بإرفاقه بمنتج اختبار، نفذ عملية الشراء، راقب انتقال المنحة عبر
pending → delivered. تأكد من أن إلغاء الاشتراك التجريبي يلغي المنحة. - استمع إلى
entitlement_grant.delivered، وليسpayment.succeeded. يمكن أن ينجح الدفع قبل انتهاء التوفيق (خاصة لتدفقات OAuth). انتظر حتى حدث التسليم قبل فتح ميزات تبعية في أنظمتك الخاصة. - تعامل مع
entitlement_grant.failedكقابل للتنفيذ. يعني منحة فاشلة أن العميل دفع ولم يحصل على الوصول. اعرض هذه الأمور لفريق الدعم الخاص بك أو قم بتشغيل إعادة المنح. - قم بتخطيط
revocation_reasonلتدفقات الاحتفاظ الخاصة بك. الإلغاء الذي يتم بالاستخدامsubscription_on_holdيمكن استرداده (قد يقوم العميل بتحديث بطاقته). الإلغاء الذي يتم بالاستخدامmanualمقصود. تعامل معها بشكل مختلف في اتصالات العملاء.