sendMessage($from_id, $response_text, $back_keyboard, $message_id); setStep($from_id, 'add-bank-card'); die; } if ($currentUser->step == 'add-bank-card') { if (!preg_match("/^\d{16}$/", $text)) { $error_text = "❌ *فرمت نامعتبر*\n\n"; $error_text .= "شماره کارت باید دقیقاً 16 رقم باشد.\n\n"; $error_text .= "💡 لطفاً شماره کارت را بدون فاصله و خط تیره وارد کنید:\n"; $error_text .= "مثال: `1234567890123456`"; $bot->sendMessage($from_id, $error_text); die; } $query = "SELECT * FROM `cards` WHERE `number` = ?"; $stmt = $db->prepare($query); $stmt->execute([$text]); $result = $stmt->fetch(); if ($result) { $error_text = "⚠️ *شماره کارت تکراری*\n\n"; $error_text .= "شماره کارت وارد شده قبلاً ثبت شده است.\n\n"; $error_text .= "💡 لطفاً یک شماره کارت جدید وارد کنید:"; $bot->sendMessage($from_id, $error_text); die; } $loading_msg = $bot->sendMessage($from_id, "⏳ *در حال بررسی شماره کارت...*\n\n📡 لطفاً چند لحظه صبر کنید.\n\n🔄 در حال استعلام و اعتبارسنجی کارت..."); $loading_msg_id = $loading_msg->result->message_id ?? null; $result = $apiRequest->checkBankCard($text, $currentUser->national_code, str_replace('/', '', $currentUser->birthday)); if ($result == false) { $error_text = "❌ *کارت نامعتبر*\n\n"; $error_text .= "شماره کارت وارد شده با اطلاعات هویتی شما مطابقت ندارد!\n\n"; $error_text .= "💡 لطفاً یک شماره کارت به نام خودتان ارسال کنید:"; if ($loading_msg_id) { $bot->editMessage($from_id, $error_text, $loading_msg_id); } else { $bot->sendMessage($from_id, $error_text); } die; } $cardNumber = $text; $sheba = $apiRequest->cardToSheba($cardNumber); $bank = $sheba->ibanInfo->bank; $depositNumber = $sheba->ibanInfo->depositNumber; $iban = $sheba->ibanInfo->iban; $owners = $sheba->ibanInfo->owners; $firstName = $owners[0]->firstName; $lastName = $owners[0]->lastName; $response_text = "✅ *کارت تایید شد*\n\n"; $response_text .= "📊 *اطلاعات کارت:*\n\n"; $response_text .= "💳 *شماره کارت:* `{$sheba->number}`\n"; $response_text .= "🏦 *بانک:* $bank\n"; $response_text .= "📝 *شماره شبا:* `$iban`\n"; $response_text .= "👤 *نام صاحب حساب:* $firstName $lastName\n"; $response_text .= "🔢 *شماره سپرده:* `$depositNumber`\n\n"; $response_text .= "✅ کارت شما با موفقیت تایید و به حساب کاربری شما افزوده شد."; if ($loading_msg_id) { $bot->editMessage($from_id, $response_text, $loading_msg_id); } else { $bot->sendMessage($from_id, $response_text); } $query = "INSERT INTO `cards` (`chat_id`, `number`, `shaba`) VALUES (?, ?, ?)"; $stmt = $db->prepare($query); $stmt->execute([$from_id, $text, $iban]); $bot->sendMessage($from_id, '✅ به منوی اصلی بازگشتید', $main_keyboard); setStep($from_id, 'home'); die; } if ($text == '❌ حذف شماره کارت') { $response_text = "❌ *حذف کارت بانکی*\n\n"; $response_text .= "لطفاً شماره کارت مورد نظر را برای حذف وارد کنید:\n\n"; $response_text .= "⚠️ *توجه:* پس از حذف، امکان استفاده از این کارت وجود نخواهد داشت."; $bot->sendMessage($from_id, $response_text, $back_keyboard, $message_id); setStep($from_id, 'delete-bank-card'); die; } if ($currentUser->step == 'delete-bank-card') { $query = "SELECT * FROM `cards` WHERE `number` = ?"; $stmt = $db->prepare($query); $stmt->execute([$text]); $result = $stmt->fetch(); if ($from_id == $result->chat_id) { $query = "DELETE FROM `cards` WHERE `number` = ?"; $stmt = $db->prepare($query); $stmt->execute([$text]); } else { $bot->sendMessage($from_id, '❌ *خطا!* شماره کارت وارد شده نامعتبر است یا متعلق به شما نیست. لطفاً دوباره تلاش کنید.', $main_keyboard); setStep($from_id, 'home'); die; } $response_text = "✅ *کارت حذف شد*\n\n"; $response_text .= "شماره کارت مورد نظر با موفقیت از حساب کاربری شما حذف گردید."; $bot->sendMessage($from_id, $response_text, $main_keyboard); setStep($from_id, 'home'); die; }