SIMUB

API активаций SIMUB

Интегрируйте SMS- и временные почтовые активации SIMUB с описанием авторизации, статусов, ошибок и безопасными серверными примерами.

Авторизация и выбор маршрута

Каждый защищенный запрос использует API-ключ подтвержденной учетной записи SIMUB. Передавайте его только по HTTPS, храните в серверном менеджере секретов или переменной окружения и никогда не добавляйте в браузерный пакет, мобильное приложение, публичный репозиторий или снимок экрана для поддержки. Совместимый с SMSHub handler принимает параметр action, а маршруты SMS SIMUB указывают действие в пути. Выберите один интерфейс для каждой интеграции и разбирайте формат ответа, описанный именно для этого маршрута.

  • Используйте /stubs/handler_api.php для клиента формата SMSHub, который передает action, api_key и параметры выбранного действия.
  • Используйте /api/sms/{action}, если прямой маршрут SIMUB лучше подходит вашему серверному приложению.
  • Для временной почты предназначены отдельные маршруты /api/mail; идентификаторы SMS и почтовых активаций не взаимозаменяемы.

Сначала проверьте сервисы, страны, цены и баланс

Вызовите getBalance для проверки средств, getServices или getServicesList для получения актуальных кодов сервисов и getCountries для кодов поддерживаемых стран. Выберите getPrices, getPricesV2 или getPricesV3 в соответствии с форматом, который умеет обрабатывать интеграция. Каталоги, количество и цены отражают текущие предложения подключенных поставщиков: кэшируйте их ненадолго, при необходимости показывайте возвращенную цену пользователю и повторно проверяйте перед покупкой. Не составляйте код сервиса или страны самостоятельно из отображаемого названия.

Основной цикл SMS-активации

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

  • Выберите документированные сервис и страну, проверьте цену и наличие, затем один раз вызовите getNumber, getNumberV2 или getNumberV3.
  • Разберите ACCESS_NUMBER:ID:NUMBER или документированный JSON и свяжите ID активации с внутренним идентификатором запроса.
  • Опрашивайте getStatus с этим ID. STATUS_WAIT_CODE означает ожидание, а STATUS_OK:CODE содержит полученный код.
  • Вызывайте setStatus только для разрешенного перехода: 1 готов, 3 запросить еще SMS, 6 завершить или 8 отменить. Не используйте номер для другого сервиса.

Статусы, ошибки и неопределенный результат

Совместимые с SMSHub действия могут возвращать текстовые маркеры, а новые маршруты также используют JSON. BAD_KEY требует исправить или заменить ключ, а не повторять запрос. BAD_SERVICE означает неподдерживаемое действие или значение сервиса. NO_BALANCE требует пополнения, NO_NUMBERS сообщает об отсутствии подходящего предложения в данный момент, а BAD_STATUS — о недопустимом переходе состояния. Если getNumber завершился тайм-аутом, разрывом соединения или серверной ошибкой, сначала сопоставьте операцию с сохраненной активацией, историей или статусом и только потом покупайте снова; слепой повтор может создать второе бронирование.

Процесс временной почтовой активации

У временной почты отдельные маршруты и ответы JSON. Запросите getPriceRests, getPrices или getRests, чтобы узнать поддерживаемые сервисы, домены, цены и наличие. Вызовите getActivation с документированными сервисом и доменом, затем сохраните возвращенный mailId. Используйте getStatus для состояния и getCode для полученного кода. setStatus и requestRefund должны соответствовать текущему состоянию и опубликованным правилам: запрос возврата не означает, что любой случай будет одобрен. Временный адрес не является постоянным ящиком или надежным способом восстановления важной учетной записи.

Безопасные примеры без настоящих секретов

Значения ниже намеренно являются недействительными шаблонами. Заменяйте их только в защищенной серверной среде. В примерах curl параметры передаются отдельно и кодируются, а не соединяются вручную в строку URL.

  • Баланс: curl --get 'https://api.simub.com/stubs/handler_api.php' --data-urlencode 'api_key=YOUR_API_KEY' --data-urlencode 'action=getBalance'
  • Резервирование: curl --get 'https://api.simub.com/stubs/handler_api.php' --data-urlencode 'api_key=YOUR_API_KEY' --data-urlencode 'action=getNumber' --data-urlencode 'service=tg' --data-urlencode 'country=0'
  • Статус SMS: curl --get 'https://api.simub.com/stubs/handler_api.php' --data-urlencode 'api_key=YOUR_API_KEY' --data-urlencode 'action=getStatus' --data-urlencode 'id=ACTIVATION_ID'
  • Статус почты: curl --get 'https://simub.com/api/mail/getStatus' --data-urlencode 'api_key=YOUR_API_KEY' --data-urlencode 'id=MAIL_ACTIVATION_ID'

Надежность, безопасность и ответственное использование

Задайте конечные тайм-ауты подключения и ответа, применяйте ограниченную экспоненциальную задержку при опросе статуса и прекращайте его после конечного состояния. Скрывайте api_key, номера, почтовые адреса и полученные коды в журналах и трассировке. Проверяйте тип ответа, ограничивайте одновременные покупки и создавайте уведомления о повторяющихся ошибках авторизации или баланса. Используйте SIMUB только когда вы вправе создать или подтвердить целевую учетную запись и платформа разрешает такой процесс. Наличие у поставщиков, мобильные сети и фильтры платформ меняются, поэтому ни ответ API, ни прежняя статистика не гарантируют получение кода.

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

Где хранить API-ключ SIMUB?

Храните его в серверном менеджере секретов или защищенной переменной окружения. Ограничьте доступ, замените ключ после раскрытия, скрывайте его в журналах и никогда не передавайте ненадежному клиентскому коду.

Как часто вызывать getStatus?

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

Гарантирует ли резервирование номера получение SMS?

Нет. Резервирование подтверждает выделение номера, но не отправку или принятие сообщения целевой платформой. Получение зависит от внешних поставщиков, сетей и правил платформы.

Можно ли повторить getNumber после тайм-аута?

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