where("botid", $botid)->find(); $this->data = $data; $this->bots = $botinfo; $this->Customer=new Customer(); $this->times = date('Y-m-d H:i:s'); $this->token = base64_encode($botinfo['botkey']); $this->telegram = new Telegram($botinfo['botkey']); $this->Member = new Member(); } public function handlename($from) { $tgid = intval($from["id"]); if (isset($from['last_name'])) { $last_name = $from['first_name'] . $from['last_name']; } else { $last_name = isset($from['first_name']) ? $from['first_name'] : ""; } $userfornameq = $last_name; if (mb_strlen($last_name, 'utf-8') > 6) { $last_name = mb_substr($last_name, 0, 6) . "..."; } else { $last_name = $last_name; } $tghao = isset($from['username']) ? $from['username'] : ""; $Markdown = '[' . $last_name . '](tg://user?id=' . $tgid . ')'; $HTML = '' . $last_name . ''; $is_bot = isset($from['is_bot']) ? $from['is_bot'] : false; $Rename = md5($tghao . $userfornameq . $last_name); $hui = array("tghao" => $tghao, 'tgname' => htmlspecialchars($userfornameq), 'tgnames' => htmlspecialchars($last_name), 'Markdown' => $Markdown, 'HTML' => $HTML, "rename" => $Rename, "id" => $tgid, 'is_bot' => $is_bot); return $hui; } public function init($func, $from, $chat, $date) { //var_dump($func, $from, $chat, $date); if (isset($chat['type'])) { if ($chat['type'] == "private") { $this->userinfo = $this->Member->where('userid', '=', $from['id'])->where('botid', $this->bots['botid'])->find(); $handlename = $this->handlename($from); if (empty($this->userinfo)) { // var_dump($this->times); $res = $this->Member->save(['email' => "Telegram" . $from['id'] . "@kuiba.con", 'password' => md5($this->times), 'nickname' => $handlename['tgname'], 'sex' => '2', 'vip_time' => 0, 'login_time' => $this->times, "login_ip" => "127.0.0.1", 'status' => '1', 'create_time' => $this->times, 'update_time' => $this->times, 'botid' => $this->bots['botid'], 'userid' => $from['id'], 'botnickname' => $this->bots['name']]); if ($res) { //return $this->success('操作成功'); } else { return $this->error('操作失败'); } } else { $this->Member->where('userid', '=', $from['id'])->where('botid', $this->bots['botid'])->update(['nickname' => $handlename['tgname'], 'login_time' => $this->times, 'update_time' => $this->times]); } } } } public function command($command, $param, $message_id, $from, $chat, $date, $is_topic_message = null) { if ($command == "/start") { if ($chat['type'] == "private") { $startbanner = isset($this->bots['startbanner']) ? $this->bots['startbanner'] : "https://img1.imgtp.com/2023/04/25/KvnPEf7O.jpg"; //在这里更新一个按钮 //根据开启功能引导 $inline_keyboard = array( array( array( 'text' => '🛒购买telegram 会员', 'callback_data' => 'yindan huiyuan' ) ) ); $inline_keyboard[] = array( array( 'text' => '客服中心', 'callback_data' => 'CUSTOMER_SERVICE' ), array( 'text' => '❎关闭', 'callback_data' => 'close' ) ); $button = json_encode( array( 'inline_keyboard' => $inline_keyboard ) ); //, $msgg, null, $button); $this->telegram->sendPhoto($chat['id'], $startbanner, "欢迎光临", null, $button); // $this->telegram->sendMessage $button = json_encode( array( 'keyboard' => array( array( array( 'text' => '购买会员', ), array( 'text' => '价格', ), array( 'text' => '充值', ), array( 'text' => '赠送朋友会员', ) ), array( array( 'text' => '订单管理', ), array( 'text' => '个人中心', ), array( 'text' => '联系客服', ) ), ), 'one_time_keyboard' => false, 'resize_keyboard' => true, 'input_field_placeholder' => "请在下发点击您需要的按钮", 'selective' => false, ) ); $startnumberone = "24小时 会员代开"; var_dump($startnumberone); $this->telegram->KeyboardButton($chat['id'], $startnumberone, $button); } } if ($command == "/mp") { if ($this->bots['botad'] == $from['id']) { $zongDingDan = Db::name("order")->where(array("botid" => $this->bots['botid']))->count(); $successDan = Db::name("order")->where(array("botid" => $this->bots['botid'], "start" => 1))->count(); $successmoney = Db::name("order")->where(array("botid" => $this->bots['botid'], "start" => 1))->sum("money"); $premium = Db::name("order")->where(array("botid" => $this->bots['botid'], "moth" => 'huiyuangoumaai', "start" => 1))->sum("money"); $paymoney = Db::name("order")->where(array("botid" => $this->bots['botid'], "moth" => 'yuepay', "start" => 1))->sum("money"); $lirunmoney = Db::name("order")->where(array("botid" => $this->bots['botid'], "moth" => 'huiyuangoumaai', "start" => 1))->sum("lirun"); $usermoneycount = $this->Member->where(array("botid" => $this->bots['botid']))->sum("money"); $msg = "销售面板" . "\r\n" . "代充余额:" . $this->bots['money'] . "" . "\r\n" . "总订单:" . $zongDingDan . "单" . "\r\n" . "成功订单:" . $successDan . "单" . "\r\n" . "成功金额:" . $successmoney . "U 会员(" . $premium . ")+充值(" . $paymoney . ")" . "\r\n" . "利润金额:" . $lirunmoney . "U" . "\r\n" . "会员余额:" . $usermoneycount . "U"; $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '设置价格', 'callback_data' => 'adminset price' ), array( 'text' => '代充绑定', 'callback_data' => 'adminset trxadd' ), array( 'text' => 'api信息', 'callback_data' => 'adminset api' ) ), array( array( 'text' => '推送下级消息', 'callback_data' => 'adminset push' ), array( 'text' => '充值余额', 'callback_data' => 'adminset paymoney' ), array( 'text' => '下级余额', 'callback_data' => 'adminset member 1' ) ), array( array( 'text' => '订单管理', 'callback_data' => 'adminset orderlist 1' ) ), array( array( 'text' => '关闭', 'callback_data' => 'close' ), array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE2' ) ) ) ) ); $this->telegram->sendMessage($chat['id'], $msg, $message_id, $button); } else { $this->telegram->sendMessage($chat['id'], "暂无这个指令,或者您无权使用"); } } } public function message($message, $message_id, $from, $chat, $date, $entities = null, $is_topic_message = null) { if ($chat['type'] == "private") { $userinfo = $this->handlename($from); if ($message == "个人中心") { $user = $this->Member->where(array("userid" => $from['id'], "botid" => $this->bots['botid']))->find(); $huiyuanodderok = Db::name("order")->where('userid', $from['id'])->where('start', 1)->count(); $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => 'api开发信息', 'callback_data' => 'Member api' ), ), array( array( 'text' => '关闭', 'callback_data' => 'close' ), array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); // $this->telegram->sendMessage($chat['id'], $message, $message_id, $buttonr, 'Markdown'); $ban = isset($user['trxadd']) ? $user['trxadd'] : "未绑定"; $this->telegram->sendMessage($chat['id'], "个人信息 TG昵称: {$userinfo['tgnames']} TG ID: {$from['id']} 可用余额:{$user['money']} USDT 累计下单:{$huiyuanodderok} 单 钱包地址:{$ban}", "", $button); return true; } if ($message == "订单管理") { $buttonr = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '充值订单', 'callback_data' => 'oererxkkaihesoftk 1 1' ), array( 'text' => '会员订单', 'callback_data' => 'oererxkkaihesoftk 2 1' ) ) ) ) ); $this->telegram->sendMessage($chat['id'], "订单管理" . "\r\n" . "点击下方按钮 查询您查询种类", $message_id, $buttonr, 'Markdown'); return true; } if ($message == "推送消息") { if ($this->bots['botad'] == $from['id']) { $this->telegram->sendMessage($from['id'], "ts+您需要推送的内容!消息 到达机器人所有用户"); return true; } } if (substr($message, 0, 2) == "ts") { if ($this->bots['botad'] == $from['id']) { $pos = strpos($message, 'ts'); if ($pos !== false) { $result = substr($message, $pos + 2); $order = uniqid(); //查询所有用户信息 给reds $userlist = Db::name('member')->where('botid', $this->bots['botid'])->select(); $jobData = array("botkey" => $this->bots["botkey"], "bid" => $this->bots['botid'], "order" => $order, "msg" => $result, 'userlist' => $userlist); $usercount = Db::name('member')->where('botid', $this->bots['botid'])->count(); if (empty(Cache::get("tuisinxiaoxic" . $this->bots['botid']))) { Cache::set("tuisinxiaoxi" . $this->bots['botid'], $jobData, 600); //记录 foreach ($userlist as $key => $value) { // code... Db::name('push')->insert(['userid' => $value['userid'], 'botid' => $this->bots['botid'], 'text' => $result, 'botkey' => $this->bots["botkey"]]); } $this->telegram->sendMessage($from['id'], "推送成功" . "本次推送人数:" . $usercount . "请等待任务执行结束!"); } else { $this->telegram->sendMessage($from['id'], "距离上次 推送 需要超过半小时"); } } return true; } } if ($message == "联系客服" || $message == "客服") { $this->telegram->sendMessage($from['id'], $this->bots['kefutelegram']); return true; } if ($message == "余额充值" || $message == "充值") { $MemberRecharge = isset($this->bots['MemberRecharge']) ? $this->bots['MemberRecharge'] : "1"; if ($MemberRecharge == "1") { $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '6u', 'callback_data' => 'paychange 6' ), array( 'text' => '10u', 'callback_data' => 'paychange 10' ), array( 'text' => '30u', 'callback_data' => 'paychange 30' ), array( 'text' => '50u', 'callback_data' => 'paychange 50' ), array( 'text' => '100u', 'callback_data' => 'paychange 100' ) ), array( array( 'text' => '200u', 'callback_data' => 'paychange 200' ), array( 'text' => '400u', 'callback_data' => 'paychange 400' ), array( 'text' => '500u', 'callback_data' => 'paychange 500' ) ), array( array( 'text' => '《其他金额》', 'callback_data' => 'payzhitypku other' ) ) ) ) ); $this->telegram->sendMessage($from['id'], "请选择充值金额", $message_id, $button); return true; } else { $this->telegram->sendMessage($from['id'], "余额充值 已关闭", $message_id); return true; } } if ($message == "余额") { $user = $this->Member->where(array("userid" => $from['id'], "botid" => $this->bots['botid']))->find(); //$this->db->select ('daikaihuiyuan_user_money',"*",['userid' => $from['id']]); // $this->Member->where( array( "userid"=>$from['id'],"botid"=>$this->bots['botid']))->update(['bishu'=>10]); $smg = "【userid】" . $from['id'] . " 【账户余额】{$user['money']}U"; $this->telegram->sendMessage($from['id'], $smg); return true; } if ($message == "赠送朋友会员") { $ruhao = isset($userinfo['tghao']) ? $userinfo['tghao'] : $this->bots['kefutelegram']; $ruhao = str_replace('_', '\_', $ruhao); $msg = "请发送你需要开通/续费会员的Telegram用户名: 1️⃣@开头,如 @{$ruhao} 2️⃣http开头,如 https://t.me/{$ruhao} 批量下单,可一次发送多个用户名,每行一个,或者 以 空格 逗号 间隔: 🔔例如: @用户名1 @用户名2 🔔或 @用户名1 @用户名2"; $this->telegram->sendMessage($chat['id'], $msg, "", null, 'Markdown', true); } //价格 if ($message == "价格") { $array = explode(",", $this->bots['pricexiao']); if (count($array) != 3) { $this->telegram->sendMessage($from['id'], "管理员价格配置错误了"); } else { $t1 = $array[0]; $t2 = $array[1]; $t3 = $array[2]; $msg = "会员价格 🔥3个月 / {$t1} U 🔥6个月 / {$t2} U 🔥12个月 / {$t3} U"; $this->telegram->sendMessage($from['id'], $msg); } } //联系客服 if ($message == "购买会员") { $ruhao = isset($userinfo['tghao']) ? $userinfo['tghao'] : "@zf789"; $ruhao = str_replace('_', '\_', $ruhao); $this->telegram->sendMessage($chat['id'], "请发送你需要开通/续费会员的Telegram用户名: 1️⃣@开头,如 @{$ruhao} 2️⃣http开头,如 https://t.me/{$ruhao} 批量下单,可一次发送多个用户名,每行一个,或者 以 空格 逗号 间隔: 🔔例如: @用户名1 @用户名2 🔔或 @用户名1 @用户名2", "", null, 'Markdown', true); //$this->telegram->sendMessage ($from['id'],$smg); return true; } // JoinProxy //创建3*10*客户1 $message = str_replace("https://t.me/", "@", $message); $atCount = substr_count($message, '@'); if ($atCount == 1) { if (preg_match('/^@[a-zA-Z0-9_]+$/', $message)) { //取消号码验证 $ym = $this->checktelegramuser(str_replace("@", "", $message)); if (!empty($ym[0])) { if ($ym[0] != "") { $txfile = $ym[1]; $nicheng = $ym[0]; $max_length = 5; // 最大长度 if (mb_strlen($nicheng) > $max_length) { $nicheng = mb_substr($nicheng, 0, $max_length) . (mb_strlen($nicheng) > $max_length ? '...' : ''); } else { $nicheng = $nicheng; } $usernamr = $message; //正常购买 //如果有设定价格 则 使用设定价格 $array = explode(",", $this->bots['pricexiao']); if (count($array) != 3) { $this->telegram->sendMessage($from['id'], "管理员价格配置错误了"); } else { $t1 = $array[0]; $t2 = $array[1]; $t3 = $array[2]; $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '3 个月 售价 ' . $t1 . 'U', 'callback_data' => 'kguehunyu 3 ' . $t1 . ' 0 ' . $usernamr . " " . $nicheng ), array( 'text' => '6 个月 售价 ' . $t2 . 'U', 'callback_data' => 'kguehunyu 6 ' . $t2 . ' 1 ' . $usernamr . " " . $nicheng ) ), array( array( 'text' => '12 个月 售价 ' . $t3 . 'U', 'callback_data' => 'kguehunyu 12 ' . $t3 . ' 2 ' . $usernamr . " " . $nicheng ) ), array( array( 'text' => '关闭', 'callback_data' => 'close' ), array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); $msg = "开通用户:{$usernamr} 用户昵称:{$nicheng} 确定为此用户 开通/续费 Telegram Premium会员吗?"; $hui = $this->telegram->sendPhoto($chat['id'], $txfile, $msg, null, $button); if (empty($hui)) { $this->telegram->sendPhoto($chat['id'], "https://img1.imgtp.com/2023/09/16/7HMoTjjp.png", $msg, null, $button); } } } else { $this->telegram->sendMessage($from['id'], "该账号已订阅 会员!请等待 到期后在开通!请联系客服"); return true; } } else { $this->telegram->sendMessage($from['id'], "信息获取失败!请【重新发送】您的与用户名!"); return true; } } } if ($atCount >= 2) { $msg = "欢迎使用批量开通!已提取开通用户名 请注意核对哟!" . "\r\n" . "由于开通用户名较多!" . "\r\n" . "请注意核对哟!" . "\r\n" . "提交有效用户名如下" . "\r\n"; $pattern = '/@(\w+)/'; preg_match_all($pattern, $message, $matches); if (empty($matches[1])) { } else { $plorder = "tmtpl" . uniqid(); $usernames = $matches[1]; // 使用 array_unique() 去重 $usernames = array_unique($usernames); foreach ($usernames as $key => $value) { // code... $msg .= "@" . $value . "" . "\r\n"; } cache::set($this->bots['botid'] . $plorder, $usernames, 1200); $msg .= "一共" . count($usernames) . "个"; } $url = "https://i.ibb.co/cvS1GDq/image.png"; //如果有设定价格 则 使用设定价格 $array = explode(",", $this->bots['pricexiao']); $t1 = $array[0]; $t2 = $array[1]; $t3 = $array[2]; $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '3 个月 售价 ' . $t1 . 'U', 'callback_data' => 'pkguehunyu 3 ' . $t1 . ' 0 ' . $plorder ), array( 'text' => '6 个月 售价 ' . $t2 . 'U', 'callback_data' => 'pkguehunyu 6 ' . $t2 . ' 1 ' . $plorder ) ), array( array( 'text' => '12 个月 售价 ' . $t3 . 'U', 'callback_data' => 'pkguehunyu 12 ' . $t3 . ' 2 ' . $plorder ) ), array( array( 'text' => '关闭', 'callback_data' => 'close' ), array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); $this->telegram->sendPhoto($chat['id'], $url, $msg, null, $button); } } if ($chat['type'] == "supergroup" || $chat['type'] == "group") { preg_match_all('/[\x{4e00}-\x{9fff}-A-Za-z0-9@]+/u', $message, $matches); $message2 = strtolower(join('', $matches[0])); //过滤表情包和符号 if ($message == "id") { $this->telegram->sendMessage($chat['id'], 'id:' . $chat['id'] . ''); return true; } //KeyboardButton } } public function reply_message($text, $message_id, $reply_to_text, $reply_to_message_id, $reply_to_date, $from, $chat, $reply_to_is_bot) { var_dump($text,$message_id,$reply_to_text,$reply_to_message_id,$reply_to_date,$from,$chat,$reply_to_is_bot); $userinfo = $this->handlename($from); if ($chat['type'] == "private") { if ($reply_to_text == "请回复本条并输入您新的地址!") { //判断地址是否合法 if (preg_match('/^T(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]+$/', $text)) { $systemadd = Db::name("conf")->where("key", 'system')->value('value'); Db::name("admin_bot")->where("botid", $this->bots['botid'])->update(['trxadd' => $text]); $this->telegram->deleteMessage($chat['id'], $message_id); $this->telegram->deleteMessage($chat['id'], $reply_to_message_id); $this->telegram->sendMessage($chat['id'], "您的充值地址绑定成功了!您的地址【" . $text . "】" . "\r\n" . "系统充值地址为[" . $systemadd . "]"); } else { $this->telegram->sendMessage($chat['id'], "您的地址不合法 请检查地址是否正确", $message_id); } } if ($reply_to_text == "请回复本条并输入您要充值的金额、例如:100 (输入纯数字即可、单位默认USDT)") { //建立充值 if (is_numeric($text)) { $paymoney = $this->paymoney($text); $order_no = uniqid(); $jzsh = time() + 60 * 15; $lstime = time() - 600; $lsdingdan = Db::name('order')->where(['userid' => $from['id'], "botid" => $this->bots['botid'], 'start' => 0])->where('create_time', '>=', $lstime)->count(); if ($lsdingdan >= 5) { //不在支持新订单创建 // $this->telegram->answerCallback($callback_id, "如果您无法支付!请联系客服处理订单哟!", true); $url = "https://img.picui.cn/free/2024/07/10/668e1ed44a8cd.jpg"; $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '关闭', 'callback_data' => 'close' ), array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); $msgg = "订单建立失败了!" . "\r\n" . "如果您无法支付!请联系客服哟!" . "\r\n" . "感谢您的支持"; $media = array( 'type' => 'photo', 'media' => $url, 'caption' => $msgg, "parse_mode" => 'HTML', ); $this->telegram->editMessageMedia($chat['id'], $message_id, NULL, json_encode($media), $button); // $this->telegram->editMessageCaption($chat['id'], $message_id, null, "订单建立失败了!"//."\r\n"."如果您无法支付!请联系客服哟!"."\r\n"."感谢您的支持"); // $this->telegram->editMessageReplyMarkup($chat['id'], $message_id, null, $button); // $this->telegram->editMessage($chat['id'], $message_id, "订单建立失败了!"."\r\n"."如果您无法支付!请联系客服哟!"."\r\n"."感谢您的支持", $button, 'HTML', true); } else { Db::name('order')->insert(['userid' => $from['id'], 'money' => $text, 'paymoney' => $paymoney, 'create_time' => time(), "trxadd" => $this->bots['trxadd'], "botid" => $this->bots['botid'], "nichen" => $userinfo['tgnames'], "name" => "余额充值" . $userinfo['tgnames'], 'start' => 0, 'order_no' => $order_no, 'end_time' => $jzsh, 'smessage_id' => $message_id, "mode" => "Daikaihuiyuan", "moth" => "yuepay", 'lirun' => 0]); if ($lsdingdan > 1) { //不在监听 减少资源浪费 } else { $job = 'app\bapi\syservice\Getzhandam'; $queueName = 'zhandam'; $data = array("end_time" => time() + 60 * 20, "trxadd" => $this->bots['trxadd'], 'order_no' => $order_no); // Queue::push($job, $data, $queueName); } $odder = Db::name('order')->where("order_no", $order_no)->find(); $xzssss = date("m-d H:i:s"); $msg = "订单号:{$odder['order_no']} 商品名称:{$odder['name']} 订单金额:{$odder['paymoney']} USDT 当前时间:{$xzssss} 请选择支付方式:"; $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => 'USDT支付', 'callback_data' => 'payodderkkkssskkk payue ' . $order_no ) ), array( array( 'text' => '刷新', 'callback_data' => 'payodderkkkssskkk re ' . $order_no ), array( 'text' => '取消订单', 'callback_data' => 'checkodder ' . $order_no ) ), array( array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); $this->telegram->sendMessage($chat['id'], $msg, "", $button, 'HTML', true); } } else { $this->telegram->sendMessage($chat['id'], "机器人不能理解这个金额! 请输入数字哟! 祝你每天开心"); } } } } function curl_get($url, $data = []) { // 处理get数据 if (!empty($data)) { $url = $url . '?' . http_build_query($data); } $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //这个是重点。 // 设置 HTTP 代理 //curl_setopt($curl, CURLOPT_PROXY, '127.0.0.1:10809'); $result = curl_exec($curl); curl_close($curl); return $result; } function checktelegramuser($username = "YT9556") { $url = "https://t.me/" . str_replace('@', '', $username); // var_dump($url); $teq = $this->curl_get($url); //var_dump($teq); //preg_match_all ('//', $teq, $pat_array); preg_match_all('//', $teq, $pat_array); if (!empty($pat_array[2])) { return $pat_array[2]; } else { return [0 => '', 1 => '']; } return [0 => '', 1 => '']; } public function edited_message($message, $message_id, $from, $chat, $date, $entities = null) {} //编辑消息 public function forward_from($message, $message_id, $from, $chat, $forward_from, $date) {} public function forward_from_chat($message, $message_id, $from, $chat, $forward_from) {} public function forward_fromphoto($message, $message_id, $from, $chat, $date) {} public function contact($contact, $message_id, $from, $chat, $date) //联系人 {} public function sticker($sticker, $message_id, $from, $chat, $date) {} public function sticker_reply_to_message($message, $message_id, $from, $chat, $date, $sticker) //tiezhi 被回复 {} public function reply_to_message($message, $message_id, $date, $textmessage, $reply_to_message, $xdate, $from, $chat, $is_bot, $is_topic_message = null) { if ($chat['type'] == "private") { $userinfo = $this->handlename($from); if ($textmessage == "请回复本条并输入您要充值的金额、例如:100 (输入纯数字即可、单位默认USDT)") { //建立充值 if (is_numeric($message)) { $paymoney = $this->paymoney($message); $order_no = uniqid(); $jzsh = time() + 60 * 15; $lstime = time() - 600; $lsdingdan = Db::name('order')->where(['userid' => $from['id'], "botid" => $this->bots['botid'], 'start' => 0])->where('create_time', '>=', $lstime)->count(); if ($lsdingdan >= 5) { //不在支持新订单创建 // $this->telegram->answerCallback($callback_id, "如果您无法支付!请联系客服处理订单哟!", true); $url = "https://img.picui.cn/free/2024/07/10/668e1ed44a8cd.jpg"; $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '关闭', 'callback_data' => 'close' ), array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); $msgg = "订单建立失败了!" . "\r\n" . "如果您无法支付!请联系客服哟!" . "\r\n" . "感谢您的支持"; $media = array( 'type' => 'photo', 'media' => $url, 'caption' => $msgg, "parse_mode" => 'HTML', ); $this->telegram->editMessageMedia($chat['id'], $message_id, NULL, json_encode($media), $button); // $this->telegram->editMessageCaption($chat['id'], $message_id, null, "订单建立失败了!"//."\r\n"."如果您无法支付!请联系客服哟!"."\r\n"."感谢您的支持"); // $this->telegram->editMessageReplyMarkup($chat['id'], $message_id, null, $button); // $this->telegram->editMessage($chat['id'], $message_id, "订单建立失败了!"."\r\n"."如果您无法支付!请联系客服哟!"."\r\n"."感谢您的支持", $button, 'HTML', true); } else { Db::name('order')->insert(['userid' => $from['id'], 'money' => $message, 'paymoney' => $paymoney, 'create_time' => time(), "trxadd" => $this->bots['trxadd'], "botid" => $this->bots['botid'], "nichen" => $userinfo['tgnames'], "name" => "余额充值" . $userinfo['tgnames'], 'start' => 0, 'order_no' => $order_no, 'end_time' => $jzsh, "tu" => 0, 'smessage_id' => $message_id, "mode" => "Daikaihuiyuan", "moth" => "yuepay", 'lirun' => 0]); if ($lsdingdan > 1) { //不在监听 减少资源浪费 } else { $job = 'app\bapi\syservice\Getzhandam'; $queueName = 'zhandam'; $data = array("end_time" => time() + 60 * 20, "trxadd" => $this->bots['trxadd'], 'order_no' => $order_no); // Queue::push($job, $data, $queueName); } $odder = Db::name('order')->where("order_no", $order_no)->find(); $xzssss = date("m-d H:i:s"); $msg = "订单号:{$odder['order_no']} 商品名称:{$odder['name']} 订单金额:{$odder['paymoney']} USDT 当前时间:{$xzssss} 请选择支付方式:"; $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => 'USDT支付', 'callback_data' => 'payodderkkkssskkk payue ' . $order_no ) ), array( array( 'text' => '刷新', 'callback_data' => 'payodderkkkssskkk re ' . $order_no ), array( 'text' => '取消订单', 'callback_data' => 'checkodder ' . $order_no ) ), array( array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); $this->telegram->sendMessage($chat['id'], $msg, "", $button, 'HTML', true); } } else { $this->telegram->sendMessage($chat['id'], "机器人不能理解这个金额! 请输入数字哟! 祝你每天开心"); } } // var_dump($message,$reply_to_message,$textmessage); } } public function photo($photo, $caption, $message_id, $from, $chat, $date, $entities = null) {} public function video($video, $caption, $message_id, $from, $chat, $date, $entities = null) {} public function document($photo, $caption, $message_id, $from, $chat, $date) {} //callback_inline public function callback_inline($callback_data, $callback_id, $callback_from) {} public function callback_query($callback_data, $callback_id, $callback_from, $message_id, $from, $chat, $date) { if ($chat['type'] == "private") { $callbackExplode = explode(' ', $callback_data); $tou = $callbackExplode['0']; $userinfo = $this->handlename($callback_from); //adminset if ($tou == "adminset") { $type = $callbackExplode['1']; // $this->telegram->answerCallback($callback_id, $type, true); if ($type == "price") { $array = explode(",", $this->bots['pricexiao']); $t1 = isset($array[0]) ? $array[0] : "15"; $t2 = isset($array[1]) ? $array[1] : "20"; $t3 = isset($array[2]) ? $array[2] : "35"; $msg = "目前销售价格" . "\r\n" . "三个月会员: " . $t1 . "u" . "\r\n" . "六个月会员: " . $t2 . "u" . "\r\n" . "一 年 会员: " . $t3 . "u" . "\r\n" . "您的销售价格 必须高于成本价格 " . "\r\n" . "关于成本价格 请咨询客服"; $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '设置3个月价格', 'callback_data' => 'adminprice 3' ), array( 'text' => '设置6个月价格', 'callback_data' => 'adminprice 6' ), array( 'text' => '设置12个月价格', 'callback_data' => 'adminprice 12' ) ), array( array( 'text' => '刷新配置', 'callback_data' => 'adminset price' ), array( 'text' => '关闭', 'callback_data' => 'close' ), array( 'text' => '返回主面板', 'callback_data' => 'adminset panel' ) ) ) ) ); $this->telegram->editMessage($chat['id'], $message_id, $msg, $button); } if ($type == "api") { //user_token $Member = $this->Member->where(array("userid" => $callback_from['id'], "botid" => $this->bots['botid']))->find(); if (empty($Member['token'])) { $apitoken = md5(time()); //更新到配置 $this->Member->where("botid", $this->bots['botid'])->where('userid', $callback_from['id'])->update(['token' => $apitoken]); } else { $apitoken = $Member['token']; } // $user = $this->Member->where(array("userid" => $callback_from['id'], "botid" => $this->bots['botid']))->find(); $msg = "您的api信息" . "\r\n" . "uid:" . $Member['id'] . "" . "\r\n" . "apikey:" . $apitoken . "" . "\r\n" . "余额:" . $Member['money'] . ""; $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '对接文档', 'url' => $this->bots['apiurl'].'/api.html' ), array( 'text' => '返回主面板', 'callback_data' => 'adminset panel' ) ), array( array( 'text' => '关闭', 'callback_data' => 'close' ), array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); $this->telegram->editMessage($chat['id'], $message_id, $msg, $button); } if ($type == "panel") { $zongDingDan = Db::name("order")->where(array("userid" => $callback_from['id'], "botid" => $this->bots['botid']))->count(); $successDan = Db::name("order")->where(array("userid" => $callback_from['id'], "botid" => $this->bots['botid'], "start" => 1))->count(); $successmoney = Db::name("order")->where(array("userid" => $callback_from['id'], "botid" => $this->bots['botid'], "start" => 1))->sum("money"); $premium = Db::name("order")->where(array("userid" => $callback_from['id'], "botid" => $this->bots['botid'], "moth" => 'huiyuangoumaai', "start" => 1))->sum("money"); $paymoney = Db::name("order")->where(array("userid" => $callback_from['id'], "botid" => $this->bots['botid'], "moth" => 'yuepay', "start" => 1))->sum("money"); $usermoneycount = $this->Member->where(array("userid" => $callback_from['id'], "botid" => $this->bots['botid']))->sum("money"); $msg = "销售面板" . "\r\n" . "代充余额:" . $this->bots['money'] . "" . "\r\n" . "总订单:" . $zongDingDan . "单" . "\r\n" . "成功订单:" . $successDan . "单" . "\r\n" . "成功金额:" . $successmoney . "U 会员(" . $premium . ")+充值(" . $paymoney . ")" . "\r\n" . "利润金额:50单" . "\r\n" . "会员余额:" . $usermoneycount . "U"; $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '设置价格', 'callback_data' => 'adminset price' ), array( 'text' => '代充绑定', 'callback_data' => 'adminset trxadd' ), array( 'text' => 'api信息', 'callback_data' => 'adminset api' ) ), array( array( 'text' => '推送下级消息', 'callback_data' => 'adminset push' ), array( 'text' => '下级余额', 'callback_data' => 'adminset member 1' ) ), array( array( 'text' => '订单管理', 'callback_data' => 'adminset orderlist 1' ) ), array( array( 'text' => '关闭', 'callback_data' => 'close' ), array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE2' ) ) ) ) ); $this->telegram->editMessage($chat['id'], $message_id, $msg, $button); } if ($type == "member") { $page = isset($callbackExplode[2]) ? $callbackExplode[2] : 1; if ($page < 1) { $this->telegram->answerCallback($callback_id, "已经是第一页了", true); return; } $member = Db::name("member")->where('botid', $this->bots['botid'])->page($page, 10)->select(); $membertxt = "昵称|余额" . "\r\n"; foreach ($member as $key => $value) { // $tim=date('m-d H-i-s',$value['time']); $membertxt .= '🎭' . $value['nickname'] . " 💡" . $value['money'] . "\r\n"; // code... } // $this->telegram->sendMessage($chat['id'], $ordertxt); $xpage = $page + 1; $spage = $page - 1; $buttonr = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '上一页', 'callback_data' => 'adminset member ' . $spage ), array( 'text' => '下一页', 'callback_data' => 'adminset member ' . $xpage ) ), array( array( 'text' => '关闭', 'callback_data' => 'close' ), array( 'text' => '返回主面板', 'callback_data' => 'adminset panel' ) ) ) ) ); $this->telegram->editMessage($chat['id'], $message_id, $membertxt, $buttonr); } if ($type == "trxadd") { $msg = "绑定您的 充值地址!" . "\r\n" . "绑定后你的转账 会自动充值到您的余额上!" . "\r\n" . "你的地址为:【" . $this->bots['trxadd'] . "】"; $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '修改新地址', 'callback_data' => 'adminset xiugaitrxadd' ), array( 'text' => '返回主面板', 'callback_data' => 'adminset panel' ) ), array( array( 'text' => '关闭', 'callback_data' => 'close' ), array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); $this->telegram->editMessage($chat['id'], $message_id, $msg, $button); // $this->telegram->forcereply($chat['id'], "请回复本条并输入您要充值的金额、例如:100 (输入纯数字即可、单位默认USDT)", $message_id); } if ($type == "xiugaitrxadd") { $this->telegram->forcereply($chat['id'], "请回复本条并输入您新的地址!", $message_id); } if ($type == "paymoney") { $systemadd = Db::name("conf")->where("key", 'system')->value('value'); $res = $this->Customer->CreateQRcode($systemadd, "大于5u"); //$trxadd,$money //var_dump($res); // $this->telegram->sendMessage($chat['id'], json_encode($res)); $isid = $this->telegram->sendDocumentphoto($chat['id'], $res, "地址:{$systemadd}" . "\r\n" . "系统地址大于5u 转账多少 上分多少"); } if ($type == "push") { //写个自动推送消息 $this->telegram->sendMessage($chat['id'], "给您的所有下级推送消息!提供 ts+您需要推送的内容" . "\r\n" . "命令示例:ts宝宝们!我们开始营业了哟!" . "\r\n" . "用户端收到消息:宝宝们!我们开始营业了哟!"); } /*订单列表*/ if ($type == "orderlist") { $page = isset($callbackExplode[2]) ? $callbackExplode[2] : 1; if ($page < 1) { $this->telegram->answerCallback($callback_id, "已经是第一页了", true); return; } $member = Db::name("order")->where('botid', $this->bots['botid'])->order('id', 'desc')->page($page, 10)->select(); $membertxt = "昵称|余额" . "\r\n"; $fujiabotton = array(); foreach ($member as $key => $value) { $tim = date('m-d H-i-s'); $start = $value['start'] == 1 ? '✅' : "❌"; if ($value['start'] != 1) { $fujiabotton[] = array( 'text' => $value['id'], 'callback_data' => 'adminset orderinfo ' . $value['id'] ); } $membertxt .= "[" . $value['id'] . "] " . " " . $start . '🎭' . $value['nichen'] . " 💡" . $value['paymoney'] . " ⏱️" . $value['tancan'] . "\r\n"; // code... } // $this->telegram->sendMessage($chat['id'], $ordertxt); $xpage = $page + 1; $spage = $page - 1; $inline_keyboard = array( array( array( 'text' => '上一页', 'callback_data' => 'adminset orderlist ' . $spage ), array( 'text' => '下一页', 'callback_data' => 'adminset orderlist ' . $xpage ) ) ); $inline_keyboard[] = $fujiabotton; $inline_keyboard[] = array( array( 'text' => '返回主面板', 'callback_data' => 'adminset panel' ), array( 'text' => '❎关闭', 'callback_data' => 'close' ) ); $button = json_encode( array( 'inline_keyboard' => $inline_keyboard ) ); $this->telegram->editMessage($chat['id'], $message_id, $membertxt, $button); } /*orderinfo 详细信息*/ if ($type == "orderinfo") { $orderid = isset($callbackExplode[2]) ? $callbackExplode[2] : 1; $orderinfo = Db::name("order")->where(array("id" => $orderid))->find(); $start = $orderinfo['start'] == 1 ? '✅' : "❌"; $create_time = date('m-d H:i:s', $orderinfo['create_time']); $end_time = date('m-d H:i:s', $orderinfo['end_time']); $msg = " 订单详情 " . "\r\n" . "ID:" . $orderinfo['id'] . "" . "\r\n" . "单号:" . $orderinfo['order_no'] . "" . "\r\n" . "状态:" . $start . "\r\n" . "标题:" . $orderinfo['name'] . "" . "\r\n" . "收款地址:" . $orderinfo['trxadd'] . "" . "\r\n" . "实付金额:" . $orderinfo['paymoney'] . "" . "\r\n" . "开始时间:" . $create_time . "" . "\r\n" . "结束时间:" . $end_time . ""; $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '✅确认支付订单', 'callback_data' => 'adminset orderok ' . $orderid ), ), array( array( 'text' => '关闭', 'callback_data' => 'close' ), array( 'text' => '返回主面板', 'callback_data' => 'adminset panel' ) ) ) ) ); $this->telegram->editMessage($chat['id'], $message_id, $msg, $button); } if ($type == "orderok") { $orderid = isset($callbackExplode[2]) ? $callbackExplode[2] : 1; $orderinfo = Db::name("order")->where(array("id" => $orderid))->find(); if ($orderinfo['start'] == 1) { $this->telegram->answerCallback($callback_id, "订单状态是成功的哟", true); return; } //确认成功订单 Db::name("order")->where(array("id" => $orderid))->update(['start' => 1]); //订单成功处理 if ($orderinfo['moth'] == 'yuepay') { //余额充值 调用增加余额 $req = $this->Customer->ChangeMoney($orderinfo['userid'], 'member', "+", $orderinfo['money'], $orderinfo['botid'], "充值"); } $orderinfo = Db::name("order")->where(array("id" => $orderid))->find(); $start = $orderinfo['start'] == 1 ? '✅' : "❌"; $create_time = date('m-d H:i:s', $orderinfo['create_time']); $end_time = date('m-d H:i:s', $orderinfo['end_time']); $msg = " 订单详情 " . "\r\n" . "ID:" . $orderinfo['id'] . "" . "\r\n" . "单号:" . $orderinfo['order_no'] . "" . "\r\n" . "状态:" . $start . "\r\n" . "标题:" . $orderinfo['name'] . "" . "\r\n" . "收款地址:" . $orderinfo['trxadd'] . "" . "\r\n" . "实付金额:" . $orderinfo['paymoney'] . "" . "\r\n" . "开始时间:" . $create_time . "" . "\r\n" . "结束时间:" . $end_time . ""; $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '✅确认支付订单', 'callback_data' => 'adminset orderok ' . $orderid ), ), array( array( 'text' => '关闭', 'callback_data' => 'close' ), array( 'text' => '返回主面板', 'callback_data' => 'adminset panel' ) ) ) ) ); $this->telegram->answerCallback($callback_id, "修改成功", true); $this->telegram->editMessage($chat['id'], $message_id, $msg, $button); } } if ($tou == "adminprice") { $type = $callbackExplode['1']; $money = isset($callbackExplode['2']) ? (float)$callbackExplode['2'] : 0; $array = explode(",", $this->bots['pricexiao']); if ($type == 3) { $n = 0; } if ($type == 6) { $n = 1; } if ($type == 13) { $n = 2; } $price = $array[$n]; // var_dump($money,$type); if ($money == 0) { $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '加 1 U', 'callback_data' => 'adminprice ' . $type . ' ' . "+1" ), array( 'text' => '减 1 U', 'callback_data' => 'adminprice ' . $type . ' ' . "-1" ) ), array( array( 'text' => '加 0.5 U', 'callback_data' => 'adminprice ' . $type . ' ' . "+0.5" ), array( 'text' => '减 0.5 U', 'callback_data' => 'adminprice ' . $type . ' ' . "-0.5" ) ), array( array( 'text' => '返回价格设置', 'callback_data' => 'adminset price' ) ) ) ) ); $msg = "开设设置会员销售价格" . "\r\n" . "设置【" . $type . "】个月价格【" . $price . "】"; $this->telegram->editMessage($chat['id'], $message_id, $msg, $button); } else { $newprice = $price + $money; $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '加 1 U', 'callback_data' => 'adminprice ' . $type . ' ' . "+1" ), array( 'text' => '减 1 U', 'callback_data' => 'adminprice ' . $type . ' ' . "-1" ) ), array( array( 'text' => '加 0.5 U', 'callback_data' => 'adminprice ' . $type . ' ' . "+0.5" ), array( 'text' => '减 0.5 U', 'callback_data' => 'adminprice ' . $type . ' ' . "-0.5" ) ), array( array( 'text' => '返回价格设置', 'callback_data' => 'adminset price' ) ) ) ) ); $msg = "开设设置会员销售价格" . "\r\n" . "设置【" . $type . "】个月价格【" . $newprice . "】"; //更新到配置 更具n 生成数据 $array[$n] = $newprice; $str = implode(',', $array); Db::name("admin_bot")->where("botid", $this->bots['botid'])->update(['pricexiao' => $str]); $this->telegram->editMessage($chat['id'], $message_id, $msg, $button); } } if($tou =="Member"){ $type = $callbackExplode['1']; if ($type == "api") { //user_token $Member = $this->Member->where(array("userid" => $callback_from['id'], "botid" => $this->bots['botid']))->find(); if (empty($Member['token'])) { $apitoken = md5(time()); //更新到配置 $this->Member->where("botid", $this->bots['botid'])->where('userid', $callback_from['id'])->update(['token' => $apitoken]); } else { $apitoken = $Member['token']; } // $user = $this->Member->where(array("userid" => $callback_from['id'], "botid" => $this->bots['botid']))->find(); $msg = "您的api信息" . "\r\n" . "uid:" . $Member['id'] . "" . "\r\n" . "apikey:" . $apitoken . "" . "\r\n" . "余额:" . $Member['money'] . ""; $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '对接文档', 'url' => $this->bots['apiurl'].'/api.html' ) ), array( array( 'text' => '关闭', 'callback_data' => 'close' ), array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); $this->telegram->editMessage($chat['id'], $message_id, $msg, $button); } } if ($tou == "goumaisangeyuehunyu") { $yue = $callbackExplode['1']; $money = $callbackExplode['2']; $tcid = $callbackExplode['3']; $msg = "注意:账号一定要保证正确!不要输入手机号以及用户名,复制id【带@的那个】发送即可,会员到账之前不要更改id,否则损失自行承担 请输入要充值的账号,多个账号之间用空格隔开,比如 xxx xxx"; Cache::set("goumaitaocan" . $callback_from['id'], $yue . "_" . $money . "_" . $tcid, 600); $this->telegram->sendMessage($chat['id'], $msg); } if ($tou == "oererxkkaihesoftk") { $start = $callbackExplode['1']; $page = isset($callbackExplode['2']) ? $callbackExplode['2'] : 1; if ($page < 1) { $this->telegram->answerCallback($callback_id, "已经是第一页了", true); return; } $moth = $start == '1' ? "yuepay" : "huiyuangoumaai"; $odder = Db::name("order")->where('userid', $callback_from['id'])->where('moth', $moth)->page($page, 10)->select(); $ordertxt = "金额|项目|状态|时间" . "\r\n"; foreach ($odder as $key => $value) { $tim = date('m-d H-i-s'); $start = $value['start'] == 0 ? "未支付" : "ok"; $ordertxt .= '💰' . $value['paymoney'] . " 💡" . $value['name'] . " ⏳" . $start . " ⏱️" . $tim . "\r\n"; // code... } // $this->telegram->sendMessage($chat['id'], $ordertxt); $xpage = $page + 1; $spage = $page - 1; $buttonr = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '上一页', 'callback_data' => 'oererxkkaihesoftk ' . $start . ' ' . $spage ), array( 'text' => '下一页', 'callback_data' => 'oererxkkaihesoftk ' . $start . ' ' . $xpage ) ),array( array( 'text' => '关闭', 'callback_data' => 'close' ), array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); $this->telegram->editMessage($chat['id'], $message_id, $ordertxt, $buttonr); } if ($tou == "payzhitypku") { $id = $callbackExplode[1]; if ($id == "other") { // $this->MemcacheModel->set("goumaitaocankkkk".$callback_from['id'],"ok",600); // $smg="请输入数字,充值必须大于1U"; $this->telegram->forcereply($chat['id'], "请回复本条并输入您要充值的金额、例如:100 (输入纯数字即可、单位默认USDT)", $message_id); } } if ($tou == "paychange") { $money = $callbackExplode[1]; if (is_numeric($money)) { $lstime = time() - 600; $lsdingdan = Db::name('order')->where(['userid' => $callback_from['id'], "botid" => $this->bots['botid'], 'start' => 0])->where('create_time', '>=', $lstime)->count(); if ($lsdingdan >= 5) { //不在支持新订单创建 // $this->telegram->answerCallback($callback_id, "如果您无法支付!请联系客服处理订单哟!", true); $url = "https://img.picui.cn/free/2024/07/10/668e1ed44a8cd.jpg"; $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); $msgg = "订单建立失败了!" . "\r\n" . "如果您无法支付!请联系客服哟!" . "\r\n" . "感谢您的支持"; $media = array( 'type' => 'photo', 'media' => $url, 'caption' => $msgg, "parse_mode" => 'HTML', ); $this->telegram->editMessageMedia($chat['id'], $message_id, NULL, json_encode($media), $button); } else { $paymoney = $this->paymoney($money); $order_no = uniqid(); $jzsh = time() + 60 * 15; Db::name('order')->insert(['userid' => $callback_from['id'], 'money' => $money, 'paymoney' => $paymoney, 'create_time' => time(), "trxadd" => $this->bots['trxadd'], "botid" => $this->bots['botid'], "nichen" => $userinfo['tgnames'], "name" => "余额充值" . $userinfo['tgnames'], 'start' => 0, 'order_no' => $order_no, 'end_time' => $jzsh, 'smessage_id' => $message_id, "mode" => "Daikaihuiyuan", "moth" => "yuepay", 'lirun' => 0]); if ($lsdingdan > 1) { //不在监听 减少资源浪费 } else { $job = 'app\bapi\syservice\Getzhandam'; $queueName = 'zhandam'; $data = array("end_time" => time() + 60 * 20, "trxadd" => $this->bots['trxadd'], 'order_no' => $order_no); // Queue::push($job, $data, $queueName); } $odder = Db::name('order')->where("order_no", $order_no)->find(); $xzssss = date("m-d H:i:s"); $msg = "订单号:{$odder['order_no']} 商品名称:{$odder['name']} 订单金额:{$odder['paymoney']} USDT 当前时间:{$xzssss} 请选择支付方式:"; $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => 'USDT支付', 'callback_data' => 'payodderkkkssskkk payue ' . $order_no ) ), array( array( 'text' => '刷新', 'callback_data' => 'payodderkkkssskkk re ' . $order_no ), array( 'text' => '取消订单', 'callback_data' => 'checkodder ' . $order_no ) ), array( array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); $this->telegram->sendMessage($chat['id'], $msg, "", $button, 'HTML', true); } } // $this->telegram->deleteMessage($chat['id'], $message_id); return true; } if ($tou == "kguehunyu") { //'kgoumaisangeyuehunyu 3 '.$t1.' 0 ' .$usernamr $money = $callbackExplode[2]; $usernamr = $callbackExplode[4]; $yue = $callbackExplode[1]; $nichengyi = $callbackExplode[5]; $paymoney = $this->paymoney($money); $jzsh = time() + 60 * 15; $order_no = date('YmdHis') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT); $lstime = time() - 600; $lsdingdan = Db::name('order')->where(['userid' => $callback_from['id'], "botid" => $this->bots['botid'], 'start' => 0])->where('create_time', '>=', $lstime)->count(); //var_dump(",,,,,,",$lsdingdan);exit(); if ($lsdingdan >= 5) { //不在支持新订单创建 // $this->telegram->answerCallback($callback_id, "如果您无法支付!请联系客服处理订单哟!", true); $url = "https://img.picui.cn/free/2024/07/10/668e1ed44a8cd.jpg"; $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); $msgg = "订单建立失败了!" . "\r\n" . "如果您无法支付!请联系客服哟!" . "\r\n" . "感谢您的支持"; $media = array( 'type' => 'photo', 'media' => $url, 'caption' => $msgg, "parse_mode" => 'HTML', ); $this->telegram->editMessageMedia($chat['id'], $message_id, NULL, json_encode($media), $button); // $this->telegram->editMessageCaption($chat['id'], $message_id, null, "订单建立失败了!"//."\r\n"."如果您无法支付!请联系客服哟!"."\r\n"."感谢您的支持"); // $this->telegram->editMessageReplyMarkup($chat['id'], $message_id, null, $button); // $this->telegram->editMessage($chat['id'], $message_id, "订单建立失败了!"."\r\n"."如果您无法支付!请联系客服哟!"."\r\n"."感谢您的支持", $button, 'HTML', true); } else { //查询订单 并要支付 更新统一的支付方式 $pricelist= $this->Customer->Get_shoujia($this->bots,$yue); $lirun = $pricelist['botlirun']; Db::name('order')->insert(['userid' => $callback_from['id'], 'money' => $money, 'paymoney' => $paymoney, 'username' => $usernamr, 'create_time' => time(), "trxadd" => $this->bots['trxadd'], "botid" => $this->bots['botid'], "nichen" => $nichengyi, "name" => "会员购买" . $usernamr, 'tancan' => $yue, 'start' => 0, 'order_no' => $order_no, 'end_time' => $jzsh, 'smessage_id' => $message_id, "mode" => "Daikaihuiyuan", "moth" => "huiyuangoumaai", 'lirun' => $lirun, 'slirun' => $pricelist['ptlirun']]); $user = Db::name('order')->where("order_no", $order_no)->find(); $xzssss = date("m-d H:i:s"); if ($user) { $msg = "订单号:{$user['order_no']} 商品名称:{$user['tancan']}个月Telegram Premium会员 开通用户:{$user['username']} 用户昵称:{$user['nichen']} 订单金额:{$user['paymoney']} USDT 当前时间:{$xzssss} 请选择支付方式:"; } if ($this->bots['botad'] == $callback_from['id']) { $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '👤管理员直接开通', 'callback_data' => 'payodderkkkssskkk admin ' . $order_no ) ), array( array( 'text' => '刷新', 'callback_data' => 'payodderkkkssskkk re ' . $order_no ), array( 'text' => '取消订单', 'callback_data' => 'checkodder ' . $order_no ) ), array( array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); } else { $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => 'USDT支付', 'callback_data' => 'payodderkkkssskkk usdt ' . $order_no ), array( 'text' => '余额支付', 'callback_data' => 'payodderkkkssskkk yue ' . $order_no ) ), array( array( 'text' => '刷新', 'callback_data' => 'payodderkkkssskkk re ' . $order_no ), array( 'text' => '取消订单', 'callback_data' => 'checkodder ' . $order_no ) ), array( array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); } $this->telegram->editMessageCaption($chat['id'], $message_id, null, $msg); $this->telegram->editMessageReplyMarkup($chat['id'], $message_id, null, $button); } } if ($tou == "close") { $this->telegram->deleteMessage($chat['id'], $message_id); return true; } if ($tou == "CUSTOMER_SERVICE") { $this->telegram->sendMessage($chat['id'], $this->bots['kefutelegram']); return true; } if ($tou == "CUSTOMER_SERVICE2") { $SERVICE2 = Db::name("conf")->where("key", 'syskefu')->value('value'); $this->telegram->sendMessage($chat['id'], $SERVICE2); return true; } if ($tou == "payodderkkkssskkk") { //'kgoumaisangeyuehunyu 3 '.$t1.' 0 ' .$usernamr $moth = $callbackExplode[1]; $order_no = $callbackExplode[2]; if ($moth == "yue") { $odder = Db::name('order')->where("order_no", $order_no)->find(); $user = $this->Member->where(["userid" => (int) $odder['userid'], "botid" => $this->bots['botid']])->find(); $xinmoney = $user['money'] - $odder['money']; if ($xinmoney >= 0) { if ($odder['moth'] == "huiyuangoumaai") { //会员手动确认 提交 $tmuid = Db::name("conf")->where("key", 'tmuid')->value('value'); $tmkey = Db::name("conf")->where("key", 'tmkey')->value('value'); $cycleMap = ['3' => '0', '6' => '1', '12' => '2']; $mappedValue = $cycleMap[$odder['tancan']] ?? '3'; $req = $this->Customer->ChangeMoney($odder['userid'], 'member', "-", $odder['money'], $odder['botid'], "消费" . $odder['username']); if ($req['code'] == true) { $reqx = $this->Customer->submitkt($tmuid, $tmkey,$this->bots['botid'],$order_no,$odder['money'], $odder['username'], $mappedValue, $this->bots['apiurl']); //var_dump($reqx); if ($reqx['code'] == 0) { Db::name('order')->where("order_no", $order_no)->update(['start' => 1]); $this->telegram->sendMessage($this->bots['botad'], $reqx['msg'] . "\r\n" . "单号:" . $order_no . "" . "\r\n" . "用户名:" . $odder['username'] . "" . "\r\n" . "开通时间:" . $odder['tancan'] . "" . "\r\n" . "消费金额:" . $odder['money'] . "" . "\r\n" . "处理方法:充值余额后手动提交给机器人代替客户开通"); //return true; $this->telegram->sendMessage($odder['userid'], "订单提交成功!请联系客服,尽快处理!单号:" . $order_no . ""); } else { $this->telegram->sendMessage($odder['userid'], $reqx['msg']); //return true; } } else { $this->telegram->sendMessage($this->bots['botad'], $req['msg']); // return true; } } if ($odder['moth'] == "pkaihuiy") { //防止多次点击 if(!cache::get($odder['moth'].$order_no)){ $tmuid = Db::name("conf")->where("key", 'tmuid')->value('value'); $tmkey = Db::name("conf")->where("key", 'tmkey')->value('value'); $cycleMap = ['3' => '0', '6' => '1', '12' => '2']; $mappedValue = $cycleMap[$odder['tancan']] ?? '3'; $req = $this->Customer->ChangeMoney($odder['userid'], 'member', "-", $odder['money'], $odder['botid'], "消费" . $odder['username']); cache::set($odder['moth'].$order_no,$odder['userid'],5); if ($req['code'] == true) { $dakai = json_decode($odder['username'], true); foreach ($dakai as $key => $value) { $reqx = $this->Customer->submitkt($tmuid, $tmkey,$this->bots['botid'],$order_no,$odder['danprice'], "@" . $value, $mappedValue, $this->bots['apiurl']); if ($reqx['code'] == 0) { $this->telegram->sendMessage($this->bots['botad'], $reqx['msg'] . "\r\n" . "单号:" . $order_no . "" . "\r\n" . "用户名:" . $odder['username'] . "" . "\r\n" . "开通时间:" . $odder['tancan'] . "" . "\r\n" . "消费金额:" . $odder['money'] . "" . "\r\n" . "处理方法:充值余额后手动提交给机器人代替客户开通"); //return true; $this->telegram->sendMessage($odder['userid'], "订单提交成功!请联系客服,尽快处理!单号:" . $order_no . ""); } else { $this->telegram->sendMessage($odder['userid'], $reqx['msg']); //return true; } } } else { $this->telegram->sendMessage($this->bots['botad'], $req['msg']); // return true; } }else{ $this->telegram->answerCallback($callback_id, "消息已处理", true); } } if(!empty($odder['smessage_id'])){ $this->telegram->deleteMessage($chat['id'], $odder['smessage_id']); } if(!empty($odder['message_id'])){ $this->telegram->deleteMessage($chat['id'], $odder['smessage_id']); } // Db::name('order')->where(['order_no' => $order_no])->update(['start' => 1, "remakess" => "余额支付"]); $this->telegram->deleteMessage($chat['id'], $message_id); } else { $msg = "请联系客服 索要地址 充值余额!" . "\r\n" . "您的ID:" . $callback_from['id'] . "" . "\r\n" . "把id 加速充值速度 或者发送充值 进行转账充值"; $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '关闭', 'callback_data' => 'close' ), array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); $this->telegram->answerCallback($callback_id, "余额不足以支持本次消费", true); $this->telegram->sendMessage($chat['id'], $msg, "", $button, 'HTML', true); } return true; } elseif ($moth == "usdt") { $odder = Db::name('order')->where("order_no", $order_no)->find(); $xzssss = date("m-d H:i:s"); $msg = "订单号:{$order_no} 商品名称:{$odder['tancan']}个月Telegram Premium会员 开通用户:{$odder['username']} 用户昵称:{$odder['nichen']} 订单金额:{$odder['paymoney']} USDT 当前时间:{$xzssss} 请选择支付方式:"; // $jzsj=$user[0]['username']+create_time $sysss = (int) $odder['end_time'] - time(); if ($sysss <= 0) { // 订单已超时 $this->telegram->answerCallback($callback_id, "订单已超时!请重新发起", true); $this->telegram->deleteMessage($chat['id'], $message_id); if (isset($odder['message_id'])) { $this->telegram->deleteMessage($chat['id'], $odder['message_id']); } } else { $order_deadline = $odder['end_time']; // 订单截止时间 $current_time = time(); // 当前时间 $remaining_time = $order_deadline - $current_time; // 剩余时间(单位:秒) // 将剩余时间转换为天、小时、分钟和秒 $days = floor($remaining_time / (60 * 60 * 24)); $hours = floor(($remaining_time % (60 * 60 * 24)) / (60 * 60)); $minutes = floor(($remaining_time % (60 * 60)) / 60); $seconds = $remaining_time % 60; $cchu = "剩余时间:{$hours}小时{$minutes}分钟{$seconds}秒"; } $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '截至时间:' . date("m-d H:i:s", $odder['end_time']), 'callback_data' => 'closeww' ) ), array( array( 'text' => $cchu, 'callback_data' => 'closeww' ) ), array( array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ), array( 'text' => '取消订单', 'callback_data' => 'checkodder ' . $order_no ) ) ) ) ); $this->telegram->editMessageCaption($chat['id'], $message_id, null, $msg); $this->telegram->editMessageReplyMarkup($chat['id'], $message_id, null, $button); //创建支付图片 $res = $this->Customer->CreateQRcode($odder['trxadd'], $odder['paymoney']); //$trxadd,$money //var_dump($res); // $this->telegram->sendMessage($chat['id'], json_encode($res)); $isid = $this->telegram->sendDocumentphoto($chat['id'], $res, "订单号:{$order_no} 商品名称:{$odder['tancan']}个月Telegram Premium会员 开通用户:{$odder['username']} 用户昵称:{$odder['nichen']} 支付方式:USDT-TRC20 过期时间:" . date("Y-m-d H:i:s", $odder['end_time']) . " 请使用支持USDT-TRC20的App扫码 或手动转账 下方地址和金额都支持点击复制 转账金额:{$odder['paymoney']} USDT 转账地址:{$odder['trxadd']} 🔴请务必按照上方【转账金额】支付,否则您错误支付的金额将无法找回!!!", $message_id); // $this->db->update('order',['message_id' => $isid],['order_no' => $order_no]); Db::name('order')->where("order_no", $order_no)->update(['message_id' => $isid]); } elseif ($moth == "re") { //$user= $this->db->select ('order',"*",['order_no' => $order_no]); $odder = Db::name('order')->where("order_no", $order_no)->find(); if ($odder['start'] == 0 and $odder['end_time'] >= time()) { $this->telegram->answerCallback($callback_id, "未支付 还在支付时间内 等待支付", true); } if ($odder['start'] == 1) { $this->telegram->answerCallback($callback_id, "订单已支付", true); $this->telegram->deleteMessage($chat['id'], $message_id); if (isset($odder['message_id'])) { $this->telegram->deleteMessage($chat['id'], $odder['message_id']); } } if ($odder['start'] == 0 and $odder['end_time'] <= time()) { $this->telegram->deleteMessage($chat['id'], $message_id); if (isset($odder['message_id'])) { $this->telegram->deleteMessage($chat['id'], $odder['message_id']); } $this->telegram->answerCallback($callback_id, "订单支付超时!", true); } }elseif ($moth == "payue") { // $user= $this->db->select ('order',"*",['order_no' => $order_no]); $odder = Db::name('order')->where("order_no", $order_no)->find(); $xzssss = date("m-d H:i:s"); $msg = "订单号:{$odder['order_no']} 商品名称:{$odder['name']} 订单金额:{$odder['paymoney']} USDT 当前时间:{$xzssss} 请选择支付方式:"; // $jzsj=$user[0]['username']+create_time $sysss = (int) $odder['end_time'] - time(); if ($sysss <= 0) { // 订单已超时 $this->telegram->answerCallback($callback_id, "订单已超时!请重新发起", true); $this->telegram->deleteMessage($chat['id'], $message_id); if (isset($odder['message_id'])) { $this->telegram->deleteMessage($chat['id'], $odder['message_id']); } } else { $order_deadline = $odder['end_time']; // 订单截止时间 $current_time = time(); // 当前时间 $remaining_time = $order_deadline - $current_time; // 剩余时间(单位:秒) // 将剩余时间转换为天、小时、分钟和秒 $days = floor($remaining_time / (60 * 60 * 24)); $hours = floor(($remaining_time % (60 * 60 * 24)) / (60 * 60)); $minutes = floor(($remaining_time % (60 * 60)) / 60); $seconds = $remaining_time % 60; $jizhisji = date("m-d H:i:s", $odder['end_time']); $cchu = "剩余时间:{$hours}小时{$minutes}分钟{$seconds}秒"; } $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '截至时间:' . $jizhisji, 'callback_data' => 'closeww' ) ), array( array( 'text' => $cchu, 'callback_data' => 'closeww' ) ), array( array( 'text' => '取消订单', 'callback_data' => 'checkodder ' . $order_no ) ), array( array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); //$this->telegram->editMessageCaption($chat['id'],$callback_id,null,$msg); $this->telegram->editMessage($chat['id'], $message_id, $msg, $button, 'HTML', true); $res = $this->Customer->CreateQRcode($odder['trxadd'], $odder['paymoney']); $isid = $this->telegram->sendDocumentphoto($chat['id'], $res, "订单号:{$order_no} 商品名称:{$odder['name']} 支付方式:USDT-TRC20 过期时间:{$jizhisji} 请使用支持USDT-TRC20的App扫码 或手动转账 下方地址和金额都支持点击复制 转账金额:{$odder['paymoney']} USDT 转账地址:{$odder['trxadd']} 🔴请务必按照上方【转账金额】支付,否则您错误支付的金额将无法找回!!!", $message_id); // $this->db->update('order',['message_id' => $isid],['order_no' => $order_no]); Db::name('order')->where("order_no", $order_no)->update(['message_id' => $isid]); }elseif($moth == "admin"){ $odder = Db::name('order')->where("order_no", $order_no)->find(); if ($this->bots['botad'] == $callback_from['id']) { Db::name('order')->where(['order_no' => $order_no])->update(['start' => 1, "remakess" => "管理员手动"]); if ($odder['moth'] == "huiyuangoumaai") { $tmuid = Db::name("conf")->where("key", 'tmuid')->value('value'); $tmkey = Db::name("conf")->where("key", 'tmkey')->value('value'); $cycleMap = ['3' => '0', '6' => '1', '12' => '2']; $mappedValue = $cycleMap[$odder['tancan']] ?? '3'; $reqx = $this->Customer->submitkt($tmuid, $tmkey,$this->bots['botid'],$order_no,$odder['money'], $odder['username'], $mappedValue, $this->bots['apiurl']); if ($reqx['code'] == 0) { Db::name('order')->where("order_no", $order_no)->update(['start' => 1]); $this->telegram->sendMessage($this->bots['botad'], $reqx['msg'] . "\r\n" . "单号:" . $order_no . "" . "\r\n" . "用户名:" . $odder['username'] . "" . "\r\n" . "开通时间:" . $odder['tancan'] . "" . "\r\n" . "消费金额:" . $odder['money'] . "" . "\r\n" . "处理方法:充值余额后手动提交给机器人代替客户开通"); //return true; $this->telegram->sendMessage($odder['userid'], "订单提交成功!请联系客服,尽快处理!单号:" . $order_no . ""); } else { $this->telegram->sendMessage($odder['userid'], $reqx['msg']); //return true; } } if ($odder['moth'] == 'pkaihuiy') { if(!cache::get($odder['moth'].$order_no)){ $tmuid = Db::name("conf")->where("key", 'tmuid')->value('value'); $tmkey = Db::name("conf")->where("key", 'tmkey')->value('value'); $cycleMap = ['3' => '0', '6' => '1', '12' => '2']; $mappedValue = $cycleMap[$odder['tancan']] ?? '3'; cache::set($odder['moth'].$order_no,$odder['userid'],5); $dakai = json_decode($odder['username'], true); foreach ($dakai as $key => $value) { $reqx = $this->Customer->submitkt($tmuid, $tmkey,$this->bots['botid'],$order_no,$odder['danprice'], "@" . $value, $mappedValue, $this->bots['apiurl']); if ($reqx['code'] == 0) { $this->telegram->sendMessage($this->bots['botad'], $reqx['msg'] . "\r\n" . "单号:" . $order_no . "" . "\r\n" . "用户名:" . $odder['username'] . "" . "\r\n" . "开通时间:" . $odder['tancan'] . "" . "\r\n" . "消费金额:" . $odder['money'] . "" . "\r\n" . "处理方法:充值余额后手动提交给机器人代替客户开通"); //return true; $this->telegram->sendMessage($odder['userid'], "订单提交成功!请联系客服,尽快处理!单号:" . $order_no . ""); } else { $this->telegram->sendMessage($odder['userid'], $reqx['msg']); //return true; } } }else{ $this->telegram->answerCallback($callback_id, "消息已处理", true); } } $this->telegram->deleteMessage($chat['id'], $message_id); $this->telegram->answerCallback($callback_id, "已经提交了", true); } else { $this->telegram->answerCallback($callback_id, "没你啥事儿啊", true); // return true; } //如果余额 够 直接 // $user= $this->db->select('user_money',"*",['userid' =>$odder['userid']]); return true; } } if ($tou == "otherpay") { $order_no = $callbackExplode[1]; if ($this->bots['yzfpay'] != 1) { $this->telegram->answerCallback($callback_id, "支付渠道已关闭", true); return true; } $user = Db::name('order')->where("order_no", $order_no)->find(); $s = ['3' => 1, '6' => 2, '12' => 3]; $yzfkey = 'taocan' . $s[$user['tancan']] . "_r"; //123 对应 3612 $yzfprice = isset($this->bots[$yzfkey]) ? $this->bots[$yzfkey] : 500; if ($yzfprice <= 0) { $this->telegram->answerCallback($callback_id, "渠道 套餐价格 未配置", true); return true; } if (empty($this->bots['yzf_gateway'])) { $this->telegram->answerCallback($callback_id, "网关未配置", true); return true; } if (empty($this->bots['yzf_uid'])) { $this->telegram->answerCallback($callback_id, "支付uid未配置", true); return true; } if (empty($this->bots['yzf_key'])) { $this->telegram->answerCallback($callback_id, "支付key未配置", true); return true; } Db::name('order')->where("order_no", $order_no)->update(['rmbprice' => $yzfprice, 'uid' => $this->bots['yzf_uid'], "key" => $this->bots['yzf_key'], 'yzf_gateway' => $this->bots['yzf_gateway']]); $payurl = 'http://' . env('proxyDomain', 'false') . '/customer/Bapi/other_pzy?order_no=' . $order_no; $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '(¥' . $yzfprice . ')支付宝', 'url' => $payurl . '&type=alipay' ) ), array( array( 'text' => '(¥' . $yzfprice . ')微信支付', 'url' => $payurl . '&type=wxpay' ) ), array( array( 'text' => '(¥' . $yzfprice . ')QQ钱包', 'url' => $payurl . '&type=qqpay' ) ), array( array( 'text' => '刷新', 'callback_data' => 'payodderkkkssskkk re ' . $order_no ), array( 'text' => '取消订单', 'callback_data' => 'checkodder ' . $order_no ) ), array( array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); $this->telegram->editMessageReplyMarkup($chat['id'], $message_id, null, $button); $this->telegram->answerCallback($callback_id, "请选择适合您的支付", true); } if ($tou == "otherzyf") { $type = $callbackExplode[1]; $money = $callbackExplode[2]; $order_no = $callbackExplode[3]; $this->telegram->answerCallback($callback_id, $type . " " . $money, true); } if ($tou == "changetrxadd") { $this->telegram->answerCallback($callback_id, "請直接输入trc20_usdt地址,即可替换之前付款地址", true); } if ($tou == "checkodder") { $order_no = $callbackExplode[1]; $odder = Db::name('order')->where("order_no", $order_no)->find(); Db::name('order')->where("order_no", $order_no)->delete(); // $this->db->delete('user_odder',['order_no' =>$order_no]); $this->telegram->deleteMessage($chat['id'], $message_id); if (isset($odder['message_id'])) { $this->telegram->deleteMessage($chat['id'], $odder['message_id']); } return true; } if ($tou == "chakan") { $type = $callbackExplode[1]; if ($type == "yaoqing") { $msg = "您的邀请地址:https://t.me/" . $this->bots['botuser'] . '?start=user_' . $callback_from['id'] . ""; $this->telegram->sendMessage($chat['id'], $msg); $this->telegram->sendPhoto($chat['id'], "https://www.freeimg.cn/i/2023/11/20/655b0966d829a.jpg"); } if ($type == "daili") { $msg = "您的代理地址:https://t.me/" . $this->bots['botuser'] . '?start=puser_' . $callback_from['id'] . "" . "您邀请的下级成为代理 您可以获得20u的直推奖励,成功推荐2名代理。您自动升级成为合伙人。从第三名代理开始您将获得20+40的直推和建单奖励 共60 u 详情 请联系客服获取相关机制!"; $this->telegram->sendMessage($chat['id'], $msg); } if ($type == "wodeyaoqing") { //查询下级 1-10 支持下一页 $yaoqinglist = Db::name('daikaihuiyuan_user_money')->where(["botid" => (int) $this->bots['botid'], 'invite' => $callback_from['id']])->order("_id desc")->page(1, 10)->select(); $gong = Db::name('daikaihuiyuan_user_money')->where(["botid" => (int) $this->bots['botid'], 'invite' => $callback_from['id']])->count(); $msq = "我的下级" . "\r\n" . "总计邀请" . $gong . "人" . "\r\n"; foreach ($yaoqinglist as $key => $value) { // code... $nickname = isset($value['nickname']) ? $value['nickname'] : ""; if (empty($nickname)) { $msq .= '' . $value['userid'] . "" . "\r\n"; } else { $msq .= '' . $value['userid'] . "==" . $nickname . '' . "\r\n"; } } //编辑按钮 $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '下一页', 'callback_data' => 'wodeyaoqingxiaycc 1' ), array( 'text' => '上一页', 'callback_data' => 'wodeyaoqingxiaycc 2' ) ), array( array( 'text' => '关闭', 'callback_data' => 'close' ) ) ) ) ); $this->telegram->editMessage($chat['id'], $message_id, $msq, $button, 'HTML', true); } $this->telegram->answerCallback($callback_id); return true; } if ($tou == "yindan") { $type = $callbackExplode[1]; //huiyuan kami nengliang if ($type == "huiyuan") { $ruhao = isset($userinfo['tghao']) ? $userinfo['tghao'] : $this->bots['kefutelegram']; $ruhao = str_replace('_', '\_', $ruhao); $this->telegram->sendMessage($chat['id'], "请发送你需要开通/续费会员的Telegram用户名: 1️⃣@开头,如 @{$ruhao} 2️⃣http开头,如 https://t.me/{$ruhao} 批量下单,可一次发送多个用户名,每行一个,或者 以 空格 逗号 间隔: 🔔例如: @用户名1 @用户名2 🔔或 @用户名1 @用户名2", "", null, 'Markdown', true); } $this->telegram->answerCallback($callback_id); return true; } if ($tou == "pkguehunyu") { $money = $callbackExplode[2] * 1; $plorder = $callbackExplode[4]; //缓存订单号 $yue = $callbackExplode[1]; $usernames = cache::get($this->bots['botid'] . $plorder); if (!empty($usernames)) { $kkmsg = ""; $knomsg = ""; $zmoney = 0; foreach ($usernames as $key => $value) { // code... if (1 == 1) { $kkmsg .= "@" . $value . "" . "\r\n"; } else { unset($usernames[$key]); $knomsg .= "@" . $value . "" . "\r\n"; } } $zmoney = count($usernames) * $money; $msg = "可开通用户名:" . "\r\n" . $kkmsg . "不可开通用户名:" . "\r\n" . $knomsg . "\r\n" . "本次开通需要花费:" . "\r\n" . "" . $zmoney . "U"; $paymoney = $this->paymoney($zmoney); $jzsh = time() + 60 * 15; $order_no = date('YmdHis') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT); $lstime = time() - 600; $lsdingdan = Db::name('order')->where(['userid' => $callback_from['id'], "botid" => $this->bots['botid'], 'start' => 0])->where('create_time', '>=', $lstime)->count(); if ($lsdingdan >= 5) { $url = "https://img.picui.cn/free/2024/07/10/668e1ed44a8cd.jpg"; $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); $msgg = "订单建立失败了!" . "\r\n" . "如果您无法支付!请联系客服哟!" . "\r\n" . "感谢您的支持"; $media = array( 'type' => 'photo', 'media' => $url, 'caption' => $msgg, "parse_mode" => 'HTML', ); $this->telegram->editMessageMedia($chat['id'], $message_id, NULL, json_encode($media), $button); } else { $pricelist= $this->Customer->Get_shoujia($this->bots,$yue); $lirun = $pricelist['botlirun']*count($usernames); $slirun= $pricelist['ptlirun']*count($usernames); Db::name('order')->insert(['userid' => $callback_from['id'], 'money' => $zmoney, 'paymoney' => $paymoney, 'username' => json_encode($usernames), 'create_time' => time(), "trxadd" => $this->bots['trxadd'], "botid" => $this->bots['botid'], "nichen" => "批量开通" . count($usernames) . "个会员", "name" => "批量购买会员" . count($usernames) . "个会员", 'tancan' => $yue, 'start' => 0, 'order_no' => $order_no, 'end_time' => $jzsh, 'smessage_id' => $message_id, "mode" => "Daikaihuiyuan", "moth" => "pkaihuiy", 'danprice' => $money, 'lirun' => $lirun, 'slirun' => $slirun]); if ($lsdingdan > 1) { //不在监听 减少资源浪费 } else { //添加到支付监听 $job = 'app\bapi\syservice\Getzhandam'; $queueName = 'zhandam'; $data = array("end_time" => time() + 60 * 15, "trxadd" => $this->bots['trxadd'], 'order_no' => $order_no); // Queue::push($job, $data, $queueName); } $user = Db::name('order')->where("order_no", $order_no)->find(); $xzssss = date("m-d H:i:s"); if ($user) { if ($this->bots['botad'] == $callback_from['id']) { $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => '👤管理员直接开通', 'callback_data' => 'payodderkkkssskkk admin ' . $order_no ) ), array( array( 'text' => '刷新', 'callback_data' => 'payodderkkkssskkk re ' . $order_no ), array( 'text' => '取消订单', 'callback_data' => 'checkodder ' . $order_no ) ), array( array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); } else { $button = json_encode( array( 'inline_keyboard' => array( array( array( 'text' => 'USDT支付', 'callback_data' => 'payodderkkkssskkk usdt ' . $order_no ), array( 'text' => '余额支付', 'callback_data' => 'payodderkkkssskkk yue ' . $order_no ) ), array( array( 'text' => '刷新', 'callback_data' => 'payodderkkkssskkk re ' . $order_no ), array( 'text' => '取消订单', 'callback_data' => 'checkodder ' . $order_no ) ), array( array( 'text' => '联系客服', 'callback_data' => 'CUSTOMER_SERVICE' ) ) ) ) ); } $msg = "订单号:{$user['order_no']} 商品名称:{$user['name']} 订单金额:{$user['paymoney']} USDT 当前时间:{$xzssss} 请选择支付方式:"; $this->telegram->editMessageCaption($chat['id'], $message_id, null, $msg); $this->telegram->editMessageReplyMarkup($chat['id'], $message_id, null, $button); } } } else { $this->telegram->sendMessage($chat['id'], "批量开通 处理超时 请 重新发起"); } } } } public function keepThreeFirstAndLast($string) { return substr($string, 0, 3) . '...' . substr($string, -3); } public function paymoney($money) { //获取位数 $weishu = isset($this->bots['wallet_price_digit']) ? (int) $this->bots['wallet_price_digit'] : 4; $chu = $this->multiplyByTen(1, $weishu); $beijia = 1 / $this->multiplyByTen(1, $weishu); if ($weishu <= 2) { $suiji = 9; } else { $suiji = 99; } $paymoney = $money + (mt_rand(1, $suiji) / $chu); $ok = Cache::get("chongzhijinedandizhi" . $this->bots['botid'] . $paymoney); if ($ok) { return $this->paymoney($money + $beijia); } else { Cache::set("chongzhijinedandizhi" . $this->bots['botid'] . $paymoney, $paymoney, 900); return $paymoney; } } public function multiplyByTen($number, $times) { // 计算结果 $result = $number; for ($i = 0; $i < $times; $i++) { $result *= 10; // 每次乘以 10 } return $result; } public function inline_query($query, $offset, $inline_id, $from) {} public function pd_reply_to_message($message, $message_id, $sender_chat, $chat, $date, $reply_to_message) {} public function new_member($new_member, $message_id, $from, $chat, $date) {} public function left_member($left_member, $message_id, $from, $chat, $date) {} //解析邀请进群 public function my_chat_member($chat, $from, $date, $old_chat_member, $new_chat_member) {} // 请求加入群聊 public function chat_join_request($chat, $from, $invite_link, $date) {} // 更新了群头像 new_chat_photo 头像数据 public function new_chat_photo($chat, $from, $new_chat_photo, $date) {} }