setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $conn->exec("set names utf8mb4"); } catch (PDOException $e) { echo "Connection failed: " . $e->getMessage(); } function telegramRequest(string $method, array $data, string $botToken) { $apiUrl = "https://api.telegram.org/bot" . $botToken . "/" . $method; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $apiUrl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); $response = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } curl_close($ch); return json_decode($response, true); } $botToken = $bot_token; $request_content = file_get_contents("php://input"); $side = json_decode($request_content)->side; $coin = json_decode($request_content)->coin; $amount = json_decode($request_content)->amount; $status = json_decode($request_content)->status; $transId = json_decode($request_content)->id; $code = json_decode($request_content)->data->code; if ($side == 'receive' && $status == 'confirm') { $stmt = $conn->prepare("SELECT * FROM `settings` WHERE `key_` = ?"); $stmt->execute(['uv_sell']); $result = $stmt->fetch(PDO::FETCH_OBJ); $usdt_irt_price = getUsdtIrtPrice(); if ($usdt_irt_price === null || $usdt_irt_price === false) { $bot->sendMessage($from_id, "❗️ خطا در دریافت قیمت لحظه‌ای تتر. لطفاً بعداً دوباره تلاش کنید."); die; } $giveMoney = $result->value_ ?? 0; $finalAmount = ($giveMoney + $usdt_irt_price) * $amount; $query = "SELECT * FROM `purchased_vouchers` WHERE `code` = ?"; $stmt = $conn->prepare($query); $stmt->execute([$code]); $chat_id = $stmt->fetch(PDO::FETCH_OBJ)->chat_id; $query = "UPDATE `purchased_vouchers` SET `amount` = ?, `status` = ? WHERE `code` = ?"; $stmt = $conn->prepare($query); $stmt->execute([$finalAmount, $status, $code]); $response_text = "🌟 فروش ووچر شما با موفقیت انجام شد! 🌟\n\n"; $response_text .= "شناسه تراکنش: *$transId*\n"; $response_text .= "مقدار ووچر: *$finalAmount* تومان\n"; $response_text .= "وضعیت: *تایید شده* ✅\n\n"; $response_text .= "💰 مبلغ شما به موجودی حساب اضافه گردید.\n"; $data = [ 'chat_id' => $chat_id, 'text' => $response_text, 'parse_mode' => 'Markdown' ]; $response = telegramRequest('sendMessage', $data, $botToken); $query = "UPDATE `users` SET `balance` = `balance` + ? WHERE `chat_id` = ?"; $stmt = $conn->prepare($query); $stmt->execute([$finalAmount, $chat_id]); $stmt = $conn->prepare("SELECT * FROM `settings` WHERE `key_` = ?"); $stmt->execute(['sell_voucher_channel']); $result = $stmt->fetch(PDO::FETCH_OBJ); $channel = $result->value_ ?? 0; $stmt = $conn->prepare("SELECT * FROM `users` WHERE `chat_id` = ?"); $stmt->execute([$chat_id]); $currentUser = $stmt->fetch(PDO::FETCH_OBJ); $full_name = $currentUser->full_name; $transActionDate = jdate("Y/m/d - H:i:s", strtotime(date("Y-m-d H:i:s")), tr_num: 'en'); $log_text = " 🛒 **فروش ووچر جدید** 🛒 👤 **شناسه کاربر**: $chat_id 🔰 **نام و نام خانوادگی**: $full_name 💳 **شناسه رهگیری**: $transId 🏷️ **نوع ووچر**: uVoucher 💸 **مبلغ کل**: $finalAmount تومان ⏳ **تاریخ فروش**: " . $transActionDate . " ✅ فروش ووچر با موفقیت توسط کاربر با شناسه $chat_id انجام شد. "; $data = [ 'chat_id' => $channel, 'text' => $log_text, 'parse_mode' => 'Markdown' ]; telegramRequest('sendMessage', $data, $botToken); } if ($side == 'receive' && $status == 'reject') { $query = "SELECT * FROM `purchased_vouchers` WHERE `code` = ?"; $stmt = $conn->prepare($query); $stmt->execute([$code]); $result = $stmt->fetch(PDO::FETCH_OBJ); $query = "UPDATE `purchased_vouchers` SET `amount` = ?, `status` = ? WHERE `code` = ?"; $stmt = $conn->prepare($query); $stmt->execute([$amount, $status, $code]); $chat_id = $result->chat_id; $data = [ 'chat_id' => $chat_id, 'text' => 'کد ووچر ارسال شده رد شد', 'parse_mode' => 'Markdown' ]; $response = telegramRequest('sendMessage', $data, $botToken); }