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.
تحول الاستحقاقات دفعة ناجحة أو اشتراك نشط إلى وصول فعلي: مفتاح ترخيص في صندوق وارد العميل، دور في Discord، مستودع على GitHub، قالب في Notion، رابط Framer remix، دعوة دردشة Telegram، أو حزمة ملفات قابلة للتنزيل. تقوم Dodo Payments بإصدار هذا الوصول، تتبعه، وتلغيه تلقائيًا مع تغيير دورة حياة الدفع.

ما هي الاستحقاقات؟
الاستحقاق هو تعريف قابل لإعادة الاستخدام لشيء تقدمه للعميل: مفتاح ترخيص Pro، دور “Patrons” في Discord، الوصول إلى مستودع GitHub الخاص بك، أو حزمة كتب إلكترونية قابلة للتنزيل. تقوم بإرفاق الاستحقاقات بالمنتجات، وتتعامل Dodo Payments مع الباقي. عندما يشتري العميل المنتج، تنشئ Dodo Payments منحة، وهي إصدار استحقاق مخصص لذلك العميل. تمر المنح بعدة حالات:pending أثناء تقدم التسليم، delivered بمجرد أن يحصل العميل على الوصول، failed إذا لم يكتمل التسليم، و revoked عند سحب الوصول.
عمليات دمج متاحة
تقوم Dodo Payments بتسليم كل استحقاق من خلال تكامل مخصص. اختر التكامل الذي يتناسب مع ما تبيعه.License Keys
إنشاء مفاتيح ترخيص فريدة مع حدود تفعيل وانتهاء. الأفضل للبرامج، الملحقات، و CLIs.
Digital Files
تسليم الملفات القابلة للتنزيل (الكتب الإلكترونية، القوالب، الوسائط) مع عناوين URL مسبقة التوقيع وتعليمات اختيارية.
Discord
منح العميل دورًا في خادم Discord الخاص بك عند الشراء. إلغاء تلقائي عند الإلغاء.
GitHub
إضافة العملاء كمتعاونين إلى مستودع خاص على مستوى الأذونات الذي تختاره.
Telegram
إضافة العملاء إلى دردشة Telegram خاصة أو قناة بعد الشراء.
Framer
إلغاء قفل رابط Framer template remix للعملاء الذين يدفعون.
Notion
نسخ قالب Notion إلى مساحة عمل العميل عند الشراء.
كيف تعمل المنح
يتم تشغيل المنح بواسطة نفس أحداث الدفع والاشتراك التي تستلمها بالفعل كإشعارات ويب. لست بحاجة إلى استدعاء واجهة برمجة التطبيقات للمنحة بنفسك للشراء. تنشئ وتلغي 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).إنشاء استحقاقك الأول
Open Entitlements
انتقل إلى الاستحقاقات في لوحة معلومات Dodo Payments وانقر على + لإنشاء استحقاق جديد.
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
تحميل ملف إلى استحقاق الملفات الرقمية (حتى 100 ميجابايت).
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متعمد. تعامل معهم بشكل مختلف في اتصالات العملاء.