Pull to refresh

Делаем SMS-сервис «на коленке»

Reading time 6 min
Views 8.8K
Привет!

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

Задача перед мини-стартапом стояла простая:
  • Создать прикольную штуку на «коленке» за минимум времени
  • Потратить на запуск меньше 1000 рублей (время не считается)
  • Собрать работающий монетизируемый сервис

UDP: в комментах ещё есть статистика во время хабраэффекта и феерический конец истории от агрегатора.

Итак, дано: компания людей, которая занимается софтом для телекомов. Перед Новым Годом у них копилось много позитивно-деструктивной энергии, которая обязательно сформировалась бы в «пасхальные яйца», если бы не идея сделать подарок детям. Идея простая — отправка SMS от Деда Мороза и других персонажей.

Почему так? Да потому что наши ребята уже пару раз прикололись с заменой отправителя. Ребенок руководителя группы, получивший письмо от самого Деда Мороза, был просто немеряно счастлив: «Пап, мам, мне Дед Мороз прислал электронное письмо! Вот смотрите!». Правда, потом с дотошностью следователя началось: «Пап, а откуда он узнал мой номер телефона?».

Как это работает для пользователя:

  1. Он выбирает героя (Дед Мороз, Снегурка и другие)
  2. Пишет сообщение от имени этого персонажа
  3. Вводит номер получателя
  4. Устанавливает время отправки сообщения
  5. Оплачивает 15 рублей с помощью своей SMS.

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

Интересно, что с началом бета-тестов внутри компании девушки попросили Снегурку и начали писать чуть ли не эротические SMS своим любимым — так мы узнали о ещё одной стороне функционала.

Тем не менее, основной фокус — это немного новогодней магии для ребёнка, лично которому написал Дед Мороз. Для нас эта мысль слегка абсурдна, но дети верят и просто дико радуются.

Как это реализовано технически

  • Хостинг с PHP + MySQL для поддержки сайта
  • HTTP доступ к SMS-шлюзу для отправки сообщений
  • Контракт с агрегатором для принятия платежей
Хостингом выбрали Мастерхост (не от безысходности, а потому что там уже был проект – то есть оплата составила всего 150 рублей).

Принцип

  1. Пользователь забивает данные в интерфейс на сайте.
  2. Информация сохраняется в базе данных в ожидании оплаты.
  3. Предлагается оплата SMS.
  4. Пользователь оплачивает.
  5. Агрегатор получает SMS от оператора мобильной связи и вызывает обработчик на нашем сайте, ответ обработчика возвращается абоненту в виде SMS.
  6. Периодически Cron запускает еще один скрипт для выборки из базы оплаченных заказов и обращается к SMS-шлюзу для отправки сообщения.
  7. На телефон абонента приходит поздравление.

Гейт


В качестве SMS-шлюза использовали infobip.com, но они работают только с юридическими лицами, более доступный вариант, о котором уже писали на Хабре — это littlesms.ru. Вот здесь в Q&A есть ещё варианты.

Чтобы получить доступ до гейта, надо просто списаться или созвониться со службой поддержки, озвучить количество SMS, которые вы планируете рассылать (от этого зависит цена на отсылку, чем больше пакет — тем ниже стоимость), предоставить паспортные данные (для физических лиц) и закинуть на счет некоторую сумму денег. После этого они дают API. Различные SMS шлюзы предоставляют разные способы подключения (SMPP, HTTP POST, HTTP GET), мы выбрали наиболее простой тип HTTP GET. Соответственно, запрос на отправку SMS в этом случае выглядит примерно так:

mysmsgate.com/SMSservice/SendSMS.aspx?user=xxx&password=xxxx&sender=xxx&SMSText=messagetext&phone=79101234567


SMS-шлюз возвращает один из кодов, по которому можно определить успешность или неуспешность выполнения запроса.

Сразу договорились о выделении красивого префикса moroz и доступе к шлюзу с постоплатой по факту. Просто созвонились по Skype со службами поддержки и обрисовали идею сервиса. Денежные расходы на эту операцию — 0 руб.

Агрегатор


Агрегатор нужен исключительно для монетизации ресурса, то есть технически всё работает и без него. Но мы живем в реальном мире, и эта штука нужна для полноты конструктора.

В принципе можно использовать множество различных схем получения денег (Яндекс-деньги, WebMoney, QIWI и т.д.), но остановились на наиболее простой — платные SMS. Это способ микроплатежей, когда оператор забирает основной профит, а вы получаете остатки от оплаты SMS.

Сервис работает с А1 (потому что можно быстро подписать), но можно использовать и другие компании. Все они предоставляют похожие базовые интерфейсы и отличаются только количеством охваченных стран, особенностями личного кабинета и процентом отчислений партнерам.

Существуют агрегаторы первого уровня, которые имеют подключение непосредственно к SMS центрам операторов и субагрегаторы, которые занимаются перепродажей услуг агрегаторов первого уровня.

Конечно предпочтительнее работать с агрегаторами первого уровня, хотя требования к партнерам у них обычно выше. Коллеги успели поработать с Russian Billing (уже нет на рынке), Plastic Media, i-Free и А1Агрегатор. Если интересует конкретный опыт работы с этими компаниями, пишите в личку Antonsub, он может рассказать всю подноготную.

Для подключения услуг агрегатора необходимо списаться со службой поддержки и объяснить ваши запросы. В простейшем случае (физлицо) для вас сразу же заведут аккаунт и предоставят доступ в личный кабинет, где вы уже сможете заводить проекты, выбирать префиксы, выполнять тестовые посылки SMS и просматривать статистику. По опыту, подключение сервиса к новому SMS агрегатору обычно занимает не больше 3-4 дней, включая написание скриптов-обработчиков.

Вот пример HTTP запроса, приходящего от агрегатора в случае отсылки абонентом платной SMS с вашим префиксом:

mysite.ru/handler.php?date=2008-03-28+17%3A13%3A33&msg=prefix+text&operator_id=120&country_id=45909&user_id=79099080375&smsid=5094&cost_rur=0.54&test=1&num=1121&retry=1&try=2&sign=ceec8c15aea1bbe12379f35ffeae38ae

prefix – префикс отправки, то есть идентификатор получателя (в нашем случае – moroz)
smsid – идентификатор сообщения в системе
cost_rur – сумма, которая зачисляется на счет партнера в рублях
test – необязательный параметр, приходит только при тестовой SMS.
num – короткий номер, на который абонент отправлял запрос
retry – параметр повтора SMS, если равен единице значит SMS повторная. При повторной SMS все другие параметры дублируют первую непрошедшую SMS.
try – Порядковый номер попытки отправки SMS сообщения через разные прокси сервера.
sign – хэш MD5 от остальных параметров
smsid – используется в ответе, обязательный для ответа параметр.

Пример ответа:
smsid: 1034
status: reply
Usluga oplachena.

Итого:

  1. Неделя по часу в день на реализацию сервиса (от основной то работы команду никто не освобождал, делалось в обед и с утра)
  2. 3 простых скрипта на PHP (один для обработки запросов от SMS-агрегатора, второй для обращения к SMS-шлюзу, третий для запуска по Cron)
  3. 150 руб. на регистрацию доменного имени

Результат — счастливая доча друга, получившая SMS аж от самого Деда Мороза

Почему эта штука работает на Новый Год, когда всё лежит


Обычно 31 декабря SMS идут хитрыми путями и могут приходить через час или через сутки.

Тут всё намного быстрее, и вот почему:
  • SMS сразу попадает в SMS-центр: исключается операция доставки сообщения с телефона отправителя на базовую станцию и далее к оператору.
  • Операторы выделяют SMS шлюзам определенную квоту в трафике, которая при обычных посылках абонент-абонент не задействуется.

Итог – первый кирпичик «SMS-лего». На него можно накрутить что угодно.

Как монетизируется


Сервис не рассчитан на получение сверхприбылей. Из 15 руб. затраченных пользователем примерно половина уходит оператору, еще 5% — SMS-агрегатору, т.е. на счет поступает около 6-7 руб., из которых оплачиваются услуги SMS-шлюза и хостинга.

Посмотреть и пощупать


Вот сам сервис: e-moroz.ru. Тут можно сделать бесплатный тест, отправив типовое поздравление на любой телефон от Деда Мороза и посмотреть, как это работает. На сайт, пожалуйста, не пеняйте – он такой вырвиглазный потому, что его рисовали дети, а верстали в пятницу вечером. Главное, он доносит, как это действует.

О коллегах


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

Автор сервиса Antonsub, который на пальцах разложил мне всё это, может рассказать про вышеописанные штуки в следующих топиках, если этот был вам интересен.

UPD: уговорил Антона поделиться статистикой по оплате и отправке. Вот она.

UPD 2: Фан закончился, пришел лесник и всех разогнал.
Tags:
Hubs:
+95
Comments 96
Comments Comments 96

Articles