Оплата товаров и услуг в ВКонтакте
Выдача ссылки на оплату и реакция на оплату
Ссылка на пример готовой схемы для Вконтакте: 💾 Cкачать схему 🔧 Инструкция по установке схем
Для начала давайте проверим, что у вас:
Настроены «Товары» либо «Услуги» в сообществе
Создаем список пользователей.
Для создания списка купивших ваш товар или услугу в своем проекте открываем раздел «Пользователи» -> «Списки» и кликаем справа кнопку «Создать»

Здесь все просто:
В поле «Название списка» пишете «Клиенты - Консультация».
В поле «Системное имя» пишете andreygorgamer_multy_clients (это важно, иначе готовая схема не сработает). Если не будете использовать готовую схему, то рекомендуется вписать в это поле ваш ник и, например, consultation . Пример: Ivan_Ivanov_consultation
В Поле «Доступ на чтение: проверку наличия» ставим переключатель «Все пользователи»
Нажмите кнопку "Сохранить"

Важно! Для одного товара достаточно создать один список. Для 10 товаров - 10 списков.
Собираем блок схему
Выдача ссылки на оплату
1) Создаем событие «Входящее сообщение » с условием «Тип вложения (файла) внутри объекта события» равным продукт

1) Важно! В примере мы будем реагировать на один продукт проверяя его ID условием: текстовая переменная {var:object.attachments[0].id}
равна ID вашего продукта, например, 7491714 (в примере ID выделено жирным)

2) Для дальнейших действий нужно сохранить название и цену продукта. Все действия делаем в одном контейнере.

2) Добавляем контейнер-действие «Текстовая переменная» product_title задать значение {var:object.products.0.title} для сохранения названия услуги.

3) Для сохранения цены услуги добавляем аналогичное действие «Числовая переменная» product_price задать значение {var:object.products.0.price}
Все действия делаем в одном контейнере.

4) Чтобы проверить, что у пользователя есть номер телефона добавляем условие «Текстовая переменная» {var:users.user.contact.phone[0]}
содержит undefined и выберите «Не» т.е. у пользователя записан номер телефона.

Проверяем что в поле профиля есть телефон.
5) Если в поле профиля нет телефона, то создаем сообщение с текстом, где просим ввести номер, для завершения заказа действием «Отправить сообщение» с текстом:
{var:platform.user.first_name}, для завершения заказа введите номер телефона
в международном формате.
Например: +7987653210
После оплаты на этот номер вам придет ссылка на чек платежа,
согласно законодательству.

Важно! В примере номер телефона спрашивается один раз и больше не будет беспокоить клиента.
6) И соединяем с Событием «Входящее сообщение» с условием «Содержит номер телефона»

7) Чтобы проверить, пользователь ввел номер телефона добавляем условие «Текст сообщения» содержит номер телефона

8) Из выходного порта «Нет» создаем сообщение с текстом, где просим ввести номер в корректном формате:
Это не похоже на телефон.
Введите, пожалуйста, номер согласно инструкции

И возвращаем пользователя на шаг 6.
9) Из выходного порта «Да» на шаге 7 со проверкой телефона на корректность, добавляем действие «Добавить контакт в профиль» и Телефон со значением
{num:{var:object.text}|phone}

9) Добавляем контейнер-действие «Создать ссылку на оплату в Prodamus» выбираем вашу интеграцию Prodamus. Ниже будем заполнять только те поля, которые необходимы для конкретного примера (введем стрелку из шага 4 и из шага 8).
Номер заказа внутри проекта — Здесь введите номер заказа. Небольшой лайфхак: чтобы выдавать рандомное значение, вставьте туда следующее выражение:
{date:|%utc}-{rand:|10|99}
- оно будет само подставлять случайные, уникальные значения.Ссылка после оплаты — добавьте ссылку, куда будет перебрасывать пользователя после оплаты. Например, на диалог с вашим сообществом в ВК или Telegram-бота. В примере вставляется ссылка на ваше сообщество:
https://vk.com/im?sel=-{var:platform.integration.id}
Полная стоимость заказа — указывать не обязательно, если вы создаете продукт ниже, но в примере переменная
{var:product_price}
Описание заказа — указывать не обязательно, если вы создаете продукт ниже, но в примере переменная
{var:product_title}
Ставим переключатель «Задать данные клиента»
Важно! Если не передавать, форма попросит ввести телефон при оплате.

В примере реализован самый простой вариант выдачи платёжной ссылки. Это действие не забудьте соединить с блоком условий.
10) Добавляем контейнер-действие «Отправить сообщение» с текстом:
Отличное решение, {var:platform.user.first_name}! 🙂
🚀 Заказ продукта {var:product_title} создан.
Актуальная стоимость: {var:product_price} руб.
Для завершения оплаты перейдите по ссылке: {var:payment_url}

Выдачу ссылки мы сделали, остается настроить реакцию на оплату.
Реакция на оплату
Важно! В Примере реагируем на оплату конкретного продукта от 100 рублей.
1) Создаем событие «Поступил новый платеж» с условием:
«Цена продукта» больше или равна 100 (Можете давать возможность оплатить со скидкой)

Опционально:
Если необходимо проверять название продукта, то добавьте условие «Текстовая переменная» {var:object.text} равна названию продукта. В примере «Консультация»

Если необходимо реагировать конкретной интеграцией, то добавляете условие:
«Бот или Интеграция, запустившие событие» здесь выбираете вашу интеграцию с Prodamus. (можно выбрать несколько интеграций)

2) Для отправки сообщения об оплате нужно переключить интеграцию на нужное сообщество ВКонтакте и нужно сохранить ID сообщества, ID пользователя для дальнейших действий.
Все делаем в одном контейнере.

2) Добавляем действие «Переключить интеграцию» и выбираем здесь нужную интеграцию с ВКонтакте.

3) Для сохранения ID сообщества добавляем действие «Задать числовую переменную» vk_club_id
со значением {var:result.unique_hash}

4) Для сохранения VK ID пользователя добавляем действие «Задать числовую переменную» vk_id
со значением {var:users.user.contacts[0].value}

5) Добавляем контейнер-действие «Отправить сообщение» с текстом:
{var:users.user.first_name}, оплата продукта «{var:object.text}» успешно получена.
Менеджер скоро с вами свяжется.

6) Для добавления в список клиентов, добавляем контейнер-действие «Добавить в список» выбираем ваш список и ставим переключатель «Добавить заново, если добавлен»

7) Опционально: Для отправки сообщений в беседу менеджерам, добавляем контейнер-действие «Сменить чат для следующих действий» выбираем вашу беседу ВКонтакте для в которой сидят менеджеры.

Добавляем контейнер-действие «Отправить сообщение» с текстом:
#Оплата_заказа:
Продукт: {var:object.text}
Стоимость: {var:object.price} руб.
Клиент:
ФИО: [id{var:vk_id}|{var:users.user.first_name} {var:users.user.last_name}]
Номер телефона: {var:platform.user.phone}
Написать сообщение клиенту:
https://vk.com/gim{var:vk_club_id}?sel={var:vk_id}&msgid={var:effect.message.id}

Соединяем все в блоки в цепочку
Сохраняем
Готово!
Last updated