====== Техническое описание услуги «Подписка с вводом номера». Сотовый оператор “МТС” ======
===== 1. Общее =====
Логика активации услуги “Подписка с вводом номера” путем авторизации номера телефона по вводу уникального кода предназначена для тех случаев, когда по тем или иным причинам реализация другой логики невозможна.
===== 2. Терминология =====
**Подписка** — абонемент на использование услуги.
**Код активации подписки** — уникальный набор символов, высылаемый абоненту на мобильный телефон при заказе услуги «Подписка с вводом номера» для ее активации.
**Ребилл** — платеж за услугу «Подписка с вводом номера», взымаемый со счета мобильного телефона пользователя по истечении активного периода. Продолжительность активного периода определяет владелец сайта, предоставляющий услугу.
===== 3. Описание работы =====
- Перед тем, как перейти на страницу заказа услуги “Подписка с вводом номера”, пользователь получает полную информацию об услуге в виде оферты .
- После прочтения оферты((Необходимо получить однозначное согласие абонента с условиями оферты, добавив чекбокс «Я согласен с условиями услуги» в форме ввода номера или в форме ввода пароля.)), абонент должен с ней согласиться, ввести свой номер телефона в соответствующем поле и нажать “Продолжить”, перейдя на страницу “создания подписки” (шлюз сотового оператора) “МТС”.
- На странице “создания подписки” пользователь вводит капчу и ожидает смс сообщение с паролем.
- После активации услуги пользователь переадресовывается на сайт партнера.
- Абонент вводит полученный от нас по смс код или код и номер телефона, тем самым активируя услугу.
===== 4. Алгоритм реализации =====
- Определение, какому сотовому оператору принадлежит номер. Определение происходит на стороне партнера.
- В случае успеха необходимо выполнить GET - запрос вида «create». При этом к запросу «create» нужно добавить два дополнительных параметра:
* web_aware=1 - активирует вариант подписок с переходом на шлюз оператора;
* return_url - адрес вашего сайта, на который переходит абонент со шлюза оплаты сотового оператора после завершения операции.
**2.1 Создание подписки**
**2.1.1 URL**
Предоставляется в момент создания сервиса
**2.1.2 Характеристики**
^ Параметры ^ Тип ^ Описание ^
| command | text | Устанавливается параметр 'create' |
| web_aware | int | 1 — разрешить подписки через шлюз сотового оператора. |
| return_url | string | Скрипт, на который будет осуществлен возврат со шлюза оплаты |
| phone | varchar(16) | Номер абонента в международном формате (без + или 00) |
| ip | varchar(15) | IP-адрес абонента который ввёл номер (используется для защиты от фрода). |
| limit_ip | int | отличное от нуля — лимит активаций подписок с одного IP-адреса.отсутствует — по умолчанию 10 |
| limit_phone | int | отличное от нуля — лимит активных подписок для указанного номера телефона. отсутствует — по умолчанию 10 |
| sid | text | ID услуги (предоставляется отдельно) |
**2.2 Формат ответа**
Как правило, XML-ответ выглядит следующим образом.
0
code_created
123
**2.2.1 Возможные ответы системы**
Как правило, XML-ответ выглядит как следующим образом.
^ Тип ^ Статус ^ Описание ^ Пояснение ^
| OK | 0 | code_created | Пароль создан |
| error | 6 | too_much_subs_for_ip | Превышен лимит подписок с одного IP |
| error | 4 | too_much_subs_for_phone | Превышен лимит подписок с одного номера |
| error | 3 | phone_have_active_subs_already | На номере есть активная подписка |
| error | 2 | phone_blacklisted | Номер в черном списке |
| error | 1 | subs_not_supported_for_provider | Данный сотовый оператор не поддерживается |
3. В ответ на этот запрос, наш сервер возвращает временную ссылку на шлюз оплаты сгенерированную МТС(-ом) в параметре Поскольку данная ссылка содержит HTML сущности, перед перенаправлением ее необходимо декодировать функцией html_entity_decode().\\
4. Код доступа к вашему ресурсу мы генерируем на своей стороне по факту успешного перехода абонента со шлюза МТС на ваш return_url. Код действует только в период пока подписка активна. Если абонент отписался – код не должен быть активен.\\
===== 5. Переход на return_url =====
При переходе абонента на return_url вашего сайта, возможно два варианта «подписка создана успешно» и «ошибка при создании подписки» \\
**5.1 Подписка создана успешно**
При удачно созданной подписке абонент редиректится на return_url с дополнительными параметрами (см. таблицу)
^ Параметр ^ Описание ^
| phone | Номер абонента |
| subscription_id | ID подписки абонента |
| s_id | ID сервиса подписок |
| hash_sign | Результат работы функции: md5(':-:'.subscription_id.':-:'.s_id.':-:'.phone) |
| status | Данный параметр всегда равен 0 |
После чего мы отправляем абоненту код доступа, а также status=start и mts_subs_code=1234 (код доступа сгенерированный нашей системой) на Status URL. После получения этих данных на ваш Status URL вы предоставляете доступ к сайту по паре номер телефона+код доступа на странице указанной в return_url.
status=start может быть передан как в момент перехода на return url, так и немного позже, данное действие зависит от сотового оператора.
**5.2 Ошибка при создании подписки**
В данном случае, при редиректе на return_url передаются два дополнительных параметра: phone и status, где параметр status всегда равен 1, что означает:\\
**1 – неуспешная подписка**
===== 6. После активации подписки начинаются ежедневные ребиллы: =====
* Вызывается скрипт, прописанный в Result URL. На обработчик передаются все параметры описанные по адресу http://smscoin.com/info/smstransit-tech/ и параметр subscription_id. Обратите внимание на то, что параметр billing всегда равен МО ( billing = MO)
* Result URL ничего, кроме статуса 200 OK возвращать не должен. Любой текстовый ответ будет игнорироваться.
===== 7. Отмена подписки. =====
Пользователь может отказать от подписки путем звонка на номер *152*2# вызов бесплатный.
После отмены подписки на Status URL передается параметр status=stop, а также параметры subscription_id и subs_sid.
===== 8. Схема "Активации подписки MTC". =====
{{:ru:subs0:снимок_экрана_2013-11-07_в_12.11.58.png?200|Схема "Активации подписки MTC"}}