1. قم بإعداد المنتج والترخيص
ابدأ بترخيص مقفل بالعقدة وميزة تصدير عادية. قم بإضافة الاستخدام المقنن فقط بعد عمل تدفق التفويض الأساسي.
تُحسب حصة الأجهزة من التفعيلات الحالية وتعود عند التحرير. تبقى التراخيص العادية محسوبة دون اتصال، وتعيد التراخيص العائمة الحصة تلقائيًا أيضًا عند انتهاء الإيجار.
- انسخ معرّف المنتج من لوحة التحكم > المنتجات. افتح مفاتيح التوقيع العامة للمنتج نفسه والصق جميع أزواج معرّف المفتاح والمفتاح العام في كود التهيئة بدلاً من YOUR_PRODUCT_ID وYOUR_KEY_ID وYOUR_PUBLIC_KEY. يمكن للتكامل السريع توليد هذا الكود. لا يلزم ملف إعداد للمنتج؛ يتصل SDK افتراضياً بـ https://www.licentivo.com.
- في التكامل السريع، قم بإنشاء منتج أو تحديده. قم بتمكين ميزة تسمى التصدير في سياستها وإعداد ترخيص اختباري.
2. قم بتثبيت SDK
جارٍ التحقق من النشر.
3. حماية التصدير الحقيقي
هيّئ SDK عند بدء برنامجك أو تنشيطه. اقرأ مفتاح العميل من نافذة التنشيط ومرّر معرّف المنتج والمفاتيح الموثوقة. احتفظ بالعميل حتى إغلاق التطبيق. ضع RunFeature عند العملية الفعلية واستبدل التصدير بوظيفتك.
import licentivo.Client;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Map;
/** A single protected operation. Keep Client alive while your application runs. */
public final class Quickstart {
// BEGIN LICENTIVO PRODUCT
// Copy Product ID and all key ID/public key pairs from Console > Products > Signing public keys.
private static final String PRODUCT_ID = "YOUR_PRODUCT_ID";
private static final Map<String,String> TRUSTED_KEYS = Map.of("YOUR_KEY_ID", "YOUR_PUBLIC_KEY");
// END LICENTIVO PRODUCT
private static String setting(String name, String fallback) {
String value = System.getenv(name);
return value == null || value.isEmpty() ? fallback : value;
}
static void exportReport(String path) throws Exception {
// Replace this write with your existing, non-metered export operation.
Files.writeString(Path.of(path), "A report generated by the licensed application.\n");
}
public static void main(String[] args) {
// In a GUI, read the activation input. Later starts pass an empty key.
try (var client = Client.openProduct(PRODUCT_ID, TRUSTED_KEYS,
setting("LICENTIVO_LICENSE_KEY", ""), error -> System.err.println("Background verification: " + error.getMessage()))) {
String feature = setting("LICENTIVO_FEATURE", "export");
String path = setting("LICENTIVO_OUTPUT", "licensed-report.txt");
if (setting("LICENTIVO_METERED", "").equals("1"))
client.runMeteredFeature(feature, 1, setting("LICENTIVO_OPERATION_ID", ""), () -> exportReport(path));
else
client.runFeature(feature, () -> exportReport(path));
System.out.println("License OK: " + feature + " is available\nExport completed: " + path);
} catch (Exception error) {
System.err.println(error.getMessage());
System.exit(2);
}
}
}
4. إبقاء العميل على قيد الحياة حتى إيقاف التشغيل
يقوم مثال سطر الأوامر هذا بتنفيذ عملية واحدة والخروج. في تطبيق سطح المكتب، افتح عميلًا واحدًا عند بدء التشغيل، واستدع رد اتصال الميزة من إجراء التصدير، وأغلق العميل فقط عند خروج التطبيق.
بعد التنشيط، يمكن للبدايات اللاحقة ترك LICENTIVO_LICENSE_KEY فارغًا واستعادة بيانات الاعتماد الخاصة ضمن نفس المستخدم وموقع ذاكرة التخزين المؤقت. احتفظ ببيانات الاعتماد هذه في دليل بيانات تطبيق المستخدم. الإغلاق يوقف نبضات القلب ويعيد المقاعد العائمة. يجب ألا يؤدي الخروج العادي إلى إلغاء تنشيط الجهاز المقفل بالعقدة.
يتوفر الوصول دون اتصال بالإنترنت فقط عندما تسمح السياسة بذلك وتظل المنحة الموقعة صالحة. يجب أن تظل الميزة منتهية الصلاحية أو المرفوضة محظورة. تتطلب العمليات المقاسة اتصالاً بالشبكة.
بالنسبة إلى Swing أو JavaFX، ابدأ في الترخيص لسلسلة واجهة المستخدم وتنظيم إشعارات الخلفية على سلسلة رسائل واجهة المستخدم. إبقاء العميل المالك على قيد الحياة طوال فترة صلاحية النافذة؛ Try-with-resources يغلقه عند الخروج.
5. قم بالتشغيل والتحقق من النتيجة
انسخ معرّف المنتج من لوحة التحكم > المنتجات. افتح مفاتيح التوقيع العامة للمنتج نفسه والصق جميع أزواج معرّف المفتاح والمفتاح العام في كود التهيئة بدلاً من YOUR_PRODUCT_ID وYOUR_KEY_ID وYOUR_PUBLIC_KEY. يمكن للتكامل السريع توليد هذا الكود. لا يلزم ملف إعداد للمنتج؛ يتصل SDK افتراضياً بـ https://www.licentivo.com.
- تأكد من أن الترخيص الصالح الذي يتمتع بحق الوصول للتصدير ينشئ licensed-report.txt.
- امسح LICENTIVO_LICENSE_KEY وقم بتشغيله مرة أخرى باستخدام حساب المستخدم نفسه: يجب استعادة بيانات الاعتماد المحفوظة.
- قم بتعيين LICENTIVO_FEATURE إلى ميزة غير موجودة في الترخيص وLICENTIVO_OUTPUT إلى اسم ملف جديد. يجب أن يقوم البرنامج بالإبلاغ عن الرفض دون إنشاء هذا الملف.
- اختبر إعادة التشغيل في وضع عدم الاتصال فقط من خلال منحة موقعة مسموح بها وغير منتهية الصلاحية. لا تتجاوز فحص الميزات الفاشل بعد حدوث خطأ في تحديث الخلفية.
javac -cp licentivo-sdk-0.11.6.jar -d out Quickstart.java
$env:LICENTIVO_LICENSE_KEY = 'YOUR_LICENSE_KEY'
java -cp "out;licentivo-sdk-0.11.6.jar" Quickstartjavac -cp licentivo-sdk-0.11.6.jar -d out Quickstart.java
LICENTIVO_LICENSE_KEY=YOUR_LICENSE_KEY java -cp "out:licentivo-sdk-0.11.6.jar" Quickstartمشاكل التكامل المشتركة
تحقق من معرّف المنتج وجميع أزواج معرّف المفتاح والمفتاح العام وترخيص العميل. المفاتيح العامة تخص المنتج؛ التراخيص وبيانات اعتماد الأجهزة منفصلة. لا توزّع مفاتيح الاختبار أو مفاتيح API الإدارية.
تم رفض الميزة، أو تم الوصول إلى حد الجهاز أو انتهت صلاحية الترخيص: افحص الترخيص والسياسة في وحدة التحكم، ثم أظهر الخطأ SDK للعميل. يجب ألا يستدعي التفويض الفاشل وظيفة التصدير.
يتحقق RunFeature من الوصول إلى الميزات؛ يقوم المتغير المقيس باحتجاز الاستخدام الذي تم تكوينه وتسويته. استخدم معرف عملية ثابتًا لكل مهمة عمل حقيقية وافحص نتائجها الدائمة قبل استعادة مهمة متقطعة.
لم يتم العثور على الفئة: احتفظ بكلاهما وSDK JAR في مسار فئة وقت التشغيل. يستخدم Windows فاصلة منقوطة بين الإدخالات؛ يستخدم Linux وmacOS النقطتين.