نسخه ارتقایافته — سیستم نماینده + مینی‌اپ عمومی کاربران
تاریخ: 2026-08-29

امکانات نماینده:
- فعال/غیرفعال کردن نمایندگی از پنل مدیریت کاربران
- تعیین درصد تخفیف اختصاصی هر نماینده از 0 تا 95 درصد
- مقدار پیش‌فرض هنگام فعال‌سازی اولیه: 20 درصد
- نمایش وضعیت و درصد نمایندگی در جزئیات کاربر
- فیلتر جداگانه «نمایندگان» و شمارنده نمایندگان فعال در مدیریت کاربران
- اعمال قیمت نماینده در لیست پلن‌ها، جزئیات پلن، خرید با کیف پول، کارت‌به‌کارت، زیبال، تمدید و افزایش حجم
- امکان اعمال کد تخفیف روی قیمت نمایندگی نیز حفظ شده است

مینی‌اپ عمومی:
- دکمه «مینی‌اپ حساب کاربری» در منوی همه کاربران
- نمایش موجودی کیف پول
- نمایش پلن‌ها و قیمت اختصاصی نماینده
- خرید مستقیم با کیف پول
- مشاهده سرویس‌های خریداری‌شده و لینک سابسکریپشن در صورت وجود
- مشاهده تراکنش‌های اخیر
- انتقال به ربات برای شارژ کیف پول و روش‌های پرداخت دیگر
- احراز هویت امن با Telegram WebApp initData
- قفل خرید و nonce برای کاهش ریسک سفارش تکراری

راه‌اندازی:
- فایل miniapp.php باید همراه سایر فایل‌های ربات روی همان هاست HTTPS آپلود شود.
- آدرس مینی‌اپ به‌صورت خودکار از دامنه ربات ساخته می‌شود.
- اگر ربات پشت Reverse Proxy/CDN است یا مینی‌اپ دامنه جدا دارد، مقدار MINI_APP_URL را در config.php با آدرس کامل HTTPS تنظیم کنید.
- نمونه این تنظیم در config.sample.php اضافه شده است.

نیازمندی‌های PHP:
- افزونه mbstring
- برای حالت SQLite: PDO + pdo_sqlite

تست‌های انجام‌شده:
- بررسی syntax همه 28 فایل PHP: موفق
- تست محاسبه نمونه 500,000 با تخفیف نماینده 20% => 400,000: موفق
- تست نمایش قیمت نماینده در کیبورد پلن‌ها: موفق
- تست فیلتر نمایندگان: موفق
- تست API مینی‌اپ با initData امضاشده، همگام‌سازی پروفایل و قیمت نماینده: موفق

نکته: هیچ نرم‌افزاری را نمی‌توان در همه محیط‌های هاستینگ «بدون امکان هیچ باگ» تضمین کرد؛ اما مسیرهای اصلی تغییرکرده در این نسخه تست شده‌اند و مکانیزم‌های جلوگیری از خرید هم‌زمان/تکراری نیز اضافه شده‌اند.
