Когда человек переходит по ссылке t.me/YourBot?start=user_id и нажимает Start, боту отправляется сообщение /start user_id. Чтобы реферальная ссылка была короче, ID пользователя можно, например, конвертировать из десятичной системы в 36-ичную.
<?php
// Получаем 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);
}