انتقل إلى المحتوى
LICENTIVO / INTEGRATION

ترخيص برامج Ruby مع كتل الأعمال المحمية

قم بتثبيت جوهرة Ruby، وقم بتنشيط ترخيص العميل أو استعادته وحماية التصدير الحقيقي باستخدام كتلة Ruby. يدير المركز الأصلي المنح التي تم التحقق منها وبيانات اعتماد الجهاز ونبضات السياسة.

Ruby 3.1+تم التحديث

1. قم بإعداد المنتج والترخيص

ابدأ بترخيص مقفل بالعقدة وميزة تصدير عادية. قم بإضافة الاستخدام المقنن فقط بعد عمل تدفق التفويض الأساسي.

تُحسب حصة الأجهزة من التفعيلات الحالية وتعود عند التحرير. تبقى التراخيص العادية محسوبة دون اتصال، وتعيد التراخيص العائمة الحصة تلقائيًا أيضًا عند انتهاء الإيجار.

  1. انسخ معرّف المنتج من لوحة التحكم > المنتجات. افتح مفاتيح التوقيع العامة للمنتج نفسه والصق جميع أزواج معرّف المفتاح والمفتاح العام في كود التهيئة بدلاً من YOUR_PRODUCT_ID وYOUR_KEY_ID وYOUR_PUBLIC_KEY. يمكن للتكامل السريع توليد هذا الكود. لا يلزم ملف إعداد للمنتج؛ يتصل SDK افتراضياً بـ https://www.licentivo.com.
  2. في التكامل السريع، قم بإنشاء منتج أو تحديده. قم بتمكين ميزة تسمى التصدير في سياستها وإعداد ترخيص اختباري.

2. قم بتثبيت SDK

ثبّت SDK 0.11.6 بتشغيل الأمر أدناه داخل مشروع تطبيقك أو بإضافة تبعية البناء. يتولى مدير الحزم جلب SDK؛ لا حاجة إلى تنزيل ملفات المصدر وفك ضغطها أو إعداد مسار محلي.

Terminal
gem install licentivo-sdk --version 0.11.6

3. حماية التصدير الحقيقي

هيّئ SDK عند بدء برنامجك أو تنشيطه. اقرأ مفتاح العميل من نافذة التنشيط ومرّر معرّف المنتج والمفاتيح الموثوقة. احتفظ بالعميل حتى إغلاق التطبيق. ضع RunFeature عند العملية الفعلية واستبدل التصدير بوظيفتك.

Ruby 3.1+ · main.rb
# frozen_string_literal: true
require 'licentivo'

# BEGIN LICENTIVO PRODUCT
# Copy Product ID and all key ID/public key pairs from Console > Products > Signing public keys.
PRODUCT_ID = 'YOUR_PRODUCT_ID'
TRUSTED_KEYS = {'YOUR_KEY_ID' => 'YOUR_PUBLIC_KEY'}.freeze
# END LICENTIVO PRODUCT

def setting(name, fallback)
  value = ENV[name]
  value.nil? || value.empty? ? fallback : value
end

def export_report(path)
  # Replace this write with your existing export operation.
  File.write(path, "A report generated by the licensed application.\n")
end

begin
  # A GUI supplies the activation input. Later starts use an empty key.
  Licentivo::Client.open_product(
    PRODUCT_ID, TRUSTED_KEYS,
    setting('LICENTIVO_LICENSE_KEY', '')
  ) do |client|
    feature = setting('LICENTIVO_FEATURE', 'export')
    path = setting('LICENTIVO_OUTPUT', 'licensed-report.txt')
    if setting('LICENTIVO_METERED', '0') == '1'
      client.run_metered_feature(feature, 1, setting('LICENTIVO_OPERATION_ID', '')) { export_report(path) }
    else
      client.run_feature(feature) { export_report(path) }
    end
    puts "License OK: #{feature} is available\nExport completed: #{path}"
  end # Real app: keep the owning block/client alive until shutdown.
rescue StandardError => error
  warn error.message
  exit 2
end

4. إبقاء العميل على قيد الحياة حتى إيقاف التشغيل

يقوم مثال سطر الأوامر هذا بتنفيذ عملية واحدة والخروج. في تطبيق سطح المكتب، افتح عميلًا واحدًا عند بدء التشغيل، واستدع رد اتصال الميزة من إجراء التصدير، وأغلق العميل فقط عند خروج التطبيق.

بعد التنشيط، يمكن للبدايات اللاحقة ترك LICENTIVO_LICENSE_KEY فارغًا واستعادة بيانات الاعتماد الخاصة ضمن نفس المستخدم وموقع ذاكرة التخزين المؤقت. احتفظ ببيانات الاعتماد هذه في دليل بيانات تطبيق المستخدم. الإغلاق يوقف نبضات القلب ويعيد المقاعد العائمة. يجب ألا يؤدي الخروج العادي إلى إلغاء تنشيط الجهاز المقفل بالعقدة.

يتوفر الوصول دون اتصال بالإنترنت فقط عندما تسمح السياسة بذلك وتظل المنحة الموقعة صالحة. يجب أن تظل الميزة منتهية الصلاحية أو المرفوضة محظورة. تتطلب العمليات المقاسة اتصالاً بالشبكة.

الكتلة open_with_license تمتلك العميل. احتفظ بحلقة التطبيق طوال عمرها واستدعاء run_feature لكل إجراء محمي. لا تغلق العميل من داخل دالة الاستدعاء الراجع التجاري. تنتشر استثناءات Ruby بعد معالجة SDK للعملية الفاشلة.

5. قم بالتشغيل والتحقق من النتيجة

انسخ معرّف المنتج من لوحة التحكم > المنتجات. افتح مفاتيح التوقيع العامة للمنتج نفسه والصق جميع أزواج معرّف المفتاح والمفتاح العام في كود التهيئة بدلاً من YOUR_PRODUCT_ID وYOUR_KEY_ID وYOUR_PUBLIC_KEY. يمكن للتكامل السريع توليد هذا الكود. لا يلزم ملف إعداد للمنتج؛ يتصل SDK افتراضياً بـ https://www.licentivo.com.

  1. تأكد من أن الترخيص الصالح الذي يتمتع بحق الوصول للتصدير ينشئ licensed-report.txt.
  2. امسح LICENTIVO_LICENSE_KEY وقم بتشغيله مرة أخرى باستخدام حساب المستخدم نفسه: يجب استعادة بيانات الاعتماد المحفوظة.
  3. قم بتعيين LICENTIVO_FEATURE إلى ميزة غير موجودة في الترخيص وLICENTIVO_OUTPUT إلى اسم ملف جديد. يجب أن يقوم البرنامج بالإبلاغ عن الرفض دون إنشاء هذا الملف.
  4. اختبر إعادة التشغيل في وضع عدم الاتصال فقط من خلال منحة موقعة مسموح بها وغير منتهية الصلاحية. لا تتجاوز فحص الميزات الفاشل بعد حدوث خطأ في تحديث الخلفية.
Windows · PowerShell
$env:LICENTIVO_LICENSE_KEY = 'YOUR_LICENSE_KEY'
ruby main.rb
Linux / macOS · Bash
LICENTIVO_LICENSE_KEY=YOUR_LICENSE_KEY ruby main.rb

مشاكل التكامل المشتركة

تحقق من معرّف المنتج وجميع أزواج معرّف المفتاح والمفتاح العام وترخيص العميل. المفاتيح العامة تخص المنتج؛ التراخيص وبيانات اعتماد الأجهزة منفصلة. لا توزّع مفاتيح الاختبار أو مفاتيح API الإدارية.

تم رفض الميزة، أو تم الوصول إلى حد الجهاز أو انتهت صلاحية الترخيص: افحص الترخيص والسياسة في وحدة التحكم، ثم أظهر الخطأ SDK للعميل. يجب ألا يستدعي التفويض الفاشل وظيفة التصدير.

يتحقق RunFeature من الوصول إلى الميزات؛ يقوم المتغير المقيس باحتجاز الاستخدام الذي تم تكوينه وتسويته. استخدم معرف عملية ثابتًا لكل مهمة عمل حقيقية وافحص نتائجها الدائمة قبل استعادة مهمة متقطعة.

لا يمكن تحميل licentivo: تأكد من أن تثبيت الجوهرة وتنفيذ البرنامج يستخدمان نفس بيئة Ruby. للحصول على مصدر مبني على Windows، قم بتعيين LICENTIVO_CURL_ROOT واجعل libcurl المطابق DLL متاحًا على PATH.