ساخت سیستم لایسنس برای محصول PHP

وقتی تعداد مشتریان از چند نفر بیشتر شود، صدور دستی لایسنس به گلوگاه تبدیل می‌شود. یک سیستم لایسنس کارآمد سه کار می‌کند: صدور خودکار پس از خرید، تمدید بدون دخالت دستی، و ابطال در صورت تخلف. در این مقاله معماری عملی چنین سیستمی را بدون پیچیدگی اضافه بررسی می‌کنیم.

این مقاله در یک نگاه

  • سیستم لایسنس سه عملیات اصلی دارد: صدور، تمدید و ابطال.
  • پایه کار یک جدول ساده از مشتری و دامنه و تاریخ است.
  • اعتبارسنجی آنلاین باید سناریوی قطعی اینترنت را مدیریت کند.
  • لایسنس فقط روی کد انکدشده معنا دارد.
  • شروع ساده کنید؛ خودکارسازی را بعد از رسیدن حجم اضافه کنید.

اجزای اصلی سیستم

یک سیستم لایسنس در ساده‌ترین شکلش سه جزء دارد و پیچیده‌تر کردن آن پیش از رسیدن به حجم واقعی، اتلاف وقت است.

مخزن داده جایی که مشخصات هر لایسنس نگه‌داری می‌شود: مشتری، دامنه مجاز، تاریخ صدور و انقضا و وضعیت.

موتور صدور بخشی که پس از پرداخت، خروجی قفل‌شده یا فایل لایسنس را تولید و برای مشتری ارسال می‌کند.

نقطه اعتبارسنجی در ساده‌ترین حالت همان بررسی خود لودر است؛ در حالت پیشرفته‌تر یک API که محصول در فواصل مشخص با آن تماس می‌گیرد.

مدل داده حداقلی

پیش از نوشتن هر کدی، مشخص کنید چه چیزی را باید ذخیره کنید. جدول زیر حداقل چیزی است که در عمل لازم می‌شود.

فیلدکاربرد
شناسه مشتریارتباط با سوابق خرید و پشتیبانی
دامنه یا IP مجازمحدودیت اجرا
تاریخ صدورپیگیری سابقه
تاریخ انقضامدیریت تمدید
وضعیتفعال، منقضی یا باطل‌شده
نسخه محصولپشتیبانی و به‌روزرسانی

جریان صدور و تمدید

  1. ثبت سفارش مشتری خرید می‌کند و دامنه‌ای که محصول روی آن نصب می‌شود را اعلام می‌کند.
  2. ثبت در مخزن رکورد لایسنس با دامنه و تاریخ‌ها ساخته می‌شود.
  3. تولید خروجی نسخه انکدشده با قفل دامنه یا فایل لایسنس متناسب صادر می‌شود.
  4. تحویل بسته به همراه راهنمای نصب برای مشتری ارسال می‌شود.
  5. یادآوری تمدید پیش از انقضا به مشتری اطلاع داده می‌شود.
  6. تمدید پس از پرداخت، فایل لایسنس جدید صادر می‌شود.
چرا فایل لایسنس کار را ساده می‌کند اگر از فایل لایسنس استفاده کنید، تمدید فقط ارسال یک فایل کوچک است و نیازی به انکد مجدد کل محصول ندارید. برای مدل اشتراکی این تفاوت بزرگی است.

اعتبارسنجی آنلاین

اگر می‌خواهید کنترل بیشتری داشته باشید، محصول می‌تواند در فواصل مشخص با سرور شما تماس بگیرد و اعتبار لایسنس را بپرسد. این کار امکان ابطال از راه دور را هم فراهم می‌کند.

اما یک نکته حیاتی را نادیده نگیرید: سناریوی قطعی ارتباط. اگر سرور شما پایین بیاید یا مشتری موقتا اینترنت نداشته باشد، محصول نباید فورا از کار بیفتد. راه‌حل معمول این است که نتیجه آخرین بررسی موفق را کش کنید و اجازه دهید محصول چند روز بدون ارتباط کار کند.

سناریورفتار پیشنهادی
پاسخ معتبر از سرورادامه عادی و به‌روزرسانی کش
پاسخ نامعتبرتوقف با پیام روشن
عدم دسترسی موقتادامه با کش تا چند روز
عدم دسترسی طولانیهشدار و سپس محدودسازی تدریجی

از کجا شروع کنیم؟

اشتباه رایج این است که از روز اول سراغ سیستم پیچیده با API و داشبورد بروید. اگر ده مشتری دارید، یک جدول ساده و صدور دستی کاملا کافی است.

مسیر منطقی: ابتدا با قفل دامنه ساده شروع کنید و سوابق را در یک جدول نگه دارید. وقتی تعداد مشتریان بالا رفت، صدور را خودکار کنید. اعتبارسنجی آنلاین را فقط زمانی اضافه کنید که واقعا به ابطال از راه دور نیاز دارید. همه گزینه‌های محدودسازی در صفحه لایسنس‌گذاری آمده و مستندات فنی در سایت ionCube در دسترس است.

جمع بندی: سیستم لایسنس را متناسب با حجم واقعی کسب و کارتان بسازید. با چند مشتری، یک جدول ساده و صدور دستی کافی است؛ با رشد تعداد، صدور را خودکار کنید و تنها در صورت نیاز به ابطال از راه دور، اعتبارسنجی آنلاین اضافه کنید. در هر مرحله یادتان باشد لایسنس فقط روی کد انکدشده معنا دارد و سناریوی قطعی ارتباط باید از قبل مدیریت شده باشد.

سوالات متداول

از کجا شروع کنم؟

با یک جدول ساده از مشتری و دامنه و تاریخ، به همراه قفل دامنه هنگام انکد. خودکارسازی را بعد از رسیدن به حجم واقعی اضافه کنید.

اعتبارسنجی آنلاین ضروری است؟

خیر. فقط وقتی لازم است که به ابطال از راه دور نیاز داشته باشید. برای فروش یک‌باره، قفل دامنه کافی است.

اگر سرور لایسنس من پایین بیاید چه می‌شود؟

اگر درست طراحی کرده باشید، محصول با کش آخرین بررسی موفق چند روز کار می‌کند. این سناریو را حتما از قبل مدیریت کنید.

چطور لایسنس را باطل کنم؟

با اعتبارسنجی آنلاین می‌توانید وضعیت را در سمت سرور تغییر دهید. بدون آن، ابطال فقط با انقضای زمانی ممکن است.

سیستم لایسنس جای انکد را می‌گیرد؟

خیر. اگر کد انکد نشده باشد، هر بررسی لایسنسی داخل سورس قابل حذف است. اول انکد، بعد لایسنس.

مطالب مرتبط: فایل لایسنس ionCube · قفل روی دامنه · نسخه آزمایشی