مفاتيح التراخيص هي نوع الاستحقاق License Key. أنشئ استحقاق License Key مرة واحدة مع حد التنشيط وتاريخ انتهاء الصلاحية والتعليمات التي تريدها، وأرفقه بأي منتج، وسيتولى Dodo Payments إنشاء مفتاح وتسليمه لكل عملية شراء أو مقعد اشتراك تلقائيًا.
ما هي مفاتيح التراخيص؟
مفاتيح التراخيص هي رموز فريدة تسمح بالوصول إلى منتجك. وهي مناسبة لـ:- ترخيص البرامج: تطبيقات سطح المكتب والإضافات وCLIs
- عناصر التحكم لكل مقعد: تحديد عدد عمليات التنشيط لكل مستخدم أو جهاز
- المنتجات الرقمية: تقييد الوصول إلى التنزيلات أو التحديثات أو الميزات المميزة
إنشاء استحقاق License Key
1
Open Entitlements
انتقل إلى الاستحقاقات في لوحة تحكم Dodo Payments وانقر على + لإنشاء استحقاق جديد.
2
Choose License Key
حدّد License Key باعتباره التكامل. اضبط سلوك كل مفتاح يتم إصداره:
- Activations Limit: الحد الأقصى لعمليات التنشيط المتزامنة لكل مفتاح (مثلًا،
1لمستخدم واحد، و5لتراخيص الفرق، أو اتركه فارغًا لعدد غير محدود). - Duration: المدة التي يظل فيها المفتاح صالحًا بعد إصداره (مثلًا، 30 يومًا أو سنة واحدة). بالنسبة إلى المفاتيح الصادرة للاشتراكات، اتركه فارغًا؛ إذ تظل المفاتيح صالحة ما دام الاشتراك نشطًا.
- Activation Instructions: التعليمات الموجهة إلى العميل والتي تُرسل مع المفتاح عبر البريد الإلكتروني. أمثلة:
Paste the key in Settings → LicenseأوRun: mycli activate <key>.

3
Save the entitlement
احفظ التغييرات. أصبح الاستحقاق متاحًا الآن لإرفاقه بأي منتج.
إرفاق الاستحقاق بالمنتجات
افتح منتجًا، ووسّع Advanced Settings → Entitlements & Credits، ثم حدّد استحقاق License Key. يمكن لمنتج واحد تسليم مفتاح ترخيص إلى جانب استحقاقات أخرى (الوصول إلى Discord وتنزيلات الملفات والوصول إلى مستودع GitHub وغير ذلك) ضمن عملية الشراء نفسها.
Selecting the License Key entitlement in the product entitlements panel.
كيفية إصدار المفاتيح
يتبع إصدار المفاتيح دورة حياة المنح القياسية:سلوك الكمية
- منتجات الاشتراك: إصدار مفتاح واحد لكل مقعد (
subscriptions.quantity). - المنتجات التي تُشترى مرة واحدة: إصدار مفتاح واحد لكل عنصر في سطر سلة التسوق (
product_cart.quantity). - المنح اليدوية عبر API: إصدار مفتاح واحد بالضبط.
وضع التنفيذ
يحتوي كل استحقاق License Key علىfulfillment_mode الذي يحدد الجهة التي توفّر المفتاح:
auto(الافتراضي): ينشئ Dodo Payments المفتاح ويرسله عبر البريد الإلكتروني تلقائيًا عند الدفع أو بدء الاشتراك. هذا هو السلوك الموضح أعلاه، وينطبق عند حذفfulfillment_mode.manual: ينشئ الشراء منحةPendingبدون مفتاح، وتوفّر أنت قيمة كل مفتاح بنفسك. راجع التنفيذ اليدوي أدناه.
التنفيذ اليدوي
بشكل افتراضي، ينشئ Dodo Payments مفتاح ترخيص ويرسله عبر البريد الإلكتروني لحظة إتمام العميل للدفع. باستخدام التنفيذ اليدوي، توفّر المفتاح بنفسك: ينشئ الشراء منحةPending بدون مفتاح، ويرسل إليك إشعارًا، وينتظر منك إرسال قيمة المفتاح. استخدمه عندما تأتي المفاتيح من نظامك الخاص، أو من مورّد تابع لجهة خارجية، أو من مجموعة محدودة من الرموز المطبوعة مسبقًا.
هل تبحث عن طريقة إنشاء خطوة بخطوة؟ راجع دليل تكامل التنفيذ اليدوي لمفاتيح التراخيص للاطلاع على شرح شامل يبدأ من إنشاء المنتج وينتهي بتسليم المفتاح.
متى تستخدمه
يُعد التنفيذ التلقائي الخيار الافتراضي المناسب لمعظم حالات ترخيص البرامج. اختر التنفيذ اليدوي عندما يتعذر على Dodo Payments إنشاء المفتاح بنفسه:- استخدام مفاتيحك الخاصة: ينشئ المفتاح تطبيقك أو منتج سطح المكتب أو خادم التراخيص الخاص بك.
- المورّدون الخارجيون: تعيد بيع مفاتيح يصدرها مزوّد منبع (مفتاح لعبة أو بيانات اعتماد API أو منصة شريكة).
- المخزون المحدود: توزع رموزًا من مجموعة مخصصة مسبقًا وتريد تعيينها واحدًا تلو الآخر.
- المراجعة البشرية: تريد مراجعة عملية الشراء قبل إتاحة الوصول.
تفعيل التنفيذ اليدوي
اضبطfulfillment_mode: "manual" في إعداد تكامل استحقاق License Key:
fulfillment_mode متوافق مع الإصدارات السابقة. لا تحتوي الاستحقاقات التي أُنشئت قبل توفر هذا الإعداد على fulfillment_mode، وتستمر في العمل باعتبارها auto. ولا يؤثر التبديل إلى manual إلا في المنح التي تُنشأ بعد التغيير؛ أما المفاتيح التي تم تسليمها مسبقًا فلا تتأثر.العثور على المنح التي تنتظر التنفيذ
عندما يشتري العميل منتجًا في الوضع اليدوي، تُنشأ المنحة بالحالةPending بدون مفتاح، ويتم تشغيل webhook entitlement_grant.created مع integration_type: "license_key" وstatus: "Pending". يمكنك الاستجابة لذلك webhook، أو إجراء استقصاء لنقطة النهاية List Customer Grants باستخدام عاملَي التصفية integration_type وstatus:
تسليم المفتاح
أرسل المفتاح باستخدام نقطة النهاية Fulfill License Key Grant. تنتقل المنحة إلىDelivered، ويُرسل المفتاح إلى العميل تلقائيًا — في رسالة البريد الإلكتروني نفسها التي كان سيتلقاها عند استخدام التنفيذ التلقائي.
cURL
activations_limit وexpires_at اختياريًا، ويُستخدم إعداد الاستحقاق عند حذفه. يمكن تنفيذ كل منحة مرة واحدة؛ وتؤدي إعادة محاولة تنفيذ منحة نُفذت مسبقًا إلى إرجاع 409 بدلًا من إصدار مفتاح ثانٍ.
لا تحتاج إلى إرسال المفتاح عبر البريد الإلكتروني بنفسك — إذ يتم التسليم تلقائيًا عند تنفيذ المنحة. ويختلف ذلك عن استيراد المفاتيح عبر
POST /license_keys، الذي لا يرسل إشعارًا إلى العميل عمدًا.تنشيط الترخيص والتحقق منه وإلغاء تنشيطه
تُعد نقاط نهاية API الخاصة بالتنشيط والتحقق وإلغاء التنشيط عامة ولا تتطلب مفتاح API. استخدمها مباشرةً من برامج سطح المكتب أو CLIs أو العملاء المستندين إلى المتصفح للتحقق من المفاتيح أثناء التشغيل.نقاط النهاية العامة: نقاط نهاية تنشيط التراخيص وإلغاء تنشيطها والتحقق منها عامة ولا تتطلب مفتاح API. استدعها مباشرةً من تطبيقات العملاء من دون كشف بيانات اعتماد API الخاصة بك.
تنشيط ترخيص
التحقق من ترخيص
إلغاء تنشيط مثيل تنشيط
إدارة المفاتيح
افتح استحقاق License Key من لوحة التحكم لعرض كل منحة (صف واحد لكل مفتاح عميل) مع تاريخ التسليم وعدد عمليات التنشيط وإجراء للإبطال. تعرض تفاصيل كل منحة مفتاح الترخيص الأساسي وتاريخ انتهاء الصلاحية وعمليات التنشيط المستخدمة وحد التنشيط. يمكنك أيضًا إدراج المنح برمجيًا:استيراد مفاتيح التراخيص الحالية عبر API
هل لديك مفاتيح تراخيص موجودة في نظام آخر؟ استخدم API Create License Key لاستيرادها إلى Dodo Payments. يتيح لك ذلك نقل المفاتيح الحالية من دون التأثير في عملائك — إذ يستمرون في تنشيط المفاتيح والتحقق منها وإلغاء تنشيطها باستخدام سلاسل المفاتيح نفسها من دون إعادة إصدارها.كيف تختلف المفاتيح حسب المصدر
استخدم الحقل
source في سجلات مفاتيح الترخيص للتمييز بين المخزون المُرحّل والمفاتيح التي تم تنفيذها يدويًا والمفاتيح المُصدرة تلقائيًا عند إجراء المطابقة أو التدقيق. اقرأه من كائن license_key في المنح التي يتم إرجاعها بواسطة List Grants؛ فنقطة النهاية القديمة GET /license_keys مهملة.
مفاتيح التراخيص في عنوان URL للعودة
عند إتمام العميل عملية شراء لمنتج يتضمن استحقاق License Key، يُضاف المفتاح المُنشأ تلقائيًا إلىreturn_url باعتباره معلمة query. يتيح لك ذلك عرض المفتاح فورًا في صفحة النجاح من دون إجراء استدعاء API إضافي.
subscription_id بدلًا من payment_id:
إدارة API
Lifecycle Operations (Public Endpoints)
Lifecycle Operations (Public Endpoints)
التنشيط وإلغاء التنشيط والتحقق عمليات عامة؛ ولا يلزم مفتاح API.
Activate License
أنشئ مثيل تنشيط لمفتاح ترخيص أو سجّله.
Deactivate License
أبطل تنشيطًا سابقًا لتحرير السعة.
Validate License
تحقق من الأصالة والحالة والقيود قبل منح الوصول.
License Key Management
License Key Management
أنشئ سجلات مفاتيح التراخيص الفردية وأدرجها واسترجعها وحدّثها. استخدم هذه العمليات لاستيراد المفاتيح الحالية أو جلب تفاصيل الاستخدام.
Create License Key
أنشئ مفتاح ترخيص جديدًا أو استورد مفتاحًا موجودًا.
List License Keys
استعرض جميع المفاتيح مع تفاصيل الحالة والاستخدام.
Get License Key
استرد مفتاحًا محددًا وبياناته الوصفية.
Update License Key
عدّل تاريخ انتهاء الصلاحية أو حدود التفعيل، أو فعّل مفتاحًا أو عطّله.
Entitlement Management
Entitlement Management
أدر استحقاق مفتاح الترخيص نفسه: حد التفعيل والمدة والتعليمات.
Create Entitlement
أنشئ استحقاق مفتاح ترخيص.
Update Entitlement
حدّث إعدادات الاستحقاق.
List Grants
اعرض المفاتيح المُصدرة لاستحقاق.
Revoke Grant
ألغِ مفتاح العميل يدويًا.
Webhooks
يؤدي تسليم مفتاح الترخيص وإلغاؤه إلى تشغيل أحداثentitlement_grant.* webhook events الأربعة. تتضمن حمولة المنح كائن license_key مكتملًا بالمفتاح وتاريخ انتهاء الصلاحية وعدد مرات التفعيل المستخدمة والحد الأقصى.
تستمر أحداث license_key.* القديمة (license_key.created) في التشغيل لدورة حياة سجل مفتاح الترخيص الأساسي؛ راجع صفحة حمولة License Key webhook.
مفاتيح الترخيص القديمة
تم ترحيل المنتجات التي أُنشئت باستخدام العلامة
license_key_enabled القديمة تلقائيًا إلى استحقاق مفتاح ترخيص. عملية الترحيل شفافة: تستمر مفاتيح العملاء الحاليين في العمل دون تغيير، وتستمر نقاط النهاية العامة /licenses/activate و/licenses/validate و/licenses/deactivate في العمل، كما تستمر نقاط نهاية API /license_keys/* في القراءة والكتابة في مخزن المفاتيح نفسه.يظل قسم مفاتيح الترخيص المستقل في لوحة التحكم متاحًا كقائمة مسطحة بكل مفتاح تم إصداره، وهو مفيد للتدقيق والبحث. يجب إجراء الإعدادات الجديدة (تغيير حدود التفعيل أو المدد أو التعليمات) من خلال تحرير استحقاق مفتاح الترخيص المُرحّل ضمن الاستحقاقات.أفضل الممارسات
- اجعل حدود التفعيل واضحة: اختر قيمًا افتراضية مناسبة (1 لتطبيقات المستخدم الواحد، و3–5 لتراخيص الفرق) ووثّقها.
- قدّم تعليمات تفعيل دقيقة: ينسخ العملاء هذه التعليمات من بريدهم الإلكتروني، لذا فإن المسارات والأوامر الدقيقة تقلل من طلبات الدعم.
- تحقق من المفاتيح من جهة الخادم: بالنسبة إلى المنتجات المتصلة بالشبكة، تحقّق عبر
/licenses/validateبدلًا من تخزين التفعيل مؤقتًا محليًا. - استخدم Webhooks للإلغاء: استمع إلى
entitlement_grant.revokedلتعطيل الميزات داخل التطبيق فورًا عند إلغاء العميل أو استرداده للمبلغ. - اختبر الاشتراكات وعمليات الشراء لمرة واحدة: يختلف سلوك مفتاح الترخيص بينهما اختلافات دقيقة، لذا اختبر كليهما قبل الإطلاق.