MTX Connect — виртуальный оператор сотовой связи, предоставляющий доступ в Интернет на территории Европы, использующий инфраструктуру других мобильных операторов, но имеющий собственный персонал, биллинг, клиентскую поддержку для предоставления мобильного Интернета.
- MTX обеспечивает фиксированную цену на мобильный Интернет в любой стране Европы. Отсутствие роуминга по странам позволяет сэкономить 5–10€ за 100 Мб трафика по данным на апрель 2017 года.
- SIM-карта MTX Connect может использоваться на любом 3G- и 4G-совместимом мобильном устройстве: планшете, смартфоне, 3G-модеме. SIM-карта присылается сразу в формате «три в одном»: mini, micro и nano в одной упаковке.
- Приобретать в каждой стране SIM-карту местного мобильного оператора, во-первых, не всегда выгодно из-за тарифов с предоплатой, во-вторых, занимает время, особенно если путешествие пользователя пролегает через несколько стран, неудобно каждый раз искать салон сотовой связи. Использование MTX ликвидирует эти проблемы.
Изначально управление услугами предоставления доступа в Интернет производилось только через личный кабинет пользователя. Основные функции, доступные в личном кабинете, следующие:
- активация SIM-карт MTX Connect;
- пополнение баланса;
- смена тарифного плана.
Личный кабинет пользователя является фронтендом к системе биллинга CDRator.
На определенном этапе развития проекта заказчику потребовалась разработка API серверной части MTX Connect и создание мобильных приложений для Android и iOS.
Цели создания back-end API:
- разработка и расширение функциональности серверной части MTX;
- интеграция MTX со сторонними сервисами;
- предоставление возможности создания front-end систем MTX.
Назначение мобильных приложений:
- упрощение взаимодействия пользователя с системой MTX;
- сбор статистической информации о пользователях системы MTX.
Первый этап: разработка ТЗ и проектирование API
В техзадании были спроектированы и описаны API, архитектура взаимодействия мобильных приложений c сервером MTX и механизм взаимодействия сервера MTX с системой биллинга CDRator:
- автоматическая аутентификация клиента в сети по внутренним данным сотовой сети;
- восстановление пароля;
- активация SIM-карты;
- хранение данных об используемых клиентом SIM-картах в биллинге;
- зачисление денег на счет клиента через платежные карты или PayPal;
- получение текущего состояния баланса;
- просмотр истории списаний и пополнений баланса;
- чат со службой поддержки при наличии сети MTXC (on-net), при ее отсутствии (off-net) и при отрицательном балансе;
- многоязыковая поддержка: тексты, национальные символы, денежные знаки;
- уведомления о состоянии баланса и использовании трафика даже при отрицательном балансе;
- запись статистических данных о клиенте;
- активация услуг (тарифного плана);
- получение информации об использовании трафика;
- интеграция с партнерскими программами: Lufthansa Miles&More и т.п.
В ходе дальнейшей разработки API продолжал развиваться и видоизменяться.
Второй этап: разработка мобильных приложений для iOS и Android
Приложения взаимодействуют с сервером MTX через REST по TLS, а тот, в свою очередь, с биллингом через CDRator API. Обмен данными между бэкендом и приложениями идет путем вызова высокоуровневых методов. Вся сложная логика (активация карты, активация пакетов услуг, оплата) реализована на стороне back-end.
Когда пользователь входит в приложение на устройстве с SIM-картой MTX, бэкенд определяет по IP-адресу, является ли источник запроса on-net или off-net. Если пользователь on-net, то приложение может сделать автологин по ICCID/ip и не спрашивать имя пользователя и пароль. При статусе off-net используется вход через логин и пароль.
Для проведения платежей с помощью банковских карт используется PayZen SOAP API. Оплата производится через редирект 3-D Secure. Вся последовательность действий представлена на диаграмме.
- Запрос CCPayment.
- Вызов createWithThreeDS PayZen SOAP API.
- Возврат информации для совершения платежа, сохранение ее в custom attrubutes.
- Возвращение redirect_url.
- Открытие полученного url во встроенном браузере, обработка 3-D Secure во встроенном браузере.
- Перенаправление на final_url с результатами обработки 3-D Secure.
- Перехват вызова final_url, закрытие встроенного браузера, запрос HandleAcsResponseCardIdent.
- Вызов finalyzeWithThreeDS() SOAP API.
- Совершение платежа и возврат информации о результате.
- Возврат информации о результате, закрытие встроенного браузера, переход на экран информации о балансе.
Функции мобильного приложения
- Вход с помощью логина и пароля, а также возможность входа через аккаунт соцсетей.
- Регистрация новой SIM-карты.
- Автоматический вход клиента в сети по внутренним данным сотовой сети.
- Управление подписками на пакеты услуг.
- Управление уведомлениями о завершении срока действия пакета услуг.
- Получение истории платежных операций.
- Получение истории использования трафика.
- Восстановление пароля.
- Зачисление денег на счет.
- Передача статистической информации (гео-данные, Интернет-сессии, установленные приложения).
- Отправка сообщений в техническую поддержку.