مفاتيح التراخيص هي نوع الاستحقاق 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 من دون مفتاح، ويتم تشغيل entitlement_grant.created webhook مع 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 في استجابات 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
أدر استحقاق License Key نفسه: حد التنشيط والمدة والتعليمات.
Create Entitlement
أنشئ استحقاق License Key.
Update Entitlement
حدّث إعدادات الاستحقاق.
List Grants
أدرج المفاتيح الصادرة لاستحقاق.
Revoke Grant
أبطل مفتاح العميل يدويًا.
Webhooks
يؤدي تسليم مفاتيح التراخيص وإبطالها إلى تشغيل أحداثentitlement_grant.* webhook الأربعة. تتضمن حمولة المنحة كائن license_key مكتملًا يحتوي على المفتاح وتاريخ انتهاء الصلاحية وعمليات التنشيط المستخدمة والحد.
تستمر أحداث license_key.* القديمة (license_key.created) في التشغيل لدورة حياة سجل مفتاح الترخيص الأساسي؛ راجع صفحة حمولة License Key webhook.
مفاتيح التراخيص القديمة
تم ترحيل المنتجات تلقائيًا التي أُنشئت باستخدام العلامة
license_key_enabled الأقدم إلى استحقاق License Key. عملية الترحيل شفافة: تستمر مفاتيح العملاء الحاليين في العمل دون تغيير، وتواصل نقاط النهاية العامة /licenses/activate و/licenses/validate و/licenses/deactivate عملها، كما تواصل نقاط نهاية API /license_keys/* القراءة والكتابة في مخزن المفاتيح نفسه.يبقى قسم لوحة التحكم المستقل License Keys متاحًا باعتباره قائمة مسطحة بكل مفتاح تم إصداره، وهو مفيد للتدقيق والبحث. ينبغي إجراء الإعدادات الجديدة (تغيير حدود التنشيط أو المدد أو التعليمات) عبر تعديل استحقاق License Key الذي تم ترحيله ضمن الاستحقاقات.أفضل الممارسات
- اجعل حدود التنشيط واضحة: اختر قيمًا افتراضية مناسبة (1 لتطبيقات المستخدم الواحد، و3–5 لتراخيص الفرق) ووثّقها.
- قدّم تعليمات تنشيط دقيقة: ينسخ العملاء هذه التعليمات من بريدهم الإلكتروني، لذا فإن المسارات والأوامر الدقيقة تقلل طلبات الدعم.
- تحقق من المفاتيح من جهة الخادم: بالنسبة إلى المنتجات المتصلة بالشبكة، تحقّق عبر
/licenses/validateبدلًا من تخزين التنشيط مؤقتًا محليًا. - استخدم webhooks للإبطال: استمع إلى
entitlement_grant.revokedلتعطيل الميزات داخل التطبيق فورًا عند إلغاء العميل أو استرداد المبلغ. - اختبر الاشتراكات والعمليات التي تُشترى مرة واحدة: يختلف سلوك مفتاح الترخيص بينهما بشكل طفيف، لذا اختبر كليهما قبل الإطلاق.