متن پر جائیں
LICENTIVO / INTEGRATION

Python سافٹ ویئر لائسنسنگ: کلید کی تصدیق

Python ایپ میں لائسنس کی تصدیق شامل کریں۔ ورچوئل ماحول بنائیں، لائسنس فعال کریں اور فیچر کی اجازت، محفوظ اسناد اور رسائی مسترد ہونے کی جانچ کریں۔

Python 3.10+ کمانڈ لائن اور ڈیسک ٹاپتازہ کاری

1. Python اور لائسنس یافتہ خصوصیت تیار کریں۔

تجارتی Python کمانڈ لائن یا ڈیسک ٹاپ ایپ میں صارف کی لائسنس کلید شامل کریں اور محفوظ فیچر چلانے سے پہلے اجازت کی جانچ کریں۔ یہ جانچ آپ کی ایپ تک رسائی کو کنٹرول کرتی ہے؛ Python انٹرپریٹر کے اوپن سورس لائسنس کو تبدیل نہیں کرتی۔ ایپ فعالیت کے لیے ان پٹ لیتی ہے اور اصل کام کا کال بیک فراہم کرتی ہے۔

آلات کا کوٹا موجودہ فعال رجسٹریشن کے مطابق گنا جاتا ہے اور آزاد کرنے پر واپس ملتا ہے۔ عام لائسنس آف لائن بھی شمار ہوتے ہیں؛ فلوٹنگ لائسنس کی لیز ختم ہونے پر بھی کوٹا خود واپس ملتا ہے۔

  1. کنسول > مصنوعات سے پروڈکٹ ID کاپی کریں۔ اسی پروڈکٹ کی دستخطی عوامی کلیدیں کھولیں اور ہر کلید ID/عوامی کلید کا جوڑا ابتدائی کوڈ میں درج کریں؛ YOUR_PRODUCT_ID، YOUR_KEY_ID اور YOUR_PUBLIC_KEY تبدیل کریں۔ فوری انضمام یہ کوڈ بھی بنا سکتا ہے۔ پروڈکٹ کی کنفیگریشن فائل درکار نہیں؛ SDK بطورِ طے شدہ https://www.licentivo.com استعمال کرتا ہے۔
  2. Python 3.10 یا بعد میں انسٹال کریں اور پروجیکٹ ڈائرکٹری بنائیں۔
  3. Licentivo کوئیک انٹیگریشن میں، اس کی پالیسی اور لائسنس کے ذریعے اجازت دی گئی غیر میٹرڈ ایکسپورٹ فیچر کے ساتھ پروڈکٹ بنائیں یا منتخب کریں۔

2. ورچوئل ماحول میں انسٹال کریں۔

اپنے ایپ پروجیکٹ میں درج ذیل کمانڈ چلا کر یا بلڈ ڈیپنڈنسی شامل کر کے SDK 0.11.6 انسٹال کریں۔ پیکیج مینیجر SDK حاصل کرتا ہے؛ سورس ZIP ڈاؤن لوڈ اور اَن زِپ کرنے یا مقامی سورس پاتھ مقرر کرنے کی ضرورت نہیں۔

Windows · PowerShell
python -m venv .venv
./.venv/Scripts/python.exe -m pip install "licentivo-sdk==0.11.6"
Linux / macOS · Bash
python3 -m venv .venv
./.venv/bin/python -m pip install "licentivo-sdk==0.11.6"

3. برآمد کرنے سے پہلے لائسنس کی توثیق کریں۔

اپنی ایپ کے آغاز یا فعالیت پر SDK شروع کریں۔ فعالیت فارم سے صارف کی کلید پڑھیں اور پروڈکٹ ID اور قابلِ اعتماد کلیدیں دیں۔ ایپ بند ہونے تک کلائنٹ قائم رکھیں۔ اصل کاروباری عمل کے دروازے پر run_feature رکھیں اور نمونے کی برآمد کی جگہ اپنا فنکشن دیں۔

Python · complete app.py
"""A protected operation to move into your own application's business handler."""
import os
import sys
from pathlib import Path
from licentivo import Client


# 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'}
# END LICENTIVO PRODUCT

def export_report(path):
    # Replace this write with your existing, non-metered export operation.
    Path(path).write_text('A report generated by the licensed application.\n', encoding='utf-8')


def main():
    # In a GUI, read the activation input; later starts pass an empty key.
    with Client.open_product(
        PRODUCT_ID, TRUSTED_KEYS,
        os.getenv('LICENTIVO_LICENSE_KEY', ''),
        on_error=lambda error: print(f'Background verification: {error}', file=sys.stderr),
    ) as client:
        feature = os.getenv('LICENTIVO_FEATURE', 'export')
        path = os.getenv('LICENTIVO_OUTPUT', 'licensed-report.txt')
        action = lambda: export_report(path)
        if os.getenv('LICENTIVO_METERED') == '1':
            client.run_metered_feature(feature, 1, os.getenv('LICENTIVO_OPERATION_ID', ''), action)
        else:
            client.run_feature(feature, action)
        print(f'License OK: {feature} is available\nExport completed: {path}')
    # Keep this context open until your real app exits. No Deactivate on normal exit.


if __name__ == '__main__':
    try:
        main()
    except Exception as error:
        print(str(error), file=sys.stderr)
        sys.exit(2)
Windows · PowerShell
$env:LICENTIVO_LICENSE_KEY = 'YOUR_TEST_LICENSE_KEY'
./.venv/Scripts/python.exe app.py
# On later starts, restore the saved device credential:
Remove-Item Env:LICENTIVO_LICENSE_KEY
./.venv/Scripts/python.exe app.py
Linux / macOS · Bash
export LICENTIVO_LICENSE_KEY='YOUR_TEST_LICENSE_KEY'
./.venv/bin/python app.py
# On later starts, restore the saved device credential:
unset LICENTIVO_LICENSE_KEY
./.venv/bin/python app.py

4. ڈیسک ٹاپ ایپلی کیشن میں کلائنٹ کو زندہ رکھیں

کمانڈ لائن ایکسپورٹ کے لیے، کے ساتھ بلاک پورے آپریشن کا احاطہ کر سکتا ہے۔ ڈیسک ٹاپ ایپلیکیشن کے لیے، ایکٹیویشن کے دوران کلائنٹ کو کھولیں اور اسے ونڈو کے بند ہونے تک رکھیں۔ ہر بٹن کلک کے لیے کلائنٹ نہ بنائیں اور بند نہ کریں۔

آن لائن فعالیت اور نیٹ ورک کے دوسرے کام GUI تھریڈ کے باہر چلائیں، پھر نتائج اپ ڈیٹ کرنے کے لیے UI تھریڈ کو واپس بھیجیں۔ Tkinter ڈیسک ٹاپ مثال نیچے دیے گئے دستاویزی لنک سے الگ فراہم کی گئی ہے؛ pip پیکیج نصب کرنے سے اس مثال کا سورس کوڈ نصب نہیں ہوتا۔

ہر ایکسپورٹ بٹن، شارٹ کٹ یا کمانڈ کو client.run_feature("export", lambda: export_report(path)) کو پکارنا چاہیے۔ شٹ ڈاؤن کال بند ہونے پر؛ یہ آلہ سے منسلک رجسٹریشن کو برقرار رکھتا ہے اور تیرتی سیٹ واپس کرنے کی کوشش کرتا ہے۔

بعد میں محفوظ کردہ ڈیوائس کی اسناد کو بحال کرنے کے لیے اسی پروڈکٹ، صارف اور کیش پاتھ کے ساتھ ایک خالی لائسنس کلید پاس کرنا شروع ہوتا ہے۔ آف لائن اسٹارٹ اپ اب بھی ایک درست دستخط شدہ گرانٹ اور لائسنس کی پالیسی پر منحصر ہے۔ فلوٹنگ اور صرف آن لائن اسٹارٹ اپ کو سرور کی تصدیق کی ضرورت ہے۔

5. اجازت یافتہ اور مسترد شدہ راستوں کی تصدیق کریں۔

  1. اپنی ٹیسٹ کلید کا استعمال کرتے ہوئے فعال کریں اور نتیجے میں آنے والی رپورٹ کا معائنہ کریں۔
  2. LICENTIVO_LICENSE_KEY کو غیر سیٹ کریں اور اسی ورچوئل ماحول اور آپریٹنگ سسٹم صارف کے ساتھ دوبارہ شروع کریں۔ محفوظ کردہ ڈیوائس کی اسناد کی بحالی کی تصدیق کریں۔
  3. LICENTIVO_FEATURE کو لائسنس سے غیر موجود خصوصیت پر سیٹ کریں اور LICENTIVO_OUTPUT کو نئے فائل نام پر سیٹ کریں۔ ایک غیر صفر ایگزٹ کوڈ کی توقع کریں اور کوئی نئی برآمد نہ ہو۔
  4. اگر آپ میٹرنگ کو فعال کرتے ہیں تو پہلے استعمال کے اصول کو ترتیب دیں، LICENTIVO_METERED=1 سیٹ کریں اور پائیدار کاروباری کام کے لیے LICENTIVO_OPERATION_ID فراہم کریں۔ ایک بار کامیاب کام اس کے کاؤنٹر میں کمی کی تصدیق کریں۔

تنصیب اور اجازت کا مسئلہ حل کریں۔

پروڈکٹ ID، ہر کلید ID/عوامی کلید کا جوڑا اور صارف کا لائسنس جانچیں۔ عوامی کلیدیں پروڈکٹ کی ہیں؛ لائسنس اور آلے کی اسناد الگ ہیں۔ آزمائشی کلیدیں یا انتظامی API Key تقسیم نہ کریں۔

ModuleNotFoundError کا عام طور پر مطلب ہے pip اور ایپ مختلف Python ترجمانوں کا استعمال کر رہی ہے۔ دونوں کمانڈز کے لیے ایک ہی ورچوئل ماحول استعمال کریں۔

ایک میعاد ختم شدہ لائسنس یا نامنظور خصوصیت کو آپریشن روکنا چاہیے۔ SDK ایرر دکھائیں اور دستیاب ہونے پر ID کی درخواست کریں۔ ناکام چیک کے بعد ایکسپورٹ کال بیک نہ چلائیں۔

میٹرڈ آپریشنز کے لیے نیٹ ورک تک رسائی کی ضرورت ہوتی ہے۔ ایک مستحکم ٹاسک ID اور پائیدار نتیجہ رکھیں تاکہ زیر التواء تصدیق کام کو دہرائے بغیر بحال ہو سکے۔ کیش شدہ گرانٹس، ڈیوائس کی اسناد، ٹیسٹ کیز یا وینڈر مینجمنٹ کیز تقسیم نہ کریں۔