ACIL FM
Dark
Refresh
Current DIR:
/home/fastexsh/public_html/soodino/commands
/
home
fastexsh
public_html
soodino
commands
Upload
Zip Selected
Delete Selected
Pilih semua
Nama
Ukuran
Permission
Aksi
cards.php
19.18 MB
chmod
View
DL
Edit
Rename
Delete
error_log
836 B
chmod
View
DL
Edit
Rename
Delete
history.php
11.61 MB
chmod
View
DL
Edit
Rename
Delete
start_bot.php
8.48 MB
chmod
View
DL
Edit
Rename
Delete
user_area.php
7.62 MB
chmod
View
DL
Edit
Rename
Delete
user_extra_features.php
5.98 MB
chmod
View
DL
Edit
Rename
Delete
user_features.php
12.01 MB
chmod
View
DL
Edit
Rename
Delete
wallet.php
1.86 MB
chmod
View
DL
Edit
Rename
Delete
withdraw.php
16.17 MB
chmod
View
DL
Edit
Rename
Delete
Edit file: /home/fastexsh/public_html/soodino/commands/withdraw.php
<?php if (($text == "💸 درخواست برداشت" || $text == "💸 درخواست برداشت جدید") && $user->logged_in == 1) { $stmt = $pdo->prepare("SELECT * FROM `accounts` WHERE `username` = ?"); $stmt->execute([$user->login_username]); $account = $stmt->fetch(); if (!$account) { $pdo->prepare("UPDATE `users` SET `logged_in` = 0, `login_username` = NULL WHERE `telegram_id` = ?") ->execute([$from_id]); setStep($from_id, "home"); $responseText = "⚠️ *خطا در دسترسی به حساب کاربری*\n\n" . "متأسفانه اطلاعات حساب کاربری شما در سیستم یافت نشد یا ممکن است توسط مدیریت حذف شده باشد.\n\n" . "🔐 لطفاً برای ادامه کار، مجدداً وارد حساب کاربری خود شوید.\n\n" . "📞 در صورت بروز مشکل، با پشتیبانی تماس حاصل فرمایید."; sendMessage($from_id, $responseText, $enterUserKeyboard); die; } $currentProfit = $account->current_profit; if ($currentProfit <= 0) { $responseText = "⚠️ *سود قابل برداشت وجود ندارد*\n\n" . "متأسفانه در حال حاضر سود قابل برداشتی در حساب شما موجود نیست.\n\n" . "💰 برای برداشت، ابتدا باید از سرمایهگذاری خود سود کسب کنید.\n\n" . "📈 سود شما پس از محاسبه و واریز به حساب، قابل برداشت خواهد بود."; sendMessage($from_id, $responseText, $walletKeyboard); die; } $queryCards = "SELECT `id`, `full_name`, `card_number` FROM `cards` WHERE `username` = ? ORDER BY id DESC"; $stmtCards = $pdo->prepare($queryCards); $stmtCards->execute([$user->login_username]); $cards = $stmtCards->fetchAll(); if (empty($cards)) { $responseText = "💳 *هیچ کارتی ثبت نکردی*\n\n" . "برای برداشت، اول باید حداقل یک کارت بانکی توی بخش *کارتهای من* ثبت کنی."; sendMessage($from_id, $responseText, $walletKeyboard); die; } setStep($from_id, "withdraw:amount"); $profitFormatted = number_format($currentProfit); // بررسی درخواستهای در انتظار $stmtPending = $pdo->prepare("SELECT SUM(`amount`) as total FROM `withdraw_requests` WHERE `username` = ? AND `status` = 'pending'"); $stmtPending->execute([$user->login_username]); $pendingAmount = $stmtPending->fetch()->total ?? 0; $availableProfit = $currentProfit - $pendingAmount; $availableProfitFormatted = number_format($availableProfit); $responseText = "💸 *درخواست برداشت جدید*\n\n" . "💰 *سود قابل برداشت:* *{$profitFormatted}* تومان\n" . "⏳ *در انتظار بررسی:* *" . number_format($pendingAmount) . "* تومان\n" . "✅ *موجودی قابل برداشت:* *{$availableProfitFormatted}* تومان\n\n\n" . "⚠️ *نکات مهم:*\n\n" . "🔹 فقط از سود خود میتوانید برداشت کنید\n" . "🔹 سرمایه پایه قابل برداشت نیست\n" . "🔹 حداقل مبلغ: ۱۰,۰۰۰ تومان\n\n" . "💵 لطفاً *مبلغ مورد نظر* را به تومان وارد نمایید:"; sendMessage($from_id, $responseText, $backToMainKeyboard); die; } if ($user->step == "withdraw:amount" && $user->logged_in == 1) { $amount = trim($text); // اعتبارسنجی مبلغ if (!is_numeric($amount) || $amount <= 0) { $responseText = "❌ *مبلغ نامعتبر است*\n\n" . "مبلغ وارد شده معتبر نمیباشد.\n\n" . "💵 لطفاً یک عدد معتبر به تومان وارد نمایید.\n\n" . "📝 مثال: 50000"; sendMessage($from_id, $responseText, $backToMainKeyboard); die; } $amount = (int) $amount; // بررسی وجود حساب کاربری $stmt = $pdo->prepare("SELECT * FROM `accounts` WHERE `username` = ?"); $stmt->execute([$user->login_username]); $account = $stmt->fetch(); if (!$account) { $pdo->prepare("UPDATE `users` SET `logged_in` = 0, `login_username` = NULL WHERE `telegram_id` = ?") ->execute([$from_id]); setStep($from_id, "home"); $responseText = "⚠️ *خطا در دسترسی به حساب کاربری*\n\n" . "اطلاعات حساب کاربری شما پیدا نشد.\n\n" . "🔐 لطفاً دوباره وارد حساب کاربری خود شوید."; sendMessage($from_id, $responseText, $enterUserKeyboard); die; } $stmt = $pdo->prepare("SELECT `current_profit` FROM `accounts` WHERE `username` = ?"); $stmt->execute([$user->login_username]); $account = $stmt->fetch(); if (!$account) { $pdo->prepare("UPDATE `users` SET `logged_in` = 0, `login_username` = NULL WHERE `telegram_id` = ?") ->execute([$from_id]); setStep($from_id, "home"); $responseText = "⚠️ *خطا در دسترسی به حساب کاربری*\n\n" . "متأسفانه اطلاعات حساب کاربری شما در سیستم یافت نشد.\n\n" . "🔐 لطفاً برای ادامه کار، مجدداً وارد حساب کاربری خود شوید.\n\n" . "📞 در صورت بروز مشکل، با پشتیبانی تماس حاصل فرمایید."; sendMessage($from_id, $responseText, $enterUserKeyboard); die; } $currentProfit = $account->current_profit; // بررسی درخواستهای در انتظار $stmtPending = $pdo->prepare("SELECT SUM(`amount`) as total FROM `withdraw_requests` WHERE `username` = ? AND `status` = 'pending'"); $stmtPending->execute([$user->login_username]); $pendingAmount = $stmtPending->fetch()->total ?? 0; $availableProfit = $currentProfit - $pendingAmount; if ($amount > $availableProfit) { $availableProfitFormatted = number_format($availableProfit); $amountFormatted = number_format($amount); $responseText = "❌ *مبلغ بیش از حد مجاز است*\n\n" . "مبلغ درخواستی شما ({$amountFormatted} تومان) بیشتر از موجودی قابل برداشت ({$availableProfitFormatted} تومان) میباشد.\n\n" . "💰 لطفاً مبلغی کمتر یا مساوی با موجودی قابل برداشت خود وارد نمایید.\n\n" . "📊 موجودی قابل برداشت: *{$availableProfitFormatted}* تومان"; sendMessage($from_id, $responseText, $backToMainKeyboard); die; } if ($amount < 10000) { $responseText = "⚠️ *حداقل مبلغ برداشت*\n\n" . "حداقل مبلغ قابل برداشت *۱۰,۰۰۰ تومان* میباشد.\n\n" . "💵 لطفاً مبلغی بیشتر یا مساوی با این مقدار وارد نمایید.\n\n" . "📝 حداقل مبلغ: *۱۰,۰۰۰* تومان"; sendMessage($from_id, $responseText, $backToMainKeyboard); die; } $queryCards = "SELECT `id`, `full_name`, `card_number` FROM `cards` WHERE `username` = ? ORDER BY id DESC"; $stmtCards = $pdo->prepare($queryCards); $stmtCards->execute([$user->login_username]); $cards = $stmtCards->fetchAll(); if (empty($cards)) { $responseText = "💳 *هیچ کارتی ثبت نکردی*\n\n" . "برای برداشت، اول باید حداقل یک کارت بانکی توی بخش *کارتهای من* ثبت کنی."; sendMessage($from_id, $responseText, $walletKeyboard); die; } $amountFormatted = number_format($amount); $inlineKeyboard = []; foreach ($cards as $card) { $cardDisplay = substr($card->card_number, -4); $inlineKeyboard[] = [ [ "text" => "💳 {$card->full_name} - ****{$cardDisplay}", "callback_data" => "withdraw_card:{$card->id}:{$amount}" ] ]; } $inlineKeyboard[] = [ [ "text" => "❌ انصراف", "callback_data" => "withdraw_cancel" ] ]; $keyboard = json_encode([ "inline_keyboard" => $inlineKeyboard ]); setStep($from_id, "withdraw:card:$amount"); $responseText = "💳 *انتخاب کارت بانکی*\n\n" . "💰 مبلغ درخواستی: *{$amountFormatted}* تومان\n\n" . "لطفاً کارت بانکی مورد نظر خود را انتخاب نمایید:\n\n" . "💳 مبلغ به حساب کارت انتخابی شما واریز خواهد شد."; sendMessage($from_id, $responseText, $keyboard); die; } if (isset($callback_query) && isset($data) && strpos($data, "withdraw_card:") === 0) { $checkUser = $pdo->prepare("SELECT * FROM `users` WHERE `telegram_id` = ?"); $checkUser->execute([$from_id]); $user = $checkUser->fetch(); if (!$user || $user->logged_in != 1) { answerCallback($callback_query->id, "⚠️ خطا: لطفاً مجدداً وارد حساب کاربری شوید.", true); die; } $parts = explode(":", $data); $cardId = (int) $parts[1]; $amount = (int) $parts[2]; $stmt = $pdo->prepare("SELECT `current_profit` FROM `accounts` WHERE `username` = ?"); $stmt->execute([$user->login_username]); $account = $stmt->fetch(); if (!$account || $amount > $account->current_profit) { answerCallback($callback_query->id, "❌ مبلغ درخواستی بیشتر از سود قابل برداشت است.", true); die; } $queryCard = "SELECT `id`, `full_name`, `card_number` FROM `cards` WHERE `id` = ? AND `username` = ?"; $stmtCard = $pdo->prepare($queryCard); $stmtCard->execute([$cardId, $user->login_username]); $card = $stmtCard->fetch(); if (!$card) { answerCallback($callback_query->id, "❌ کارت انتخابی یافت نشد.", true); die; } $trackingCode = generateTrackingId(); while (true) { $checkTracking = $pdo->prepare("SELECT `id` FROM `withdraw_requests` WHERE `tracking_code` = ?"); $checkTracking->execute([$trackingCode]); if (!$checkTracking->fetch()) { break; } $trackingCode = generateTrackingId(); } $queryInsert = "INSERT INTO `withdraw_requests` (`tracking_code`, `telegram_id`, `username`, `amount`, `status`) VALUES (?, ?, ?, ?, 'pending')"; $stmtInsert = $pdo->prepare($queryInsert); $stmtInsert->execute([$trackingCode, $from_id, $user->login_username, $amount]); $requestId = $pdo->lastInsertId(); setStep($from_id, "wallet"); $amountFormatted = number_format($amount); $cardDisplay = substr($card->card_number, -4); answerCallback($callback_query->id, "✅ درخواست شما با موفقیت ثبت شد.", false); $responseText = "✅ *درخواست برداشت ثبت شد*\n\n" . "📋 *جزئیات درخواست*\n\n" . "🔹 کد: `{$trackingCode}`\n" . "💰 مبلغ: *{$amountFormatted}* تومان\n" . "💳 کارت: `****{$cardDisplay}`\n" . "👤 صاحب کارت: *{$card->full_name}*\n" . "📊 وضعیت: ⏳ در انتظار بررسی\n\n" . "📝 درخواست شما در صف بررسی قرار گرفته و در اسرع وقت پردازش خواهد شد.\n\n" . "🔔 پس از بررسی و تأیید، مبلغ به حساب کارت انتخابی شما واریز خواهد شد."; editMessage($chat_id, $message_id, $responseText); // دریافت اطلاعات کامل حساب کاربر $stmtAccount = $pdo->prepare("SELECT `full_name`, `base_investment`, `current_profit`, `start_date`, `end_date` FROM `accounts` WHERE `username` = ?"); $stmtAccount->execute([$user->login_username]); $accountInfo = $stmtAccount->fetch(); $userFullName = $accountInfo->full_name ?? $user->login_username; // شمارش تراکنشهای قبلی $stmtWithdraws = $pdo->prepare("SELECT COUNT(*) as total, SUM(`amount`) as total_amount FROM `withdraw_requests` WHERE `username` = ? AND `status` = 'approved'"); $stmtWithdraws->execute([$user->login_username]); $withdrawStats = $stmtWithdraws->fetch(); $totalWithdraws = $withdrawStats->total ?? 0; $totalWithdrawAmount = $withdrawStats->total_amount ?? 0; $baseInvestment = number_format($accountInfo->base_investment ?? 0); $currentProfit = number_format($accountInfo->current_profit ?? 0); $startDate = $accountInfo->start_date ?? "—"; $endDate = $accountInfo->end_date ?? "—"; $adminMessage = "🔔 *درخواست برداشت جدید*\n\n" . "📋 *اطلاعات کاربر*\n\n" . "👤 نام: *{$userFullName}*\n" . "📱 نام کاربری: `{$user->login_username}`\n" . "🆔 تلگرام: `{$from_id}`\n\n\n" . "💼 *وضعیت مالی کاربر*\n\n" . "💰 سرمایه پایه: *{$baseInvestment}* تومان\n" . "📈 سود فعلی: *{$currentProfit}* تومان\n" . "📅 شروع: *{$startDate}*\n" . "📅 پایان: *{$endDate}*\n\n\n" . "📊 *آمار برداشتهای قبلی*\n\n" . "🔹 تعداد موفق: *{$totalWithdraws}*\n" . "💰 جمع مبالغ: *" . number_format($totalWithdrawAmount) . "* تومان\n\n\n" . "💰 *جزئیات درخواست جدید*\n\n" . "🔹 کد: `{$trackingCode}`\n" . "💰 مبلغ: *{$amountFormatted}* تومان\n" . "💳 کارت: `{$card->card_number}`\n" . "👤 صاحب کارت: *{$card->full_name}*\n" . "📊 وضعیت: ⏳ در انتظار بررسی"; $adminKeyboard = json_encode([ "inline_keyboard" => [ [ [ "text" => "✅ تایید و واریز", "callback_data" => "admin_withdraw_approve:{$requestId}" ], [ "text" => "❌ رد کردن", "callback_data" => "admin_withdraw_reject:{$requestId}" ] ] ] ]); $withdrawChannelId = getSetting("withdraw_channel_id"); if ($withdrawChannelId) { sendMessage($withdrawChannelId, $adminMessage, $adminKeyboard); } else { // Fallback: send to first admin if channel not set $stmt = $pdo->prepare("SELECT u.telegram_id FROM users u INNER JOIN accounts a ON u.login_username = a.username WHERE a.is_admin = 1 LIMIT 1"); $stmt->execute(); $adminUser = $stmt->fetch(); if ($adminUser) { sendMessage($adminUser->telegram_id, $adminMessage, $adminKeyboard); } } // نمایش کیبورد عادی به کاربر sendMessage($from_id, "✅ درخواست شما با موفقیت ثبت و به مدیریت ارسال شد.", $walletKeyboard); die; } if (isset($callback_query) && isset($data) && $data == "withdraw_cancel") { $checkUser = $pdo->prepare("SELECT * FROM `users` WHERE `telegram_id` = ?"); $checkUser->execute([$from_id]); $user = $checkUser->fetch(); if (!$user || $user->logged_in != 1) { answerCallback($callback_query->id, "⚠️ لطفاً مجدداً وارد حساب کاربری خود شوید.", true); die; } setStep($from_id, "wallet"); answerCallback($callback_query->id, "✅ درخواست لغو شد.", false); $responseText = "❌ *درخواست لغو شد*\n\n" . "درخواست برداشت شما لغو گردید.\n\n" . "💸 در صورت تمایل، میتوانید مجدداً درخواست برداشت جدید ثبت نمایید."; editMessage($chat_id, $message_id, $responseText); die; }
Simpan
Batal
Isi Zip:
Unzip
Create
Buat Folder
Buat File
Terminal / Execute
Run
Chmod Bulk
All File
All Folder
All File dan Folder
Apply