Виджет
Виджет WWL показывает клиенту зеленый баннер с промокодом, бонусами и кнопкой помощи/шаринга. Он рассчитан на встраивание в сторонний сайт, где доступно только подключение JavaScript.
Публичные файлы виджета:
- JS:
https://api.winwinland.ru/widget/winwin-banner.js - JSON endpoint:
https://api.winwinland.ru/widget/winwin-banner.php
Как работает авторизация
- Миниприложение или доверенный backend создает короткоживущий подписанный токен.
- Токен передается на страницу во fragment URL:
#wwl_widget_auth=.... - Виджет читает токен только из fragment, удаляет его из адресной строки и отправляет на сервер WWL.
- WWL проверяет подпись, срок жизни,
client_id, одноразовыйnonceи rate limit. - После проверки сервер возвращает данные баннера.
Во фронтенд не передается API secret. Параметр data-client-id публичный и нужен только для идентификации аккаунта.
Пример кода вставки
<div id="wwl-winwin-banner"></div>
<script src="https://api.winwinland.ru/widget/winwin-banner.js"
data-client-id="5227723"
data-target="#wwl-winwin-banner"
data-banner-text="{{first_name}} {{last_name}}, у вас есть промокод {{promocode}}. У вас есть {{bonuses}} баллов."
data-link-text="Делитесь вашим промокодом с друзьями и подписчиками."
data-tooltip-text="Делитесь вашим промокодом с друзьями и подписчиками. Когда они оформляют заказ с этим кодом им будет скидка, а вам начисляются баллы.\nЧтобы передать промокод, используйте кнопки ниже."
data-font-color="#14532d"
data-font-size="13px"
data-bg-color="#ecfdf5"
data-border-color="#86efac"></script>
Поддерживаемые параметры
data-client-id- публичный API client id аккаунта WWL.data-target- CSS selector контейнера, куда вставляется баннер.data-banner-text- текст баннера.data-link-text- кликабельный текст под баннером.data-tooltip-text- текст окна помощи.data-font-color,data-font-size,data-bg-color,data-border-color- оформление баннера.
Переменные шаблона
{{first_name}}- имя клиента из WWL.{{last_name}}- фамилия клиента из WWL.{{promocode}}- промокод.{{bonuses}}- доступные бонусы.{{bot_partner_code}}- партнерский код бота.{{tg_partner_link}}- готовая Telegram deeplink-ссылка.{{max_partner_link}}- готовая MAX deeplink-ссылка.
Что важно по безопасности
- Не передавайте raw
tg_id/max_idв URL. - Токен должен передаваться только во fragment URL, а не в query string.
- Токен одноразовый: повторное использование блокируется через
nonce.
Шаринг
Кнопки Telegram и MAX в модальном окне строятся сервером WWL из настроек аккаунта и данных лида. На стороне сайта не нужно вычислять deeplink-и ботов вручную.