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

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

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

Обновлено: 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

This can happen when you initiate the handshake (send the com.whatsapp.otp.OTP_REQUESTED intent) but the device is running a version of Android older than v19.
неправильный_хеш_подписи
Только эмулятор
Неверный хеш подписи

This can happen when you initiate the handshake (send the com.whatsapp.otp.OTP_REQUESTED intent) and our app receives an authentication template message that uses a one-tap autofill button, but the package name in the message does not produce the message’s signature hash.
отсутствует_рукопожатие_или_расстройство
Отсутствует рукопожатие / Порядок действий

Это может произойти, когда наше приложение получает сообщение с шаблоном аутентификации, содержащее кнопку автозаполнения в одно касание, но рукопожатие не было инициировано.
otp_request_expired
Запрос OTP истек

This can happen when an authentication template that uses a one-tap autofill button is delivered to the user but more than 10 minutes (or the number of minutes indicated in the template’s code_expiration_minutes property, if present) have passed since you initiated the handshake. In this situation, we display the copy code button instead.
whatsapp_message_notification_disabled
Только эмулятор
Уведомления о сообщениях отключены в настройках WhatsApp

This can happen when you initiate the handshake (send the com.whatsapp.otp.OTP_REQUESTED intent) but the user has disabled notifications in the WhatsApp app or WhatsApp Business app (within our app settings).
whatsapp_notification_disabled
Только эмулятор
Уведомления WA отключены на уровне устройства

This can happen when you initiate the handshake (send the com.whatsapp.otp.OTP_REQUESTED intent) but the user has disabled app notifications for our apps (device level settings).

Интеграция

Сигналы об ошибках передаются посредством широковещательного намерения, поэтому для прослушивания сигналов об ошибках интерфейс 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 ); // Обработка ошибок } }