ساخت سیستم لایسنس برای محصول PHP
وقتی تعداد مشتریان از چند نفر بیشتر شود، صدور دستی لایسنس به گلوگاه تبدیل میشود. یک سیستم لایسنس کارآمد سه کار میکند: صدور خودکار پس از خرید، تمدید بدون دخالت دستی، و ابطال در صورت تخلف. در این مقاله معماری عملی چنین سیستمی را بدون پیچیدگی اضافه بررسی میکنیم.
این مقاله در یک نگاه
- سیستم لایسنس سه عملیات اصلی دارد: صدور، تمدید و ابطال.
- پایه کار یک جدول ساده از مشتری و دامنه و تاریخ است.
- اعتبارسنجی آنلاین باید سناریوی قطعی اینترنت را مدیریت کند.
- لایسنس فقط روی کد انکدشده معنا دارد.
- شروع ساده کنید؛ خودکارسازی را بعد از رسیدن حجم اضافه کنید.
اجزای اصلی سیستم
یک سیستم لایسنس در سادهترین شکلش سه جزء دارد و پیچیدهتر کردن آن پیش از رسیدن به حجم واقعی، اتلاف وقت است.
مخزن داده جایی که مشخصات هر لایسنس نگهداری میشود: مشتری، دامنه مجاز، تاریخ صدور و انقضا و وضعیت.
موتور صدور بخشی که پس از پرداخت، خروجی قفلشده یا فایل لایسنس را تولید و برای مشتری ارسال میکند.
نقطه اعتبارسنجی در سادهترین حالت همان بررسی خود لودر است؛ در حالت پیشرفتهتر یک API که محصول در فواصل مشخص با آن تماس میگیرد.
مدل داده حداقلی
پیش از نوشتن هر کدی، مشخص کنید چه چیزی را باید ذخیره کنید. جدول زیر حداقل چیزی است که در عمل لازم میشود.
| فیلد | کاربرد |
|---|---|
| شناسه مشتری | ارتباط با سوابق خرید و پشتیبانی |
| دامنه یا IP مجاز | محدودیت اجرا |
| تاریخ صدور | پیگیری سابقه |
| تاریخ انقضا | مدیریت تمدید |
| وضعیت | فعال، منقضی یا باطلشده |
| نسخه محصول | پشتیبانی و بهروزرسانی |
جریان صدور و تمدید
- ثبت سفارش مشتری خرید میکند و دامنهای که محصول روی آن نصب میشود را اعلام میکند.
- ثبت در مخزن رکورد لایسنس با دامنه و تاریخها ساخته میشود.
- تولید خروجی نسخه انکدشده با قفل دامنه یا فایل لایسنس متناسب صادر میشود.
- تحویل بسته به همراه راهنمای نصب برای مشتری ارسال میشود.
- یادآوری تمدید پیش از انقضا به مشتری اطلاع داده میشود.
- تمدید پس از پرداخت، فایل لایسنس جدید صادر میشود.
اعتبارسنجی آنلاین
اگر میخواهید کنترل بیشتری داشته باشید، محصول میتواند در فواصل مشخص با سرور شما تماس بگیرد و اعتبار لایسنس را بپرسد. این کار امکان ابطال از راه دور را هم فراهم میکند.
اما یک نکته حیاتی را نادیده نگیرید: سناریوی قطعی ارتباط. اگر سرور شما پایین بیاید یا مشتری موقتا اینترنت نداشته باشد، محصول نباید فورا از کار بیفتد. راهحل معمول این است که نتیجه آخرین بررسی موفق را کش کنید و اجازه دهید محصول چند روز بدون ارتباط کار کند.
| سناریو | رفتار پیشنهادی |
|---|---|
| پاسخ معتبر از سرور | ادامه عادی و بهروزرسانی کش |
| پاسخ نامعتبر | توقف با پیام روشن |
| عدم دسترسی موقت | ادامه با کش تا چند روز |
| عدم دسترسی طولانی | هشدار و سپس محدودسازی تدریجی |
از کجا شروع کنیم؟
اشتباه رایج این است که از روز اول سراغ سیستم پیچیده با API و داشبورد بروید. اگر ده مشتری دارید، یک جدول ساده و صدور دستی کاملا کافی است.
مسیر منطقی: ابتدا با قفل دامنه ساده شروع کنید و سوابق را در یک جدول نگه دارید. وقتی تعداد مشتریان بالا رفت، صدور را خودکار کنید. اعتبارسنجی آنلاین را فقط زمانی اضافه کنید که واقعا به ابطال از راه دور نیاز دارید. همه گزینههای محدودسازی در صفحه لایسنسگذاری آمده و مستندات فنی در سایت ionCube در دسترس است.
سوالات متداول
از کجا شروع کنم؟
با یک جدول ساده از مشتری و دامنه و تاریخ، به همراه قفل دامنه هنگام انکد. خودکارسازی را بعد از رسیدن به حجم واقعی اضافه کنید.
اعتبارسنجی آنلاین ضروری است؟
خیر. فقط وقتی لازم است که به ابطال از راه دور نیاز داشته باشید. برای فروش یکباره، قفل دامنه کافی است.
اگر سرور لایسنس من پایین بیاید چه میشود؟
اگر درست طراحی کرده باشید، محصول با کش آخرین بررسی موفق چند روز کار میکند. این سناریو را حتما از قبل مدیریت کنید.
چطور لایسنس را باطل کنم؟
با اعتبارسنجی آنلاین میتوانید وضعیت را در سمت سرور تغییر دهید. بدون آن، ابطال فقط با انقضای زمانی ممکن است.
سیستم لایسنس جای انکد را میگیرد؟
خیر. اگر کد انکد نشده باشد، هر بررسی لایسنسی داخل سورس قابل حذف است. اول انکد، بعد لایسنس.
مطالب مرتبط: فایل لایسنس ionCube · قفل روی دامنه · نسخه آزمایشی
PHP