Lewati ke konten
LICENTIVO / INTEGRATION

Lisensi perangkat lunak Ruby dengan blok bisnis yang dilindungi

Instal permata Ruby, aktifkan atau pulihkan lisensi pelanggan dan lindungi ekspor nyata dengan blok Ruby. Inti asli mengelola izin terverifikasi, kredensial perangkat, dan proses kebijakan.

Ruby 3.1+Diperbarui

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.

  1. 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.
  2. Di Integrasi cepat, buat atau pilih produk. Aktifkan fitur bernama ekspor dalam kebijakannya dan siapkan lisensi pengujian.

2. Instal SDK

Instal SDK 0.11.6 dengan perintah berikut di proyek aplikasi Anda atau tambahkan dependensi build. Pengelola paket mengambil SDK; tidak perlu mengunduh dan mengekstrak kode sumber atau mengatur jalur lokal.

Terminal
gem install licentivo-sdk --version 0.11.6

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.

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. 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.

Blok open_with_license memiliki klien. Pertahankan loop aplikasi dalam masa pakainya dan aktifkan run_feature untuk setiap tindakan yang dilindungi. Jangan tutup klien dari dalam panggilan balik bisnis. Pengecualian Ruby menyebar setelah SDK menangani operasi yang gagal.

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.

  1. Konfirmasikan bahwa lisensi yang valid dengan akses ekspor menghasilkan licensed-report.txt.
  2. Hapus LICENTIVO_LICENSE_KEY dan jalankan kembali menggunakan akun pengguna yang sama: kredensial yang disimpan akan dipulihkan.
  3. 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.
  4. 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.
Windows · PowerShell
$env:LICENTIVO_LICENSE_KEY = 'YOUR_LICENSE_KEY'
ruby main.rb
Linux / macOS · Bash
LICENTIVO_LICENSE_KEY=YOUR_LICENSE_KEY ruby main.rb

Masalah 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.

Tidak dapat memuat licentivo: periksa apakah instalasi permata dan eksekusi program menggunakan lingkungan Ruby yang sama. Untuk sumber yang dibangun di Windows, atur LICENTIVO_CURL_ROOT dan jadikan libcurl DLL yang cocok tersedia di PATH.