🧪 راهنمای تست کامل سیستم

تست جامع سیستم تایید اتوماتیک، دستی و رد پرداخت

✅ تایید اتوماتیک 📝 تایید دستی ❌ رد درخواست

تغییرات اعمال شده

  • 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)

✅ نتایج مورد انتظار:

📱 پیام ارسالی به کاربر:

🎉 تبریک! سرویس شما با موفقیت فعال شد

━━━━━━━━━━━━━━━━━━
📦 پلن انتخابی (مثلاً طلایی)
━━━━━━━━━━━━━━━━━━

📊 مشخصات سرویس:
├ 🔋 حجم: 30 گیگابایت
├ ⏰ مدت: 30 روز
├ 📅 تاریخ انقضا: 1404/09/30
└ 💰 مبلغ پرداختی: 150,000 تومان

━━━━━━━━━━━━━━━━━━
🔑 اطلاعات اتصال:
├ 🆔 شناسه سفارش: #123
└ 🔐 UUID: abc123...
━━━━━━━━━━━━━━━━━━

🔗 لینک اتصال شما:
vless://uuid@server:port...

━━━━━━━━━━━━━━━━━━

📱 نحوه استفاده:
۱. لینک بالا را کپی کنید
۲. در اپلیکیشن v2rayNG وارد کنید
۳. روی Connect کلیک کنید

❓ برای راهنمای کامل، دکمه زیر را بزنید.

دکمه‌ها:
📱 راهنمای نصب و اتصال
📋 سرویس‌های من
🏠 بازگشت به منو اصلی

👨‍💼 پیام ارسالی به ادمین:

✅ سرویس با موفقیت ساخته شد و اتوماتیک به کاربر ارسال گردید!

🆔 کد پیگیری: abc123def456

⚠️ نکات مهم:

  • اگر 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:// و ... باشد
  • در صورت نامعتبر بودن، پیام خطا نمایش داده می‌شود
  • در صورت معتبر بودن، لینک ذخیره و به کاربر ارسال می‌شود

✅ نتایج مورد انتظار:

📱 پیام ارسالی به کاربر:

🎉 سرویس شما با موفقیت فعال شد!

📦 سرویس: پلن طلایی
💾 حجم: 30 گیگابایت
📅 مدت: 30 روز
⏰ تاریخ انقضا: 1404/09/30

━━━━━━━━━━━━━━━━

🔗 لینک اشتراک شما:

http://apn.lotfischool.ir:2096/sub/APN-pro/rnhopbe5mnbyr2f8

━━━━━━━━━━━━━━━━

📱 برای اتصال:
۱. لینک بالا را کپی کنید
۲. در اپلیکیشن v2rayNG وارد کنید
۳. روی Connect بزنید

❓ راهنمای اتصال را از منو دریافت کنید.

دکمه‌ها:
📱 راهنمای اتصال
📋 سرویس‌های من
🏠 منوی اصلی

👨‍💼 پیام ارسالی به ادمین:

سرویس با موفقیت ارسال شد!

👤 به کاربر: 123456789
🆔 کد پیگیری: abc123def456
📦 ID سرویس: 45

⚠️ خطاهای احتمالی:

ورودی نادرست پیام خطا
just-text-without-protocol ⚠️ فرمت لینک اشتراک صحیح نیست!
ftp://server.com/path ⚠️ فرمت لینک اشتراک صحیح نیست!
www.example.com ⚠️ فرمت لینک اشتراک صحیح نیست!

تست 3: رد درخواست

1 انتخاب رد درخواست

ادمین روی دکمه زیر کلیک می‌کند:

❌ رد درخواست

2 وارد کردن دلیل

ادمین دلیل رد را وارد می‌کند (حداقل 3 کاراکتر):

نمونه دلایل معتبر: ✅ "فیش تکراری است" ✅ "مبلغ کامل واریز نشده" ✅ "اطلاعات واریز اشتباه است" ✅ "تاریخ فیش منقضی شده" ✅ "123" (حداقل 3 کاراکتر) ❌ "نه" (کمتر از 3 کاراکتر) ❌ "12" (کمتر از 3 کاراکتر)

✅ نتایج مورد انتظار:

📱 پیام ارسالی به کاربر:

درخواست شما رد شد

متاسفانه پرداخت شما توسط بخش مالی تایید نشد.

🆔 کد پیگیری: abc123def456
💰 مبلغ: 150,000 تومان

━━━━━━━━━━━━━━━━

📋 دلیل رد:
فیش تکراری است

━━━━━━━━━━━━━━━━

💬 در صورت نیاز به پشتیبانی، با ما تماس بگیرید.

دکمه‌ها:
💬 ارتباط با پشتیبانی
🔄 تلاش مجدد
🏠 منوی اصلی

👨‍💼 پیام ارسالی به ادمین:

درخواست رد شد و به کاربر اطلاع داده شد

👤 کاربر: 123456789
🆔 کد: abc123def456
📝 دلیل: فیش تکراری است

📋 چک‌لیست تست نهایی

✅ تایید اتوماتیک

  • کاربر پیام حرفه‌ای با لینک کانفیگ دریافت می‌کند
  • ادمین پیام تایید دریافت می‌کند
  • وضعیت پرداخت در دیتابیس "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)