Реферальная система

Здравствуйте, подскажите пожалуйста как мажно настроить реферальную систему для веба, наверно прозвучит глупо но пытался забрать из path вбивая сылку+реферальный код но не получилось ), вопрос в том как сделать регистрацию пользователя по сылке

@leryq_it

@Monnom Здравствуйте. Спасибо за вопрос. Уточню детали с командой и вернусь к вам с ответом

@Monnom Реферальную систему можно сделать следующим образом:
Сущности (таблицы):

  • referral_code – будет хранить id, referral_code, owner (владелец кода. Связь с таблицей User 1 к 1), reward (размер вознаграждения для нового пользователя кредиты, монеты и тд), award (размер вознаграждения для владельца кода), expiration_date (при необходимости)
  • referral_clicks – логгирует использование реферальных кодов. id, referral_code (связь с таблицей referral_code 1 ко многим), user (1 к 1), created_at.

Endpoints:

  • /v2/register/ Стандартный эндпоинт регистрации. Расширяем и добавляем проверку для кода.

Логика:

  1. Создание реферального кода. Генерируйте короткие, нечитаемые, устойчивые к угадыванию коды (8–12 символов), например Ab3kd9XQ. Ассоциируйте код с пользователем (owner).
    Создаете ссылку с кодом в query. Например, https://example.com/?ref=Ab3kd9XQ
  2. Регистрация. Настраиваем глобальный триггер On App Launch, проверяем авторизацию. Если пользователь не авторизирован – перенаправляем на страницу регистрации/авторизации, сохранив реф. код из query (в глобальную переменную). Далее проводим стандартную регистрацию и передаем реф. код если был.
  3. Вознаграждение. Проверяем код на наличие в базе. Если код валидный – добавляем запись в таблицу referral_clicks. Затем проверяем вознаграждение (reward) в referral_code и добавляем на баланс новому пользователю. Аналогично с award для владельца кода, проверяем и добавляем на баланс.