Как я разработал сервис по аренде виртуальных номеров с оборотом 2.000.000 🍋 в месяц

Делюсь о процессе разработки, что было сделано и что можно было бы добавить.

<i>Статистика пополнений баланса</i>
Статистика пополнений баланса

Приветствую! Меня зовут Данила Справцев, я — веб-разработчик. Специализируюсь на разработке и сопровождении веб-сервисов, онлайн-платформ и интернет-магазинов.

Я уверен, каждый сталкивался с ситуацией, когда необходим дополнительный аккаунт в мессенджере / соц. сети / банке или любом другом сервисе, требующем второго номера, которого у Вас, к сожалению, нет. Год назад ко мне обратился клиент именно с таким запросом, только находясь по другую сторону баррикад.

Запрос от клиента

Клиент занимается сдачей в аренду виртуальных номеров и хочет:

  1. Автоматизировать процесс аренды номера пользователем с помощью Telegram-бота (Каталог, Личный кабинет, Пополнение баланса)
  2. Иметь возможность администрировать систему и процессы внутри нее (Панель администрирования)

Внутренняя кухня

Из чего состоит бизнес?

Как бы странно не показалось, но не из подсчета прибыли с продаж, а из администрирования 😁

Разумеется, рано или поздно Вы обуздаете процесс, наймете сотрудников и полностью делегируете этот вопрос.

<i>После делегирования вопросов администрирования</i>
После делегирования вопросов администрирования
  • Вы покупаете модем (о том, что это — ниже), допустим, на 32 слота
  • Вставляете в него 32 симкарты
  • Выбираете удобный для Вас канал продаж и формат (Сайт/Бот)
  • Предоставляете услуги аренды
  • Время от времени заменяете использованные симки на новые

Железки

Перед тем как мы начнем рассматривать веб-сервис, связывающий всё оборудование воедино и формирующий поле для бизнеса, пробежимся по технической составляющей, посмотрим из чего состоит проект и как все взаимосвязано.

GSM модем (Sim-банк)

Модем нужен для управления сим-картами и приему / передаче сигналов от сим / к сим до обрабатывающего устройства (компьютер, Raspberry PI)

Умеет он следующее:

  • Установка сим и поддержка двух форматов (полноразмерные / micro)
  • Функционирование (все, что умеет сим на Вашем телефоне) (sms/ussd/телефония)
  • Горячая замена (выдергиваем сим без выключения и заменяем другой)
<i>Фото: Aliexpress. Sim-банк на 32 слота. На фото можно увидеть, что в него вставлены "карточки" — это сим карты, в том формате, в котором они обычно продаются. (Пластиковая карточка, из которой можно выковырять сим-карту и использовать в телефоне)</i>
Фото: Aliexpress. Sim-банк на 32 слота. На фото можно увидеть, что в него вставлены "карточки" — это сим карты, в том формате, в котором они обычно продаются. (Пластиковая карточка, из которой можно выковырять сим-карту и использовать в телефоне)

SMS-сервер

В том случае, когда Вы используете стандартные модемы, которые можно приобрести в рознице, проще (и дешевле) выбрать готовое решение, которое будет поддерживать Ваш модем и не заострять на этом излишнего внимания. (что и было выбрано в этом случае)

Представляет из себя приложение/локальный сайт, которое устанавливается прямо на компьютер, стоящий рядом с модемом/модемами, подключенными по USB/Ethernet.

<i>Фото: Google. Панель управления SMS-сервером (пример готового решения)</i>
Фото: Google. Панель управления SMS-сервером (пример готового решения)

В собранном виде выглядит вот так:

<i>Фото: Google</i>
Фото: Google
<i>Схема работы</i>
Схема работы

Когда на сим-карту поступает смс, она передается модему, тот обрабатывает сигнал и отправляет ее sms-серверу на компьютере, сервер принимает сообщение и с помощью вебхука отправляет его на сайт, который смотрит кто сейчас арендует эту сим-карту и присылает арендатору сообщение в телеграм.

Webhook (вебхук) — это способ оповещения о произошедшем в системе событии с помощью вызовов по HTTP

<i>Осторожно, начинаю показывать лонгрид из скринов</i>
Осторожно, начинаю показывать лонгрид из скринов

Веб-сервис

Разобравшись во всех аспектах работы системы, перейдем наконец к самому веб-сервису, с задачей о разработке которого ко мне обратился клиент

Поскольку в качестве канала продаж был выбран Телеграм, сайт используется только для управления системой

В качестве демо-материалов, в дальнейшем я буду использовать скрины с тестовыми данными

Сим-карты

<i>Панель управления: страница сим-карт</i>
Панель управления: страница сим-карт

Как можно заметить, над таблицей есть кнопка «добавления SIM»
Дело в том, что процесс заведения сим в систему можно автоматизировать. Как только сим-карту вставляют в модем, она появляется в sms-сервере, а у sms-серверов есть API, позволяющее используя тот же вебхук или же вручную получить список сим, но клиент предпочел добавлять сим вручную

API (Application Programming Interface) — это набор способов и правил, по которым различные программы общаются между собой и обмениваются данными.

В таблице содержится информация о сим-картах, добавленных в систему, модеме и слоте (модема), в котором они находятся, а так же информация о текущем арендаторе

Фильтрация

Над таблицей находится блок полей для быстрого поиска необходимых номеров в системе, если убрать чекбокс «Строгого поиска», появится возможность искать по вхождению («8 999 999 99 99» можно будет найти по его части «999»)

Табличные кнопки

Процесс аренды полностью автоматизирован, но для полного контроля процесса так же дублируется возможность привязать / отвязать клиента вручную

Все «негативные» действия сопровождаются окном подтверждения, чтобы избежать случайных кликов

<i>Страница сим: модальное окно «выбора клиента» для сим</i>
Страница сим: модальное окно «выбора клиента» для сим
<i>Страница сим: модальное окно «выбора периода аренды» для сим</i>
Страница сим: модальное окно «выбора периода аренды» для сим

После того, как у номера появится арендатор, можно нажать на его имя и быстро получить необходимую информацию или же вовсе внести изменения

<i>Страница сим: модальное окно «просмотр и редактирование клиента» привязанного к сим</i>
Страница сим: модальное окно «просмотр и редактирование клиента» привязанного к сим

При добавлении / редактировании сим, администратор имеет возможность указать возможные периоды аренды номера

<i>Страница сим: модальное окно «добавления / редактирования» для сим</i>
Страница сим: модальное окно «добавления / редактирования» для сим

Помимо этого есть возможность дублировать сим, для быстрого открытия окна «Добавления сим» с заполненными полями (кроме номера)

Пользователи

<i>Страница пользователей</i>
Страница пользователей

У пользователей все немного поскромнее:

  • Блок с полями для фильтрации с возможностью поиска по вхождению ( «Альберт» — «Аль»)
  • Добавление пользователя
  • Редактирование пользователя
  • Изменение (пополнение / списание) баланса
  • Отправить сообщение в телеграм (при нажатии на ID телеграма)
  • Выдача административных прав
  • Удаление пользователя
<i>Модальное окно «редактирование пользователя». Идентичное тому, что было на странице сим-карт</i>
Модальное окно «редактирование пользователя». Идентичное тому, что было на странице сим-карт

Транзакции

<i>Страница транзакций</i>
Страница транзакций

На странице наблюдаем уже привычный блок с полями для фильтрации

Каждая денежная операция проводится транзакцией. В зависимости от типа транзакции (списание, пополнение), к ней добавляется дополнительная информация: объект транзакции (если покупка / продление номера), платежная система (если это пополнение баланса)

Так же, транзакции имеют статус, необходимо это в основном для пополнений и работает в два этапа: пользователь собирается пополнить баланс, создается неподтвержденная транзакция, а после успешной оплаты платежная система присылает подтверждение и транзакция переходит в статус «подтвержденной»


«Необходимо это в основном для пополнений»

Помимо пополнений, статусы транзакций могут использоваться для отложенного исполнения. Например, операторы формируют «пачку» транзакций, которые переходят в исполненные только спустя время (часы/день) (но тут в этом нет нужды)

В дальнейшем, баланс пользователей формируется из суммы транзакций в системе по каждому.

Рассылка

Модальное окно «отправки сообщений» и «проведения рассылки»
Модальное окно «отправки сообщений» и «проведения рассылки»

На фоне модального окна открыта страница пользователей, с которой можно его вызвать при нажатии на ID телеграм чата пользователя

Помимо индивидуальной отправки, можно запустить рассылку по всем пользователям. В этом случае, на каждого пользователя создается задача на отправку сообщения и начинается отправка в порядке очереди, с периодической задержкой, чтобы не нарушать лимиты телеграма

Клиенту не требовалось отдельной страницы для просмотра, планирования на определенное время / дату и редактирования рассылок, поэтому у нас просто отображается прогресс активной рассылки :)

<i>Все страницы: в меню отображается прогресс текущей рассылки</i>
Все страницы: в меню отображается прогресс текущей рассылки

Статистика

<i>Главная страница: статистика пополнений</i>
Главная страница: статистика пополнений

И наконец главная страница, на которой отображаются виджеты со статистикой пополнения баланса за три периода

Если бы я делал проект для себя, с большим удовольствием добавил бы более детальную статистику, но в данном случае, клиент сообщил, что этой информации для него достаточно

Видео: ChartJS Пример идеальной главной страницы для меня
<i>Фото: ChartJS Или хотя бы график в разрезе недели-месяца </i>
Фото: ChartJS Или хотя бы график в разрезе недели-месяца 

Поздравляю, мы закончили с администрированием. Откуда же идут деньги, как все это продается — об этом будет следующая, завершающая глава

<i>Как выглядит администратор со стороны</i>
Как выглядит администратор со стороны

Телеграм бот

Бот представляет из себя каталог и имеет следующую структуру:

  • Категория (страна, оператор)
  • Период аренды (от 4 часов — до 1 года)
  • Количество номеров к аренде (от 1 до макс. кол-ва в выбранной категории)
  • Подтверждение аренды
  • Получение арендованного номера(ов)

После аренды номера(ов), клиент может использовать его для получения и отправки (если выбранный номер это разрешает) сообщений

При приближении номера к концу аренды, за 3 дня, 24 часа и 2 часа до окончания, клиенту придет уведомление с предложением продлить номер

Каталог

Приобретение 2 виртуальных номеров одной страны 

Личный кабинет

Продления арендованного номера из личного кабинета 

Пополнение баланса

Пополнение баланса

Для удобства пополнения баланса, сервис интегрирован с несколькими платежными системами:

  • FreeKassa
  • QiWi
  • ЮМани
  • Cryptobot (Криптовалюты)

После подтверждения оплаты платежным сервисом, пользователю придет уведомление об успешном зачислении средств

Планы на будущее

До конца зимы уже запланировано следующее обновление, в котором каталог бота разделится на «долгосрочную и краткосрочную» аренду. У пользователей появится возможность арендовать номер для единоразового приема сообщения с определенного сервиса / ресурса. Например, для регистрации аккаунта на сомнительном сайте, чтобы избежать телефонного спама в будущем

Спасибо, что дочитали эту статью до конца, если не сложно, поделитесь, как Вам такой формат кейса? Было ли интересно или наскучило уже на середине?

Я вот честно запарился ее редактировать, а ведь здесь нету ни слова о бекенде ¯\_(ツ)_/¯

<i>Что Вы прочитали / Что можно было бы еще рассказать </i>
Что Вы прочитали / Что можно было бы еще рассказать 

Вас интересует разработка веб-сервиса («сайта») или интернет-магазина?

Напишите мне в телеграм и получите бесплатную консультацию по реализации Вашей идеи под ключ.

p.s. После публикации, некоторые некорректно поняли посыл статьи. Мы (наша студия) никак не связаны с этим бизнесом, не работали с ним и не занимались его продвижением. Мы специализируемся исключительно на веб-разработке. Как заказчик использует разработанный проект — дело его :)

4545
42 комментария

Насколько это законно? Как это регулируется законодательством?

4
Ответить

Насколько я знаю, подобное оборудование используют многие компании в личных целях (рассылка, звонки, спам (куда ж без него))
Точно так же они закупают сотни корпоративных сим-карт (и вряд ли часть из этих компаний раздает их сотрудникам)

Соответственно, купить и использовать такое оборудование — абсолютно законно, а вот дальше появляется НО:

Смотря для каких целей 😏

Например, если Вы планируете сдавать номера в аренду и кто-либо из арендаторов будет заниматься запрещенной на территории РФ деятельностью - могут возникнуть вопросы

В остальном примерно такая же логика, а так никак это не регулируется и вполне законно

https://www.9111.ru/questions/17302700/

2
Ответить

В договоре с оператором связи наверняка указано, что номер для личного использования, тут явное нарушение.
Вообще это мутные истории, где-то рядом ходят продавцы анонимных симок для темных дел.

Ответить

Вроде сдавать номера в аренду в таком виде - незаконно. Оператор или его агент может заключить договор, так чтобы можно было идентифицировать конечного пользователя. Но всем пофиг, по принципу "авось пронесет".

Ответить

Клиент взял номер на день. Зарегал на нее ватцап. Вернул. Взял эту симку второй клиент. Пытается зарегать ватцап, номер занят. Либо начинает работать через чужую учетку в том случае, если она не заблокирована ватцапам за спам от первого клиента, либо не может использовать купленный товар по назначению. Я правильно понял проблему ?

1
Ответить

Не совсем так.
На рынке существуют два типа сервисов аренды: краткосрочная и долгосрочная. Данный сервис работает по долгосрочному варианту, после завершения аренды клиентом номера, номер уходит в архив на несколько дней, в это время арендатор все еще может продлить его и использовать дальше, после архива номер буквально выбрасывается (физически) в корзину и заменяется другим в системе

Если бы была краткосрочная аренда, то был бы выбор сервисов, доступных для получения от них смс, после получения смс от сервиса, он помечается «просроченным» в системе и этот номер уже нельзя использовать конкретно для этого сервиса


В обоих случаях, если номер где-либо использовался, существует канал поддержки, где можно сделать возврат / замену


Вообще, для регистрации чего-либо для спама штучно скорее будут использовать краткосрочную аренду, долгосрочная же более подходящий вариант, когда нужно зарегистрировать что-нибудь (и даже несколько) и забронировать номер за собой

2
Ответить

Сервис крутой, но клиентские кейсы представляются где-то от сдержанного порицания до самых мрачных статей УК РФ

2
Ответить