php telegram ref link

При старте Бота в telegram, добавляет информацию в БД

    $con3 = $db->prepare("INSERT INTO referal(user_id, link, count) VALUES (?,?,?)");
    $con3->execute([$chat_id, 'https://t.me/link?start=r_'.$chat_id, 0]);

То есть ссылка + чат айди являются реферальной ссылкой пользователя, которая выводится путем

    $con4 = $db->prepare("SELECT `link` FROM `referal` WHERE `user_id` = ?");
    $con4->execute([$chat_id]);
    $exists3 = $con4->fetch(PDO::FETCH_ASSOC);

    $ref_link = $exists3['link'];

Осталось последние, это сделать $db->query("UPDATE referal SET count = count +1 WHERE user_id = $chat_id");

Сделать чтобы в число рефералов прибавлялось +1 тому, по чьей ссылке активировали Бота

Попробовал сделать, что-то такое

// Получаем user_id из ID реферала
function parseRefLink($ref_link) {
  $ref_link = strtolower($ref_link);

  if (!preg_match('/^r_([0-9a-z]+)$/', $ref_link)) {
    return false;
  }

  $ref_link = substr($ref_link, 2);
  return intval(base_convert($ref_link, 36, 10));
}

// Получаем ID реферала из user_id
function getRefLink($tg_user_id) {
  return 'r_'.base_convert($tg_user_id, 10, 36);
}

Но не знаю, как прикрутить запрос БД и будет-ли работать то, что пытаюсь сделать я?


Ответы (0 шт):