Доделать Телеграм-Бота на php, сделать реферальную систему с ссылками

3 000 руб. за проект
18 ноября 2020, 12:40 • 4 отклика • 38 просмотров
В Телеграм боте @kd_hour_bot добавить кнопку в меню «получить часы», при нажатии выходят варианты «Поддержать проект» и «Пригласить друга-специалиста» и дальше будет появляться личная реферальная ссылка. При нажатии Поддержать проект будет текст


Пример, как выглядит код сейчас:

<?php
//171961446
$admin_id = 330924370;
$admins = [171961446, 330924370];
include("bd.php");
require("utils.php");
$kk = file_get_contents('php://input');
$output = json_decode($kk, TRUE);
$t = time();
if (isset($output['callback_query']['data'])) {
$id = $output['callback_query']['message']['chat']['id'];
$data = $output['callback_query']['data'];
} else {
if (!isset($output['message']['chat']['id'])) exit();
$id = $output['message']['chat']['id'];
$message = $output['message']['text'];
$message_id = $output['message']['message_id'];
}
$admin = 0;
if ($id < 0) exit();
$exists = (bool)mysqli_num_rows($mysqli->query("SELECT * FROM users WHERE id = '$id'"));
if (!$exists) {

$fn = $output['message']['from']['first_name'];
$username = $output['message']['from']['username'];
$ln = $output['message']['from']['last_name'];
$p = preg_replace('|[^0-9]*|', '', $message);

$q = "INSERT INTO users VALUES(
'$id',
'$username',
2,
'',
0,
''
)
";
$mysqli->query($q);
$text = 'Регистрация прошла успешно. Для использования бота - вам необходимо привязать телефон. Чтобы сделать это - нажми на кнопку ниже';
sendMessage($token, $id, $text,
createKeyboardMenu([
[
createKeyboardButton("Поделиться номером телефона", true)
]
]));
exit();
}

$result = $mysqli->query("SELECT * FROM users WHERE id = '$id' limit 1");
$row = mysqli_fetch_row($result);
$username = $row[1];
$score = $row[2];
$phone = $row[3];
$isBanned = $row[4];
$lastMessage = $row[5];
if($isBanned)
exit();
$username = $output['message']['from']['username'];
if(in_array($id, $admins))
$admin = 1;
if ($username != $row[1]) {
$mysqli->query("update users set username = '$username' where id = $id");
}
if (!$phone) {
if ($output['message']['contact']['user_id'] != $id) {
sendMessage($token, $id, "Для использования бота необходимо указать номер телефона", createKeyboardMenu([
[
createKeyboardButton("Поделиться номером телефона", true)
]
]));
exit();
} else {
$phone = $output['message']['contact']['phone_number'];
if($phone[0] == '+')
$phone = substr($phone, 1, strlen($phone) - 1);
$mysqli->query("update users set phone = '$phone' where id = $id");
sendMessageMain($token, $id, "Добро пожаловать");
exit();
}
}
if ($data) {
$callback_query_id = $output['callback_query']['id'];
$username = $output['callback_query']['from']['first_name'];
$message_id = $output['callback_query']['message']['message_id'];
if ($data == "exit") {
deleteMessage($token, $id, $message_id);
sendMessageMain($token, $id, "Главное меню");
setLastMessage($mysqli, $id, "");
} else if ($data == "getUser") {
$text = "Введи юзернейм / телефон / ID пользователя";
$arr[] = [createCallbackData("Назад", "exit")];
sendMessage($token, $id, $text, createReplyMarkup($arr));
setLastMessage($mysqli, $id, "getUser");
} else if (stristr($data, "ban.")) {
deleteMessage($token, $id, $message_id);
$user_id = explode('.', $data)[1];
$banned = mysqli_fetch_row($mysqli->query("select isBanned from users where id = '$user_id'"))[0];
answerCallbackQuery($token, $callback_query_id, "Пользователь " . ($banned ? "Разбанен" : "Забанен"));
$banned = $banned ? 0 : 1;
$mysqli->query("update users set isBanned = $banned where id = $user_id");
} else if ($data == 'Distribution') {

Отзывы
Большое спасибо, работа превзошла мои ожидания, 5+. Надеюсь на дальнейшее сотрудничество, с удовольствием ещё обращусь
3 года назад