Сигналы ошибок | Документация для разработчиков
Сигналы ошибок
Обновлено: 6 февраля 2026 г
Предстоящее устаревание: начиная с 15 апреля 2026 года,
PendingIntentдля шаблонов аутентификации будет признан устаревшим. Если вы в настоящее время используете PendingIntent для инициирования установления соединения или проверки подлинности приложения, OTP Android SDK предпочтительным способом перехода является использованиеВ Android SDK OTP представлен упрощенный рабочий процесс для реализации шаблонов аутентификации в одно касание и без касаний. Ниже вы можете узнать, как его использовать.
В этом документе описываются сигналы ошибок, характерные только для Android, которые могут помочь в отладке шаблонов аутентификации с автозаполнением в одно касание и шаблонов аутентификации без касания.
Если ваше сообщение не пройдет проверку на соответствие требованиям, кнопка автозаполнения в одно касание будет заменена кнопкой копирования кода. Кроме того, могут существовать настройки устройства или клиента WhatsApp, которые блокируют уведомления о сообщениях. Для облегчения отладки наши приложения отображают некоторую информацию об ошибках через
com.whatsapp.OTP_ERROR . В таких ситуациях вы получите ключ ошибки и сообщение вместо одноразового пароля или кода подтверждения пользователя.Обратите внимание, что некоторые из этих сообщений об ошибках появятся только в том случае, если вы запускаете WhatsApp в эмуляторе Android.
| Ключ | Описание |
|---|---|
неоднозначный_пункт_доставкиТолько эмулятор |
Неясный адрес доставки
Для пакетов, указанных в этом шаблоне, имеется несколько активных запросов OTP, и мы не смогли определить, какому пакету следует доставить код.
шаблона, supported_apps инициировали процедуру установления соединения (отправили com.whatsapp.otp.OTP_REQUESTED ) в течение последних 10 минут. |
несовместимая_версия_операционной системы |
Несовместимая версия Android
Это может произойти, если вы инициируете рукопожатие (отправляете com.whatsapp.otp.OTP_REQUESTED ), но на устройстве установлена версия Android старше v19. |
неправильный_хеш_подписиТолько эмулятор |
Неверный хеш подписи
Это может произойти, когда вы инициируете рукопожатие (отправляете com.whatsapp.otp.OTP_REQUESTED ), и наше приложение получает сообщение с шаблоном аутентификации, использующее кнопку автозаполнения в одно касание, но имя пакета в сообщении не генерирует хэш подписи сообщения. |
отсутствует_рукопожатие_или_расстройство |
Отсутствует рукопожатие / Порядок действий
Это может произойти, когда наше приложение получает сообщение с шаблоном аутентификации, содержащее кнопку автозаполнения в одно касание, но рукопожатие не было инициировано. |
otp_request_expired |
Запрос OTP истек
Это может произойти, когда пользователю предоставляется шаблон аутентификации с кнопкой автозаполнения в одно касание, но с момента начала подтверждения прошло более 10 минут (или количество минут, указанное в code_expiration_minutes , если оно присутствует). В этой ситуации вместо этого отображается кнопка копирования кода. |
whatsapp_message_notification_disabledТолько эмулятор |
Уведомления о сообщениях отключены в настройках WhatsApp
Это может произойти, когда вы инициируете рукопожатие (отправляете com.whatsapp.otp.OTP_REQUESTED ), но пользователь отключил уведомления в приложении WhatsApp или WhatsApp Business (в настройках приложения). |
whatsapp_notification_disabledТолько эмулятор |
Уведомления WA отключены на уровне устройства
Это может произойти, когда вы инициируете рукопожатие (отправляете com.whatsapp.otp.OTP_REQUESTED ), но пользователь отключил уведомления для наших приложений (в настройках устройства). |
Интеграция
Сигналы об ошибках передаются посредством широковещательного намерения, поэтому
BroadcastReceiverинтерфейс для прослушивания сигналов об ошибкахВ файле manifest.xml
<receiver android:name=".app.otp.OtpErrorReceiver" android:enabled="true" android:exported="true" > <intent-filter> <action android:name="com.whatsapp.otp.OTP_ERROR"/> </intent-filter> </receiver>
Класс приемника — с использованием SDK (предпочтительно)
Реализуйте
метод onReceive и используйте WhatsAppOtpIncomingIntentHandler для обработки отладочных сигналов.publicclassOtpErrorReceiverextendsBroadcastReceiver{@Overridepublicvoid onReceive(Context context,Intent intent){WhatsAppOtpIncomingIntentHandler whatsAppOtpIncomingIntentHandler =newWhatsAppOtpIncomingIntentHandler();
whatsAppOtpIncomingIntentHandler.processOtpDebugSignals(
intent,// ваша функция для обработки сигнала(debugSignal)-> handleSignal(debugSignal),// ваша функция для обработки любой ошибки(error, exception)-> handleError(error, exception));}}Класс приемника — без SDK
publicclassOtpErrorReceiverextendsBroadcastReceiver{publicstaticfinalString OTP_ERROR_KEY ="error";publicstaticfinalString OTP_ERROR_MESSAGE_KEY ="error_message";@Overridepublicvoid onReceive(Context context,Intent intent){String otpErrorKey = intent.getStringExtra(OTP_ERROR_KEY);String otpErrorMessage = intent.getStringExtra(OTP_ERROR_MESSAGE_KEY);// Обработка ошибок}}
Комментарии отсутствуют
Комментарии отсутствуют