گزارش بازبینی فنی SinTime

موارد قطعی اصلاح‌شده:
1. نصب‌کننده دیتابیس MySQL اجباری می‌خواست، اما کد اصلی داده‌ها را در JSON ذخیره می‌کند و هیچ اتصال عملی به DB نداشت. فیلدها و تست اتصال حذف شد.
2. صفحه موفقیت نصب به panel/login.php لینک می‌داد، درحالی‌که این مسیر در بسته وجود نداشت. به ورود از طریق /admin در خود تلگرام تغییر کرد.
3. installer برای پنل وب رمز تصادفی می‌ساخت و به کاربر ارسال می‌کرد، درحالی‌که پنل وب در پروژه وجود نداشت. تولید رمز و پیام گمراه‌کننده حذف شد.
4. .htaccess ریشه شامل <Directory> بود؛ این دستور در .htaccess مجاز نیست و می‌تواند خطای 500 ایجاد کند. حفاظت storage و logs به فایل‌های .htaccess مستقل منتقل شد.
5. پردازش هم‌زمان Webhook/Cron می‌توانست موجب بازنویسی داده با نسخه قدیمی و از دست رفتن تغییرات شود. قفل مشترک runtime.lock اضافه شد.
6. برای نصب‌های جدید، secret_token وب‌هوک تولید و در سمت endpoint بررسی می‌شود.

مواردی که عمداً حذف نشدند:
- TON، رفرال، کوپن، پشتیبانی و شارژ کیف پول هنوز ممکن است برای بعضی گردش‌کارهای فروشگاه استفاده شوند یا از تنظیمات خاموش باشند. حذف کورکورانه آن‌ها خطر شکستن callbackها و داده‌های قبلی را داشت.
- تابع‌های قدیمی/کم‌استفاده بدون اثبات عدم استفاده پویا حذف نشدند.
- وضعیت داخلی سفارش‌ها حفظ شده، اما بخش مدیریت سفارش همچنان صرفاً نمایش و مشاهده جزئیات است و کنترل تغییر وضعیت به ادمین اضافه نشده است.

ملاحظات نیازمند تست واقعی:
- اتصال و صحت Webhook روی هاست HTTPS.
- ارسال/دریافت پیام، عکس رسید و callback.
- تأیید شارژ کیف پول و ثبت سفارش.
- سازگاری با نسخه PHP و Apache هاست.
- نمایش Premium Emoji و style دکمه‌ها در کلاینت تلگرام.

فایل Faoxima مرجع بررسی تجربه پنل/قابلیت‌ها بود؛ منطق VPN و وب‌اپ آن به فروشگاه SinTime منتقل نشده است.


به‌روزرسانی محصولات: فروش گیفت NFT از منوی مشتری و منوی قیمت‌گذاری ادمین حذف شده است. سفارش‌های قدیمی احتمالی فقط برای حفظ سوابق قابل مشاهده می‌مانند؛ امکان ثبت سفارش جدید NFT وجود ندارد.


--- اصلاحات بازبینی 2026-10-15 ---
- پنل مدیریت به ۷ دسته کوتاه تقسیم شد: کاربران و آمار، قیمت‌گذاری، سفارش‌ها و خدمات، پرداخت‌ها و تخفیف، منو و ظاهر، پیام‌ها و محتوا، وضعیت و ابزارها.
- حالت MAIN_BUTTON_MODE=inline اکنون برای همه دکمه‌های منوی اصلی از inline_keyboard و callbackهای اختصاصی استفاده می‌کند؛ حالت keyboard همچنان reply keyboard است.
- مدیریت ترتیب/نمایش/عنوان دکمه‌های اصلی و مسیرهای مرتبط که به توابع تعریف‌نشده ارجاع می‌دادند تکمیل شد.
- چند تابع مصرف‌شده ولی تعریف‌نشده برای منوی محصولات، لیست قیمت، دکمه‌های سفارشی، شماره مجازی و رنگ دکمه‌ها اضافه شد.
- دسترسی callbackهای مدیریتی برای کاربران غیرادمین مسدود شد.
- تمام فایل‌های PHP بسته از نظر نحوی با php -l بررسی شدند؛ این بررسی جایگزین تست زنده تلگرام/هاست نیست.

--- اصلاحات تکمیلی 2026-10-15 ---
- مسیرهای دکمه‌های خرید استارز و گیفت بازبینی شد؛ خطای ساخت کیبورد که می‌توانست کل inline keyboard را نامعتبر کند برطرف شد: شناسه ایموجی سفارشی به دکمه‌ها تزریق نمی‌شود و style دکمه عضویت مقدار معتبر دارد.
- تغییر حالت منوی اصلی، ابتدا کیبورد قبلی را حذف می‌کند و سپس منوی مطابق تنظیم انتخاب‌شده را می‌فرستد.
- نمایش امتیاز از حساب کاربری و صفحه دعوت حذف شد و دکمه دریافت جایزه امتیازی از منوی دعوت برداشته شد؛ callbackهای قدیمی نیز دیگر جایزه امتیازی نمی‌دهند.
- تنظیمات دعوت به پنل اضافه شد: روشن/خاموش‌کردن پاداش عضویت، مبلغ ثابت هر دعوت (پیش‌فرض ۵۰۰۰ تومان)، روشن/خاموش‌کردن کش‌بک خرید زیرمجموعه و درصد آن (پیش‌فرض ۵٪).
- پاداش دعوت و کش‌بک خرید به موجودی اصلی کیف پول و تراکنش‌های کاربر دعوت‌کننده اضافه می‌شوند؛ کش‌بک فقط هنگام ثبت سفارش پرداخت‌شده اعمال می‌شود و در صورت بازپرداخت سفارش، در صورت وجود سابقه‌ی پرداخت، برگشت داده می‌شود.
- ثبت خطاهای پاسخ API تلگرام در لاگ اضافه شد تا خطاهای رد شدن کیبورد/درخواست در هاست قابل بررسی باشند.
- تست نحوی PHP انجام شده؛ به دلیل نداشتن توکن ربات و محیط هاست زنده، تست واقعی callbackها روی تلگرام انجام نشده است.


--- اصلاح تکمیلی پس از گزارش کاربر ---
- مسیر «برای خودم» در خرید گیفت اصلاح شد: اکنون پس از انتخاب این گزینه، اعتبارسنجی کلید گیفت و وضعیت فعال‌بودن انجام می‌شود و فاکتور مستقیماً ساخته می‌شود؛ دیگر در مرحله تأیید گیرنده متوقف نمی‌ماند.
- در صورت نامعتبر بودن گیفت، پیام خطا به کاربر نمایش داده و وضعیت سفارش پاک می‌شود.
- برای حساب فاقد username تلگرام، شناسه عددی کاربر به‌عنوان گیرنده نگه داشته می‌شود؛ پذیرش این شناسه توسط ارائه‌دهنده‌ی نهایی گیفت نیازمند تست زنده است.
- بررسی نحوی PHP پس از تغییرات: همه فایل‌های PHP بدون خطای نحوی هستند. تست واقعی ربات/درگاه به توکن و محیط هاست نیاز دارد.
