Сигналы ошибок | Документация для разработчиков
Сигналы ошибок
Обновлено: 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 ); // Обработка ошибок } }
Комментарии отсутствуют
Комментарии отсутствуют