Документация

Подключение мини-приложения VK

Гости заказывают внутри VK, а заказы приходят в вашу админку рядом с заказами с сайта.

  1. Создайте приложение

    В кабинете VK, тип Mini App.

  2. Свяжите с MeenuCMS

    Адрес — в VK, идентификатор и защищённый ключ — в админку.

  3. Проверьте заказ

    С телефона и компьютера, из аккаунта администратора приложения.

  4. Отправьте на модерацию

    В кабинете VK. По описанию VK это занимает минимум 3 дня.

Настройка делится на две части: приложение создаётся в кабинете VK, а его ключи вносятся в админку MeenuCMS. Отдельный сервер и отдельная сборка не нужны: мини-приложение входит в вашу установку.

Настройки из этой инструкции в админке видит только владелец. Кабинет VK со временем меняется, поэтому подписи в нём могут отличаться от приведённых здесь. Названия полей MeenuCMS указаны точно.

Что подготовить

Что нужно Зачем Обязательно
Работающий сайт на MeenuCMS с HTTPS VK открывает приложение с вашего адреса Да
Аккаунт VK Создание приложения и отправка на модерацию Да
Ключ SMS.ru или токен flashcall.ru Подтверждение номера для списания бонусов Нет, если бонусы не нужны
Платёжный аккаунт в настройках оплаты Онлайн-оплата заказа Нет, есть оплата при получении
Сообщество VK Уведомления сотрудникам и гостям Нет

В переменной PUBLIC_URL должен быть внешний адрес сайта с https:// и без / в конце, как его видят гости. От него зависит адрес приложения. После смены PUBLIC_URL сервер нужно перезапустить.

Шаг 1. Создайте приложение в VK

  1. Откройте форму создания приложения на портале для разработчиков VK.
  2. Выберите тип Mini App и заполните данные приложения.

В названии нельзя использовать слова «VK», «ВК» и «ВКонтакте» без отдельного соглашения с VK. Остальные требования приведены в правилах размещения мини-приложений.

Созданные приложения находятся в панели управления.

Шаг 2. Укажите адрес приложения

  1. В админке MeenuCMS откройте Настройки → Уведомления, карточку «Мини-приложение VK».
  2. В поле «Адрес приложения для кабинета VK» нажмите «Скопировать». Адрес выглядит так: https://ваш-сайт.ru/vk-app.
  3. В настройках приложения в VK укажите этот адрес для всех платформ.

Разрешать показ сайта внутри VK вручную не нужно: MeenuCMS делает это сам и только для адреса /vk-app. Callback API для мини-приложения тоже не нужен.

Шаг 3. Внесите ключи и включите приложение

  1. В настройках приложения в VK найдите раздел «Ключи доступа».
  2. Перенесите значения в карточку «Мини-приложение VK»:
    • «Идентификатор приложения»: только цифры;
    • «Защищённый ключ».
  3. Включите «Приложение включено» и сохраните настройки.

Сервисный ключ и идентификатор сообщества здесь не нужны.

Защищённый ключ хранится в зашифрованном виде. Ключ шифрования лежит в файле secrets.key или в переменной SECRETS_KEY. Храните его в резервной копии отдельно от дампа базы: без него защищённый ключ придётся вводить заново.

Шаг 4. Настройте подтверждение номера

Гость может передать номер из VK. При первой передаче он отмечает согласие на обработку данных, если его ещё нет. По номеру приложение находит аккаунт с адресами, историей заказов и балансом бонусов, код для этого не нужен. Код из SMS или звонок нужен только для списания бонусов и удаления аккаунта. После ввода кода подтверждение действует 24 часа.

В Настройки → Интеграции, в карточке «Вход гостей», включите хотя бы один способ:

  • «SMS-код» и «Ключ SMS.ru (API ID)»;
  • «Вход по звонку гостя» и «Токен flashcall.ru».

Если способов нет, заказы продолжат работать, но гость не сможет списать бонусы и удалить аккаунт в приложении. Удалить аккаунт сможете вы: Гости, карточка гостя, «Удалить аккаунт».

Войти по номеру из VK можно только с российским номером. Гость с другим номером или отказавшийся его передавать вводит номер вручную. Если способы подтверждения настроены, он может подтвердить номер и войти. Без этого заказ оформляется без аккаунта, и бонусы за него не начисляются.

Шаг 5. Решите, нужна ли онлайн-оплата

Оплата при получении работает сразу. Онлайн-оплата в мини-приложении по умолчанию выключена, и включать её нужно осознанно: сначала проверьте в правилах VK, разрешена ли для вашего случая оплата заказа сторонним эквайрингом.

Чтобы гость мог оплатить заказ онлайн, нужно всё из этого списка:

  • в карточке «Мини-приложение VK» включён переключатель «Онлайн-оплата в мини-приложении»;
  • в Настройки → Оплата включена «Онлайн-оплата картой»;
  • там же добавлен и включён платёжный аккаунт с заполненными ключами;
  • этот аккаунт выбран как «Аккаунт по умолчанию» или указан в форме точки.

Переключатель из первого пункта действует только на мини-приложение, на сайт и мобильное приложение он не влияет. Страница банка открывается в новой вкладке, а заказ считается оплаченным, только когда это подтвердит сервер.

Шаг 6. Проверьте приложение

Кнопки проверки в админке нет, поэтому пройдите заказ сами. Приложение открывается по адресу vk.com/app<идентификатор>.

До модерации открывайте его из аккаунта администратора приложения. Чтобы подключить других людей, создайте группу в разделе «Тестирование» настроек приложения в VK.

Проверьте на телефоне и на компьютере:

  • меню открывается, светлая и тёмная темы выглядят правильно;
  • гость без привязанного аккаунта видит кнопку «Передать номер из VK», и она подставляет номер. Для повторной проверки сначала нажмите «Выйти»;
  • заказ с оплатой при получении появляется в админке с отметкой VK;
  • бонусы списываются после подтверждения номера, если вы настроили шаг 4. Для этого у гостя должен быть баланс бонусов;
  • онлайн-оплата проходит, а заказ получает статус оплаченного, если вы настроили шаг 5.

Шаг 7. Отправьте приложение на модерацию

MeenuCMS не отправляет заявку за вас, это делается в кабинете VK.

  1. В настройках приложения выполните обязательные пункты из раздела «Модерация». Пока они не выполнены, заявку отправить нельзя.
  2. Укажите пользовательское соглашение и политику конфиденциальности.
  3. В разделе «Модерация» нажмите «Отправить заявку», опишите сценарии и приложите данные для проверки.

Вопросы модератора приходят в чат на той же странице. По описанию VK, процедура занимает минимум 3 дня. Модератор может назначить бета-тестирование или опубликовать приложение не в каталоге, а по прямой ссылке.

Политика и согласие MeenuCMS описывают передачу данных через VK, но это шаблоны. Перед публикацией покажите их юристу.

Уведомления в VK

Этот раздел необязателен, и приложение работает без него. Бот сообщества присылает сотрудникам уведомления о заказах, а гостям, которые согласились, сообщения о статусе заказа.

Подключите сообщество:

  1. В управлении сообществом включите «Сообщения» и «Возможности ботов».
  2. В разделе «Настройки → Работа с API» создайте ключ с правами на сообщения и управление.
  3. Там же включите Long Poll API и события «Входящее сообщение», «Запрет на получение сообщений» и «Нажатие на кнопку». Без последнего не сработают кнопки статуса в сообщениях.
  4. В админке откройте Настройки → Уведомления, карточку «Уведомления в VK», вставьте «Ключ сообщества», включите «Включено» и сохраните.

Идентификатор сообщества определится по ключу, а бот запустится без перезапуска сервера. Если серверов несколько, на лишних укажите VK_POLLING=false. В этом случае после повторного включения бота проверьте, что он отвечает: при необходимости перезапустите сервер, который опрашивает VK.

Подключите сотрудников. Каждый делает это сам:

  1. В меню аккаунта открыть «Уведомления в VK» и нажать «Подключить».
  2. Нажать «Открыть VK» и отправить боту любое сообщение. Ссылка действует 15 минут.
  3. Выбрать события и точки.

Проверьте результат кнопкой «Отправить тест себе» в карточке «Уведомления в VK»: сначала подключите свой аккаунт описанным выше способом. Отключить уведомления можно командой стоп.

Беседа. Чтобы получать уведомления в общий чат, в блоке «Беседы» задайте название и нажмите «Получить команду». Разрешите в настройках сообщества добавлять его в беседы, добавьте его и отправьте там упоминание бота с этой командой. Она одноразовая и действует 15 минут. В беседах нет данных гостя и кнопок статуса.

Будьте внимательны со сменой сообщества: она отключает беседы, снимает привязки сотрудников и согласия гостей. Смена ключа того же сообщества привязки сохраняет.

Если что-то не работает

Что вы видите Что проверить
Адрес /vk-app отвечает 404 Включён ли «Приложение включено»
«Укажите идентификатор приложения и защищённый ключ» Заполните оба поля и сохраните снова
В VK нет кнопки «Передать номер из VK», сразу поле ввода Открыто ли приложение внутри VK и верны ли идентификатор и защищённый ключ. Не заменён ли ключ шифрования. Откройте приложение заново: параметры запуска действуют час
«Номер не передан…» после нажатия кнопки Гость отказался передать номер, или этот способ недоступен в VK. Заказ можно оформить, введя номер вручную
«Не удалось проверить данные VK» Сервер не принял подпись номера. Закройте приложение и откройте снова, гость может ввести номер вручную
«Приложение VK не настроено» Включено ли приложение. Если да, ключ шифрования мог быть заменён: восстановите его из копии или введите «Защищённый ключ» заново
«Сессия устарела — откройте приложение заново» Закройте приложение и откройте снова
«Файл ключа шифрования повреждён…» Восстановите secrets.key из копии. Если удалить файл, заново придётся ввести все зашифрованные ключи, включая ключи iiko и VK
«Списать бонусы сейчас нельзя…» Настроен ли способ подтверждения на шаге 4
Нет онлайн-оплаты при оформлении Все условия шага 5
«Ключ сообщества не подходит…» Верен ли ключ и доступен ли VK с вашего сервера. Прежний рабочий ключ при этом сохраняется
«Бот VK ещё не настроен — обратитесь к владельцу» Сначала владелец подключает сообщество, затем сотрудники
«Сначала подключите VK в меню аккаунта» Подключите свой аккаунт, затем повторите тест
«Не удалось отправить сообщение…» Разрешены ли вам сообщения от сообщества, включены ли в нём «Сообщения» и есть ли у ключа права на них. При сохранении ключа эти права не проверяются
«Код недействителен или уже использован…» в ответе бота Получите новую ссылку или команду: они одноразовые и действуют 15 минут

Ограничения

  • VK Pay и другие платежи средствами VK не поддерживаются.
  • Рассылок гостям через VK нет.
  • Онлайн-оплата включается для всего приложения сразу, скрыть её только на отдельной платформе нельзя.
  • Отдельного тестового режима у мини-приложения нет. Он есть у платёжных аккаунтов некоторых банков.
  • Если номер переоформлен на другого человека, новому владельцу откроются адреса, история и баланс бонусов прежнего. Код подтверждения придёт на этот же номер, поэтому подтвердить его сможет новый владелец. «Завершить все сеансы» в карточке гостя снимает привязку, но номер можно передать снова.