Zero-Tap для WhatsApp
Технология Zero-Tap в WhatsApp — автоматическая подстановка кода без ввода. Настройка приложения, отключение сервера, отправка OTP через API
Коротко: Zero-Tap — технология WhatsApp, при которой код аутентификации подставляется в приложение автоматически. Пользователю не нужно ничего вводить.
Кому подходит
- Роль: Клиент, Разработчик
- Уровень: Опытный
Что это
Обычно пользователь получает код в SMS или WhatsApp и вводит его вручную. Zero-Tap убирает этот шаг — код подставляется автоматически, как только приходит сообщение.
Технология работает только на Android-устройствах с установленным WhatsApp обычной версии (не Business).
Как это работает
Ваше мобильное приложение получает код от WhatsApp.
Код автоматически подставляется в нужное поле.
Пользователь не вводит код вручную — экономия времени и повышение конверсии.
Что нужно для подключения
| Элемент | Что это |
|---|---|
| Package Name | Имя пакета Android-приложения |
| Signature Hash | Хэш подписи приложения |
| Шаблон WhatsApp «Аутентификация» | Специальный тип шаблона с поддержкой Zero-Tap |
Zero-Tap используется для авторизационных сообщений — OTP-кодов и кодов подтверждения входа.
Как настроить
Используйте официальное демо-приложение:
- Android: репозиторий
WhatsApp-OTP-Sample-App/Android. - iOS: репозиторий
WhatsApp-OTP-Sample-App/iOS.
Package Name берётся из файла AndroidManifest.xml (атрибут package). Пример: com.whatsapp.otp.sample.app.
Signature Hash отображается на стартовом экране приложения под кнопкой Request OTP. Пример: K8a/AINXXXX.
Для работы приложения без сервера нужно убрать сетевые запросы.
Файл 1. app/src/main/java/com/whatsapp/otp/sample/app/otp/WhatsAppOtpIntentHandler.java
В методе sendOtp() замените:
whatsAppOtpHandler.sendOtpIntentToWhatsApp(context);
otpService.sendOtp(phoneNumber, onSuccessHandler, onFailureHandler);на:
whatsAppOtpHandler.sendOtpIntentToWhatsApp(context);
// Skip server call - user will send OTP manually
WA_LOGGER.info("OTP intent sent to WhatsApp. Waiting for user to send OTP manually.");
onSuccessHandler.run();Файл 2. app/src/main/java/com/whatsapp/otp/sample/app/otp/service/SampleServerOtpService.java
В методе validateOtp(...) замените блок с HTTP-запросом на:
executorServiceForNetworkRequest.submit(() -> {
WA_LOGGER.info("Validating OTP without server - always returning VALID");
onRequestCompletedHandler.accept(OtpServiceInterface.OtpStatus.VALID);
});Файл 3. Найдите строку:
public static final String SERVER_URL = "http://10.0.2.2:3000";Замените на:
public static final String SERVER_URL = "";- Откройте раздел Активы → Шаблоны WhatsApp.
- Нажмите Добавить шаблон WhatsApp → Общий.
- Укажите имя отправителя, название, язык.
- Выберите категорию Authentication.
- Добавьте кнопку типа Zero-Tap автозаполнение.
- Укажите Package Name и Signature Hash.
- Проставьте галочку согласия с WhatsApp Business Terms of Service.
- Сохраните и дождитесь одобрения.
URL: https://<host>/api/v1/messages
Метод: POST
Заголовки: Content-Type: application/json, Authorization: Bearer <your_API_token>
Пример тела запроса:
{
"contact": "<recipient_number>",
"channel": 4,
"payload": {
"type": "template",
"template": {
"namespace": "<namespace>",
"language": {
"policy": "deterministic",
"code": "en"
},
"name": "<name>",
"components": [
{
"type": "body",
"parameters": [
{ "type": "text", "text": "<otp_code>" }
]
},
{
"type": "button",
"sub_type": "url",
"index": 0,
"parameters": [
{ "type": "text", "text": "<otp_code>" }
]
}
]
}
},
"senderId": "<sender_number>",
"createRecipient": false
}Условия для работы
Перед тестированием убедитесь:
- На устройстве установлен WhatsApp (обычная версия, не Business).
- В WhatsApp выполнен вход с того номера, на который отправляется код.
- Номер в запросе совпадает с номером устройства.
Результат
Код подставляется автоматически. Пользователь экономит время, а вы повышаете конверсию.
Частые проблемы
Причина: Zero-Tap работает только с обычной версией WhatsApp.
Решение: удалите WhatsApp Business и установите обычную версию.
Причина: в шаблоне указан Package Name, отличающийся от того, что в приложении.
Решение: откройте AndroidManifest.xml, скопируйте точный package и обновите шаблон.
Причина: в шаблоне указан устаревший или неверный Signature Hash.
Решение: откройте демо-приложение и скопируйте значение под кнопкой Request OTP.
Причина: шаблон не прошёл проверку Meta.
Решение: проверьте содержимое и отправьте снова. Срок рассмотрения — до 24 часов.
Причина: переменные шаблона не заполнены.
Решение: заполните все переменные в запросе.
См. также
Нужна помощь?
- OTP-коды: support@otpcod.ru
- Multi API: support@multiapi.ru
- Мой диалог: support@mydialogi.ru