1. Siapkan produk dan lisensi
Mulailah dengan lisensi yang dikunci node dan fitur ekspor biasa. Tambahkan penggunaan terukur hanya setelah alur otorisasi dasar berfungsi.
Kuota menghitung aktivasi saat ini dan kembali setelah dilepas. Lisensi biasa tetap dihitung saat luring; lisensi mengambang juga mengembalikan kuota ketika sewanya berakhir.
- Salin ID produk dari Konsol > Produk. Buka kunci publik penandatanganan produk yang sama, lalu masukkan semua pasangan ID kunci/kunci publik ke kode inisialisasi untuk mengganti YOUR_PRODUCT_ID, YOUR_KEY_ID, dan YOUR_PUBLIC_KEY. Integrasi cepat juga dapat menghasilkan kode ini. Tidak perlu berkas konfigurasi; SDK memakai https://www.licentivo.com secara bawaan.
- Di Integrasi cepat, buat atau pilih produk. Aktifkan fitur bernama ekspor dalam kebijakannya dan siapkan lisensi pengujian.
2. Instal SDK
Publikasi sedang diverifikasi.
3. Melindungi ekspor riil
Inisialisasikan SDK saat aplikasi dimulai atau diaktifkan. Baca kunci pelanggan dari formulir aktivasi, lalu berikan ID produk dan kunci tepercaya. Pertahankan klien sampai aplikasi ditutup. Letakkan RunFeature pada operasi bisnis nyata dan ganti ekspor dengan fungsi Anda.
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. Biarkan klien tetap hidup sampai dimatikan
Contoh baris perintah ini melakukan satu operasi dan keluar. Dalam aplikasi desktop, buka satu klien saat startup, aktifkan fitur callback dari tindakan ekspor, dan tutup klien hanya saat aplikasi keluar.
Setelah aktivasi, permulaan selanjutnya dapat membiarkan LICENTIVO_LICENSE_KEY kosong dan memulihkan kredensial pribadi di bawah lokasi pengguna dan cache yang sama. Simpan kredensial tersebut di direktori data aplikasi pengguna. Penutupan menghentikan detak jantung dan mengembalikan kursi terapung; pintu keluar normal tidak boleh menonaktifkan perangkat yang terkunci node.
Akses offline hanya tersedia jika kebijakan mengizinkannya dan izin yang ditandatangani tetap valid. Fitur yang sudah habis masa berlakunya atau ditolak harus tetap diblokir. Operasi terukur memerlukan koneksi jaringan.
Untuk Swing atau JavaFX, mulai otorisasi dari thread UI dan susun pemberitahuan latar belakang ke thread UI. Jaga agar Klien pemilik tetap hidup sepanjang masa hidup; coba-dengan-sumber daya menutupnya saat keluar.
5. Jalankan dan verifikasi hasilnya
Salin ID produk dari Konsol > Produk. Buka kunci publik penandatanganan produk yang sama, lalu masukkan semua pasangan ID kunci/kunci publik ke kode inisialisasi untuk mengganti YOUR_PRODUCT_ID, YOUR_KEY_ID, dan YOUR_PUBLIC_KEY. Integrasi cepat juga dapat menghasilkan kode ini. Tidak perlu berkas konfigurasi; SDK memakai https://www.licentivo.com secara bawaan.
- Konfirmasikan bahwa lisensi yang valid dengan akses ekspor menghasilkan licensed-report.txt.
- Hapus LICENTIVO_LICENSE_KEY dan jalankan kembali menggunakan akun pengguna yang sama: kredensial yang disimpan akan dipulihkan.
- Setel LICENTIVO_FEATURE ke fitur yang tidak ada dalam lisensi dan LICENTIVO_OUTPUT ke nama file baru. Program harus melaporkan penolakan tanpa membuat file tersebut.
- Uji mulai ulang offline hanya dengan izin bertanda tangan yang diizinkan dan belum kedaluwarsa. Jangan mengabaikan pemeriksaan fitur yang gagal setelah kesalahan penyegaran latar belakang.
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" QuickstartMasalah integrasi yang umum
Periksa ID produk, semua pasangan ID kunci/kunci publik, dan lisensi pelanggan. Kunci publik milik produk; lisensi dan kredensial perangkat bersifat terpisah. Jangan bagikan kunci uji atau API Key pengelolaan.
Fitur ditolak, batas perangkat tercapai, atau lisensi kedaluwarsa: periksa lisensi dan kebijakan di konsol, lalu tampilkan kesalahan SDK kepada pelanggan. Otorisasi yang gagal tidak boleh memanggil fungsi ekspor.
RunFeature memeriksa akses fitur; varian terukur mencadangkan dan menyelesaikan penggunaan yang dikonfigurasi. Gunakan ID operasi yang stabil untuk setiap pekerjaan bisnis nyata dan periksa hasil yang tahan lama sebelum memulihkan pekerjaan yang terputus.
Kelas tidak ditemukan: jauhkan keduanya dan SDK JAR di classpath runtime. Windows menggunakan titik koma di antara entri; Linux dan macOS menggunakan titik dua.