मुख्य सामग्री पर जाएँ
LICENTIVO / INTEGRATION

सुरक्षित व्यावसायिक कोड ब्लॉक के साथ Ruby सॉफ़्टवेयर लाइसेंसिंग

Ruby gem स्थापित करें, ग्राहक लाइसेंस सक्रिय या बहाल करें और Ruby ब्लॉक से वास्तविक निर्यात सुरक्षित करें। नेटिव कोर सत्यापित अनुमति, डिवाइस क्रेडेंशियल और नीति की हार्टबीट सँभालता है।

Ruby 3.1+अपडेट

1. उत्पाद और लाइसेंस तैयार करें

डिवाइस-बद्ध लाइसेंस और सामान्य export फ़ीचर से शुरू करें। बुनियादी अनुमति प्रक्रिया चलने के बाद उपयोग गणना जोड़ें।

डिवाइस कोटा वर्तमान सक्रियणों से गिना जाता है और रिलीज़ पर लौटता है। सामान्य लाइसेंस ऑफ़लाइन भी गिने जाते हैं; फ्लोटिंग लाइसेंस की लीज़ समाप्त होने पर भी कोटा अपने आप लौटता है।

  1. कंसोल > उत्पाद से उत्पाद ID कॉपी करें। उसी उत्पाद की हस्ताक्षर सार्वजनिक कुंजियाँ खोलें और हर कुंजी ID/सार्वजनिक कुंजी जोड़ी को आरंभिक कोड में डालें; YOUR_PRODUCT_ID, YOUR_KEY_ID और YOUR_PUBLIC_KEY बदलें। त्वरित एकीकरण यह कोड भी बना सकता है। उत्पाद कॉन्फ़िगरेशन फ़ाइल नहीं चाहिए; SDK डिफ़ॉल्ट रूप से https://www.licentivo.com से जुड़ता है।
  2. त्वरित एकीकरण में उत्पाद बनाएँ या चुनें। नीति में export फ़ीचर सक्षम करें और परीक्षण लाइसेंस तैयार करें।

2. SDK स्थापित करें

अपने ऐप प्रोजेक्ट में नीचे दिया गया कमांड चलाकर या बिल्ड डिपेंडेंसी जोड़कर SDK 0.11.6 इंस्टॉल करें। पैकेज मैनेजर SDK प्राप्त करता है; सोर्स ZIP डाउनलोड करके निकालने या लोकल सोर्स पाथ सेट करने की ज़रूरत नहीं है।

Terminal
gem install licentivo-sdk --version 0.11.6

3. वास्तविक निर्यात सुरक्षित करें

अपने ऐप के शुरू होने या सक्रियण पर SDK आरंभ करें। सक्रियण फ़ॉर्म से ग्राहक की कुंजी पढ़ें और उत्पाद ID तथा विश्वसनीय कुंजियाँ दें। ऐप बंद होने तक क्लाइंट रखें। वास्तविक कार्य के प्रवेश पर 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 बुलाएँ। व्यावसायिक कॉलबैक के भीतर क्लाइंट बंद न करें। SDK असफल ऑपरेशन सँभालने के बाद Ruby exception आगे भेजता है।

5. चलाएँ और परिणाम जाँचें

कंसोल > उत्पाद से उत्पाद ID कॉपी करें। उसी उत्पाद की हस्ताक्षर सार्वजनिक कुंजियाँ खोलें और हर कुंजी ID/सार्वजनिक कुंजी जोड़ी को आरंभिक कोड में डालें; YOUR_PRODUCT_ID, YOUR_KEY_ID और YOUR_PUBLIC_KEY बदलें। त्वरित एकीकरण यह कोड भी बना सकता है। उत्पाद कॉन्फ़िगरेशन फ़ाइल नहीं चाहिए; SDK डिफ़ॉल्ट रूप से https://www.licentivo.com से जुड़ता है।

  1. मान्य export अधिकार वाले लाइसेंस से 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

सामान्य एकीकरण समस्याएँ

उत्पाद ID, हर कुंजी ID/सार्वजनिक कुंजी जोड़ी और ग्राहक लाइसेंस जाँचें। सार्वजनिक कुंजियाँ उत्पाद की हैं; लाइसेंस और डिवाइस प्रमाण अलग हैं। परीक्षण कुंजियाँ या प्रबंधन API Key वितरित न करें।

फ़ीचर अस्वीकृत, डिवाइस सीमा पूरी या लाइसेंस समाप्त हो तो कंसोल में लाइसेंस और नीति जाँचें। ग्राहक को SDK त्रुटि दिखाएँ। असफल अनुमति पर निर्यात फ़ंक्शन न चलाएँ।

RunFeature फ़ीचर अधिकार जाँचता है; गणना वाला विकल्प निर्धारित उपयोग आरक्षित करके हिसाब पूरा करता है। हर वास्तविक काम की स्थिर ऑपरेशन ID रखें और बाधित काम बहाल करने से पहले स्थायी परिणाम जाँचें।

licentivo लोड न हो तो gem स्थापना और प्रोग्राम चलाने में वही Ruby वातावरण इस्तेमाल होने की जाँच करें। Windows स्रोत बिल्ड में LICENTIVO_CURL_ROOT सेट करें और मेल खाता libcurl DLL, PATH पर उपलब्ध रखें।