Перейти к основному содержимому

Сигналы ошибок | Документация для разработчиков

Сигналы ошибок

Обновлено: 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 для обработки отладочных сигналов.
public class OtpErrorReceiver extends BroadcastReceiver { @Override public void onReceive ( Context context , Intent intent ) { WhatsAppOtpIncomingIntentHandler whatsAppOtpIncomingIntentHandler = new WhatsAppOtpIncomingIntentHandler (); whatsAppOtpIncomingIntentHandler . processOtpDebugSignals ( intent , // ваша функция для обработки сигнала ( debugSignal ) -> handleSignal ( debugSignal ), // ваша функция для обработки любой ошибки ( error , exception ) -> handleError ( error , exception )); } }
Класс приемника — без SDK
public class OtpErrorReceiver extends BroadcastReceiver { public static final String OTP_ERROR_KEY = "error" ; public static final String OTP_ERROR_MESSAGE_KEY = "error_message" ; @Override public void onReceive ( Context context , Intent intent ) { String otpErrorKey = intent . getStringExtra ( OTP_ERROR_KEY ); String otpErrorMessage = intent . getStringExtra ( OTP_ERROR_MESSAGE_KEY ); // Обработка ошибок } }