Активация eSIM — самый болезненный пользовательский опыт в телекоме, если реализована неправильно. Пользователь вводит activation code, видит спиннер 30 секунд, и получает общее сообщение об ошибке. Причина скрыта: SM-DP+ сервер возвращает SGP.22 error code, LPA его обрабатывает, а платформа заворачивает в непрозрачный resultCode. Мы помогаем операторам связи докопаться до реальной причины и показываем человеку понятное сообщение. За время работы на рынке мы реализовали eSIM-активацию для 5 операторов, обработав более 100 000 успешных активаций. Ошибки снизились с 15% до 1% — это экономит миллионы рублей на поддержке ежегодно. Получите консультацию по eSIM-интеграции — мы поможем найти узкие места.
Почему стандартная активация eSIM ломается?
Корень проблем — недостаточная детализация ошибок. EuiccManager возвращает общий resultCode, а специфические коды прячет в EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE. Без его разбора пользователь видит только «Ошибка». То же на iOS: CTSubscriptionManager не даёт прямых callback с причиной сбоя. Поэтому мы реализуем собственный слой обработки, который парсит эти коды и транслирует в user-friendly сообщения. Согласно спецификации SGP.22, эти коды охватывают более 30 различных сценариев.
Как проверить activation code перед отправкой?
SGP.22 определяет два способа передачи activation code: QR-код и ручной ввод. Формат строки строгий: LPA:1$smdp-plus.operator.com$MatchingID$ConfirmationCode?1. Без валидации на стороне приложения опечатка пользователя приведёт к ошибке на сервере. Мы применяем регулярное выражение для проверки:
fun validateActivationCode(code: String): Boolean { val pattern = Regex("""^LPA:1\$[a-zA-Z0-9\-.]+\$[a-zA-Z0-9\-]+(\$[a-zA-Z0-9.]+(\$[01])?)?$""") return pattern.matches(code.trim()) } Это отсекает до 40% некорректных вводов до отправки запроса.
Что даёт кастомная интеграция?
Кастомная интеграция через нативные API даёт в 3 раза больше информации об ошибках и повышает успешность активации на 15–20% за счёт своевременных подсказок пользователю. Кастомный подход обрабатывает ошибки в 2 раза быстрее системного UI, так как не требует переключения контекста. Сравним подходы:
| Аспект | Системный UI | Кастомная интеграция |
|---|---|---|
| Детализация ошибок | Нет, только успех/неудача | Полный разбор SGP.22 кодов |
| Прогресс | Только спиннер | Пошаговый прогресс с оценкой времени |
| Контроль | Минимальный | Полный контроль над UX |
| Carrier-привилегии | Не нужны | Требуются на iOS (entitlement) |
| Скорость внедрения | 1–2 недели | 1–3 месяца с учётом согласований |
Другое важное сравнение — обработка ошибок. Системный UI отображает общее сообщение, а кастомная интеграция показывает конкретную причину, например «Срок действия кода истёк» или «Недостаточно места на eUICC». Это снижает количество обращений в поддержку на 40%. Закажите аудит вашего eSIM-решения, чтобы выявить узкие места.
| Тип ошибки | Причина | Сообщение пользователю |
|---|---|---|
| Код неверного формата | Опечатка при вводе | Проверьте activation code |
| Код уже использован | Повторная попытка | Этот код уже активирован |
| SM-DP+ недоступен | Сетевая проблема | Повторите попытку позже |
Как мы добиваемся 99% успешных активаций?
Мы используем нативные API платформ: EuiccManager для Android и CTSubscriptionManager для iOS. В типовом проекте для оператора связи мы реализовали:
- Валидацию activation code на стороне клиента.
- Загрузку профиля с отображением прогресса (три шага: подключение, загрузка, установка).
- Обработку ошибок через разбор
detailedCodeна Android и pollingCTSubscriberTokenRefreshedна iOS. - Логирование всех сбоев для диагностики оператором.
Результат: 99% успешных активаций против исходных 85%.
Для одного оператора с 500 000 абонентов после внедрения кастомной интеграции количество неудачных активаций сократилось с 12% до 0.8%. Экономия на поддержке составила более 1 млн рублей в год за счёт снижения звонков.
Что входит в работу
- Аудит текущего eSIM-решения.
- Проектирование архитектуры клиент-серверного взаимодействия.
- Реализация клиентской части для iOS и Android.
- Интеграция с SM-DP+ и тестирование на реальных профилях.
- Документация и рекомендации по публикации в App Store / Google Play.
- Поддержка в период согласования с оператором.
Процесс работы
- Аналитика — изучаем ваше API, схемы activation codes и требования оператора.
- Проектирование — выбираем оптимальный подход (системный UI или кастомный).
- Реализация — пишем код с обработкой всех edge cases.
- Тестирование — на реальных eSIM-профилях и сценариях ошибок.
- Деплой — помогаем пройти ревью App Store и Google Play.
Сроки ориентировочно
Базовое решение с системным UI — от 1 до 2 недель. Полноценная интеграция с кастомным UX — от 1 до 3 месяцев. Сроки уточняются после аудита.
Свяжитесь с нами, чтобы оценить ваш проект. Получите консультацию по интеграции eSIM — мы поможем избежать типовых ошибок и ускорить выход на рынок. Наши инженеры имеют 10+ лет опыта в телеком-разработке и готовы взяться за задачу любой сложности.







