1. পণ্য এবং লাইসেন্স প্রস্তুত করুন
একটি নোড-লকড লাইসেন্স এবং একটি সাধারণ রপ্তানি বৈশিষ্ট্য দিয়ে শুরু করুন। মৌলিক অনুমোদন প্রবাহ কাজ করার পরেই মিটারযুক্ত ব্যবহার যোগ করুন।
ডিভাইস কোটা বর্তমান সক্রিয়করণ অনুযায়ী গণনা হয় এবং মুক্ত করলে ফেরত আসে। সাধারণ লাইসেন্স অফলাইনেও গণনা হয়; ফ্লোটিং লাইসেন্সের লিজ শেষ হলেও কোটা স্বয়ংক্রিয়ভাবে ফেরত আসে।
- কনসোল > পণ্য থেকে পণ্যের ID কপি করুন। একই পণ্যের স্বাক্ষরের পাবলিক কী খুলে প্রতিটি কী ID/পাবলিক কী জোড়া ইনিশিয়ালাইজেশন কোডে বসান; YOUR_PRODUCT_ID, YOUR_KEY_ID এবং YOUR_PUBLIC_KEY বদলান। দ্রুত ইন্টিগ্রেশন থেকেও এই কোড পাওয়া যায়। পণ্যের কনফিগারেশন ফাইল লাগে না; SDK ডিফল্টভাবে https://www.licentivo.com ব্যবহার করে।
- দ্রুত ইন্টিগ্রেশনে, একটি পণ্য তৈরি করুন বা নির্বাচন করুন। এর নীতিতে রপ্তানি নামের একটি বৈশিষ্ট্য সক্রিয় করুন এবং একটি পরীক্ষা লাইসেন্স প্রস্তুত করুন।
2. SDK ইনস্টল করুন
প্রকাশনা যাচাই চলছে।
3. একটি বাস্তব রপ্তানি রক্ষা করুন
অ্যাপ চালু বা সক্রিয় করার সময় SDK শুরু করুন। সক্রিয়করণ ফর্ম থেকে গ্রাহকের কী পড়ে পণ্যের ID ও বিশ্বস্ত কী দিন। অ্যাপ বন্ধ হওয়া পর্যন্ত ক্লায়েন্ট রাখুন। আসল কাজের প্রবেশপথে 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 খালি ছেড়ে দিতে পারে এবং একই ব্যবহারকারী এবং ক্যাশে অবস্থানের অধীনে ব্যক্তিগত শংসাপত্র পুনরুদ্ধার করতে পারে। ব্যবহারকারী অ্যাপ্লিকেশন-ডেটা ডিরেক্টরিতে সেই শংসাপত্রটি রাখুন। বন্ধ হওয়া হার্টবিট বন্ধ করে এবং ভাসমান আসন ফিরিয়ে দেয়; স্বাভাবিক প্রস্থান একটি নোড-লক ডিভাইস নিষ্ক্রিয় করা উচিত নয়.
অফলাইন অ্যাক্সেস শুধুমাত্র তখনই পাওয়া যায় যখন নীতি অনুমতি দেয় এবং স্বাক্ষরিত অনুদান বৈধ থাকে। একটি মেয়াদ উত্তীর্ণ বা অস্বীকৃত বৈশিষ্ট্য অবরুদ্ধ থাকা আবশ্যক. পরিমাপিত অপারেশনগুলির জন্য একটি নেটওয়ার্ক সংযোগ প্রয়োজন৷
সুইং বা JavaFX-এর জন্য, UI থ্রেড থেকে অনুমোদন শুরু করুন এবং UI থ্রেডে মার্শাল ব্যাকগ্রাউন্ড বিজ্ঞপ্তিগুলি। নিজের ক্লায়েন্টকে জানলার মাধ্যমে জীবিত রাখুন; প্রস্থান করার সময় সম্পদের সাথে চেষ্টা করুন এটি বন্ধ করে দেয়।
5. চালান এবং ফলাফল যাচাই করুন
কনসোল > পণ্য থেকে পণ্যের ID কপি করুন। একই পণ্যের স্বাক্ষরের পাবলিক কী খুলে প্রতিটি কী ID/পাবলিক কী জোড়া ইনিশিয়ালাইজেশন কোডে বসান; 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সাধারণ ইন্টিগ্রেশন সমস্যা
পণ্যের ID, প্রতিটি কী ID/পাবলিক কী জোড়া এবং গ্রাহকের লাইসেন্স যাচাই করুন। পাবলিক কী পণ্যের; লাইসেন্স ও ডিভাইস পরিচয়পত্র আলাদা। পরীক্ষার কী বা ব্যবস্থাপনার API Key বিতরণ করবেন না।
বৈশিষ্ট্য অস্বীকার করা হয়েছে, ডিভাইসের সীমা পৌঁছে গেছে বা লাইসেন্সের মেয়াদ শেষ হয়েছে: কনসোলে লাইসেন্স এবং নীতি পরীক্ষা করুন, তারপর গ্রাহককে SDK ত্রুটি দেখান। একটি ব্যর্থ অনুমোদন রপ্তানি ফাংশন কল করা উচিত নয়.
RunFeature বৈশিষ্ট্য অ্যাক্সেস পরীক্ষা করে; মিটারযুক্ত বৈকল্পিক সংরক্ষণ করে এবং কনফিগার করা ব্যবহার নিষ্পত্তি করে। প্রকৃত ব্যবসায়িক কাজের প্রতি একটি স্থিতিশীল অপারেশন আইডি ব্যবহার করুন এবং একটি বাধাপ্রাপ্ত কাজ পুনরুদ্ধার করার আগে এর টেকসই ফলাফল পরিদর্শন করুন।
ক্লাস পাওয়া যায় নি: রানটাইম ক্লাসপাথে SDK JAR দুটোই বাইরে রাখুন। উইন্ডোজ এন্ট্রিগুলির মধ্যে একটি সেমিকোলন ব্যবহার করে; লিনাক্স এবং ম্যাকোস একটি কোলন ব্যবহার করে।