✨ تغییرات اعمال شده
- service_creator.php - اضافه شدن دریافت اطلاعات کاربر قبل از ارسال پیام
- sendServiceToUser() - طراحی مجدد پیام با قالب حرفهای و شیک
- regex تایید دستی - پشتیبانی از URL های http/https به علاوه vless/vmess
- پیام رد درخواست - حداقل کاراکتر از 5 به 3 کاهش یافت
- notifyAdminAboutNewService() - اضافه شدن چک وجود اطلاعات کاربر
❌ قبل از تغییرات
- پیام به کاربر ارسال نمیشد
- لینک ساب http:// قبول نمیشد
- دلیل رد باید 5+ حرف میبود
- خطای 500 در notifyAdmin
✅ بعد از تغییرات
- پیام حرفهای به کاربر ارسال میشود
- تمام فرمتهای URL پشتیبانی میشوند
- حداقل 3 کاراکتر برای دلیل رد
- ارسال اطلاعیه به ادمین بدون خطا
✅ تست 1: تایید اتوماتیک
1 آمادهسازی
از حساب کاربری معمولی (غیر ادمین) یک سرویس انتخاب و فیش آپلود کنید.
2 تایید توسط ادمین
ادمین پیام اطلاع پرداخت را دریافت میکند و روی دکمه زیر کلیک میکند:
✅ تایید و ارسال اتوماتیک
3 فرآیند اتوماتیک
سیستم به صورت خودکار این مراحل را انجام میدهد:
- اتصال به VPS API (82.115.26.209)
- ساخت اکانت در پنل X-UI
- دریافت UUID و VLESS Link
- ذخیره در دیتابیس (service_orders)
- بهروزرسانی وضعیت پرداخت (approved)
- حذف از جدول موقت (temp_service_purchases)
✅ نتایج مورد انتظار:
📱 پیام ارسالی به کاربر:
👨💼 پیام ارسالی به ادمین:
⚠️ نکات مهم:
- اگر API در دسترس نباشد، پیام خطا به ادمین ارسال میشود
- اگر پنل X-UI مشکل داشته باشد، خطای مناسب نمایش داده میشود
- تمام مراحل در فایل لاگ ثبت میشوند:
logs/service_creation_YYYY-MM-DD.log
📝 تست 2: تایید دستی
1 انتخاب تایید دستی
ادمین روی دکمه زیر کلیک میکند:
📝 تایید و ارسال دستی
2 وارد کردن لینک
ادمین میتواند یکی از این فرمتها را ارسال کند:
# لینک ساب HTTP/HTTPS
http://apn.lotfischool.ir:2096/sub/APN-pro/rnhopbe5mnbyr2f8
https://apn.lotfischool.ir:2096/sub/APN-pro/rnhopbe5mnbyr2f8
# لینک کانفیگ VLESS
vless://uuid@server:port?encryption=none&security=tls...
# لینک کانفیگ VMess
vmess://eyJhZGQiOiJzZXJ2ZXIuY29tIiwi...
# لینک کانفیگ Trojan
trojan://password@server:port?security=tls...
# لینک Shadowsocks
ss://base64encoded@server:port
3 بررسی توسط سیستم
سیستم فرمت لینک را بررسی میکند:
- باید شامل http:// یا https:// یا vless:// و ... باشد
- در صورت نامعتبر بودن، پیام خطا نمایش داده میشود
- در صورت معتبر بودن، لینک ذخیره و به کاربر ارسال میشود
✅ نتایج مورد انتظار:
📱 پیام ارسالی به کاربر:
👨💼 پیام ارسالی به ادمین:
⚠️ خطاهای احتمالی:
| ورودی نادرست | پیام خطا |
|---|---|
just-text-without-protocol |
⚠️ فرمت لینک اشتراک صحیح نیست! |
ftp://server.com/path |
⚠️ فرمت لینک اشتراک صحیح نیست! |
www.example.com |
⚠️ فرمت لینک اشتراک صحیح نیست! |
❌ تست 3: رد درخواست
1 انتخاب رد درخواست
ادمین روی دکمه زیر کلیک میکند:
❌ رد درخواست
2 وارد کردن دلیل
ادمین دلیل رد را وارد میکند (حداقل 3 کاراکتر):
نمونه دلایل معتبر:
✅ "فیش تکراری است"
✅ "مبلغ کامل واریز نشده"
✅ "اطلاعات واریز اشتباه است"
✅ "تاریخ فیش منقضی شده"
✅ "123" (حداقل 3 کاراکتر)
❌ "نه" (کمتر از 3 کاراکتر)
❌ "12" (کمتر از 3 کاراکتر)
✅ نتایج مورد انتظار:
📱 پیام ارسالی به کاربر:
👨💼 پیام ارسالی به ادمین:
📋 چکلیست تست نهایی
✅ تایید اتوماتیک
- کاربر پیام حرفهای با لینک کانفیگ دریافت میکند
- ادمین پیام تایید دریافت میکند
- وضعیت پرداخت در دیتابیس "approved" میشود
- سرویس در service_orders ثبت میشود
- رکورد از temp_service_purchases حذف میشود
- لاگ در فایل logs/ ذخیره میشود
📝 تایید دستی
- URL های http/https قبول میشوند
- URL های vless/vmess/trojan/ss قبول میشوند
- کاربر لینک را به شکل صحیح دریافت میکند
- ادمین تایید موفقیت دریافت میکند
- وضعیت پرداخت "approved" میشود
- سرویس در دیتابیس ثبت میشود
❌ رد درخواست
- حداقل 3 کاراکتر برای دلیل رد کافی است
- کاربر دلیل رد را به فارسی دریافت میکند
- ادمین تایید ارسال دریافت میکند
- وضعیت پرداخت "rejected" میشود
- رکورد از temp_service_purchases حذف میشود
🔧 نکات فنی
| بخش | فایل | تابع/Handler |
|---|---|---|
| تایید اتوماتیک | bot.php | approveAuto_* handler |
| ساخت سرویس | service_creator.php | createServiceAccount() |
| ارسال به کاربر | service_creator.php | sendServiceToUser() |
| اطلاع به ادمین | service_creator.php | notifyAdminAboutNewService() |
| تایید دستی | bot.php | approveManual_* + waitingManualConfig_* |
| رد درخواست | bot.php | rejectPayment_* + waitingRejectReason_* |
📊 جداول دیتابیس درگیر
users- اطلاعات کاربرانservice_plans- تعرفههای خدماتpays- پرداختها (state: pending → approved/rejected)temp_service_purchases- خریدهای موقت (حذف پس از تایید/رد)service_orders- سرویسهای فعال
🔐 API و اتصالات
VPS API: http://82.115.26.209/api/create_vip_account.php
API Key: apn_vip_2024_secure_key_xyz123
X-UI Panel: https://127.0.0.1:2083/aHfvIoyNWcxlOfBfje
Credentials: parisa / @230902Parisa
🐛 راهنمای خطایابی
مشکل: کاربر پیامی دریافت نمیکند
راهحلها:
- بررسی لاگ:
logs/service_creation_YYYY-MM-DD.log - بررسی وضعیت API:
test_api_connection.php - بررسی جدول users برای وجود user_id
- تست دستی:
sendMessage()با chat_id کاربر
مشکل: خطای 500 در تایید اتوماتیک
راهحلها:
- بررسی اتصال به VPS API (ping 82.115.26.209)
- بررسی API Key در درخواست
- بررسی لاگ پنل X-UI
- تست مستقیم با
test_api_connection.php
مشکل: لینک ساب پذیرفته نمیشود
راهحلها:
- اطمینان از شروع URL با http:// یا https://
- بررسی regex pattern در bot.php خط ~9468
- تست با:
preg_match('/(https?|vless|vmess):\/\//', $url)
مشکل: دلیل رد قبول نمیشود
راهحلها:
- اطمینان از حداقل 3 کاراکتر در متن
- بررسی encoding UTF-8 برای فارسی
- تست با
mb_strlen($text)