Тестируем македонские (+389) коды регистрации до запуска

Телефонный код +389OTP Gateway от $0.20 за кодВыделенные номера: только США и КанадаID API: mk
Краткий ответ

OTP Gateway в OTP Route выдаёт одноразовый номер Северной Македонии (+389), чтобы ваша команда могла получить SMS с кодом подтверждения в личном кабинете или через API и подписанные вебхуки. Коды стоят от $0.20 за код, актуальную цену каждого сервиса возвращает API, а активация, по которой за 20 минут не пришло SMS, ничего не стоит.

В чек-листе запуска написано «проверить регистрации +389»: с чего начать QA?

Знакомая ситуация: продукт выходит на Западные Балканы, форма регистрации уже работает в десятке стран, и кому-то нужно доказать, что она принимает северомакедонские номера и что отправленное приложением SMS действительно доходит. Брать телефон у коллеги не масштабируется, а локальную SIM-карту неудобно держать внутри CI-раннера.

OTP Gateway снимает эту зависимость. Вы запрашиваете номер для верификации в Северной Македонии через API или кабинет, вводите его в собственный сценарий и собираете пришедший код. Каждый номер обслуживает одну верификацию, поэтому регрессионный набор может запрашивать новый номер +389 для тестирования при каждом запуске. Как команды встраивают это в процесс релиза, показывает обзор QA-тестирования.

Как записываются номера +389 и что должен принимать ваш валидатор?

Код страны Северной Македонии — +389, национальный префикс — 0. Мобильные номера локально записываются как 07X XXX XXX; в международном формате 0 исчезает, получается +389 7X XXX XXX с восьмизначным национальным номером. Храните формат E.164 (+3897…), а локальную запись считайте только форматом ввода.

Какие тест-кейсы стоит оставить в наборе:

  • Пользователь выбирает +389 и всё равно вводит 0: форма должна убрать его, а не отклонить ввод.
  • Вставленные номера с пробелами, косыми чертами и дефисами должны нормализоваться в одно хранимое значение.
  • Проверку диапазонов лучше доверить поддерживаемой библиотеке разбора телефонных номеров, а не жёстко прописанным префиксам: диапазоны операторов со временем меняются.

Почему кириллическим шаблонам SMS нужен отдельный тест?

Македонский — официальный язык по всей стране и пишется кириллицей; албанский тоже имеет официальный статус и широко распространён. Если ваше приложение отправляет код на македонском, кириллица требует кодировки UCS-2, из-за чего длина одного SMS-сегмента сокращается со 160 до 70 символов. Шаблон, который свободно помещается по-английски, может разбиться на несколько сегментов или обрезаться, если отправитель ограничивает длину.

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

Какие вызовы нужны, чтобы получить номер Северной Македонии программно?

Все поля описаны в документации для разработчиков; схема работы этого API SMS-верификации короткая. Авторизуйтесь Bearer-ключом с префиксом or_live_ на https://otproute.com/api/v1, затем:

  1. Загрузите список стран через GET /api/v1/countries; идентификатор Северной Македонии — mk.
  2. Запросите GET /api/v1/prices?country=mk&service=<id>, чтобы узнать актуальную цену и доступность.
  3. Создайте активацию через POST /api/v1/activations с телом вроде {"service": "viber", "country": "mk"}.
  4. Опрашивайте GET /api/v1/activations/{id} или ждите activation.sms_received на вебхуке.
  5. Отмените через POST /api/v1/activations/{id}/cancel, если тест завершился раньше.

Вебхук-запросы содержат заголовок X-OTPRoute-Signature: t=<unix>,v1=<hex>. Пересчитайте HMAC-SHA256 от "<t>.<raw body>" с секретом эндпоинта, сравните за постоянное время, отклоняйте устаревшие метки времени и привязывайте обработку к id активации, чтобы повторная доставка была безвредной. На аккаунт полагается до 10 ключей, 5 вебхук-эндпоинтов и 300 запросов в минуту.

Какие сервисы сейчас открыты на маршруте +389?

В Северной Македонии сейчас доступно более 900 сервисов в OTP Gateway. В актуальном срезе есть Viber, WhatsApp, Facebook, Instagram, Telegram, Google (Gmail & YouTube), TikTok, Microsoft & Outlook, Signal, LinkedIn, Uber и ChatGPT (OpenAI).

Не каждый сервис доступен в любой час — для SMS-ресурсов это нормально, и именно поэтому цены и доступность отдаёт API. Коллеги, которые работают без кода, могут пройти те же шаги в кабинете: создайте аккаунт, пополните баланс, выберите Северную Македонию и сервис — код появится на странице активации, как только придёт.

Код не пришёл: что делать?

Каждая активация длится 20 минут, и вы платите, только если SMS пришло. Отмените её или дайте окну закрыться без сообщения — вся сумма автоматически вернётся на кошелёк.

Прежде чем заказывать снова:

  • Дождитесь конца окна: медленный отправитель встречается куда чаще, чем потерянное сообщение.
  • Убедитесь, что сервис принимает виртуальные номера; некоторые отклоняют их по политике — именно для этого и существует возврат.
  • Повторите позже или через другой маршрут сервиса.
  • Делайте паузу между попытками, чтобы нестабильный тест не слал заказ за заказом на маршрут +389.

Как планировать запасные варианты между рынками, объясняет руководство по маршрутизации стран. Используйте номера только для своих продуктов и аккаунтов, соблюдайте условия каждого сервиса и помните, что действует Политика допустимого использования OTP Route.

Что с постоянным македонским номером, оплатой и песочницей?

OTP Route не предлагает самостоятельно оформляемый долгосрочный номер в Северной Македонии. Dedicated Numbers (выделенные номера) — продукт для США и Канады, продаётся мгновенно, от $1.95/month; для постоянной линии +389 напишите на [email protected], и команда сообщит, допускают ли это местные правила, не обещая наличия.

Оплата — по мере использования с предоплаченного кошелька в USD, который пополняется картой или USDT/USDC, без абонентской платы и с PDF-счётом за каждое пополнение. Тестовые аккаунты по запросу переводятся в песочницу, чтобы интеграции работали с имитированными номерами и кодами.

Частые вопросы

Можно ли проверить SMS регистрации моего приложения в Македонии без SIM-карты?

Да. Запросите номер OTP Gateway со страной mk, используйте его на своём экране регистрации и читайте сообщение в кабинете или из вебхука.

Сколько стоит код подтверждения на +389?

От $0.20 за код; точная сумма зависит от сервиса и показывается в кабинете или возвращается GET /api/v1/prices. Если окно в 20 минут закрылось без SMS, вы получаете всю сумму обратно.

Будут ли сообщения с кодами на северомакедонские номера на кириллице?

Это зависит от отправителя. Шаблон вашего приложения вы контролируете сами, а сторонние сервисы выбирают язык по настройкам аккаунта или устройства, поэтому разбирайте именно цифры.

Нужно ли хранить в базе ведущий 0 македонских мобильных номеров?

Лучше хранить E.164: +389 и восьмизначный национальный номер, без префиксного 0 и без пробелов.

Можно ли сохранить номер Северной Македонии для повторных входов?

Самостоятельно нельзя. Долгосрочные Dedicated Numbers есть только для США и Канады; для +389 напишите в поддержку — ответ зависит от местных правил.

Можно ли гонять CI для Северной Македонии, не тратя деньги?

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

Почему сервис может отклонить мой номер +389?

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

Названия сервисов являются товарными знаками их владельцев. OTP Route не связан с ними. Используйте номера законно, соблюдайте условия каждого сервиса и нашу Политику допустимого использования.

Направьте первый OTP за несколько минут

Создайте бесплатный аккаунт, пополните USD-кошелёк и закажите номер в панели или через API. Без абонентской платы.