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

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

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

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

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