Prodamus
Prodamus — один из самых популярны и востребованных платежных агрегаторов, который поддерживает:
Банковские карты
Оплата зарубежными картами
Сбербанк Онлайн
Быстрый платеж
Юmoney
Qiwi
Платежные терминалы
Рассрочка от Тинькофф
Кредит от Тинькофф
Рассрочка от брокера ВсегдаДа
По счету
А также есть поддержка рекуррентных платежей (подключается отдельно по запросу)
Для интеграции Prodamus с MultyAI, вам нужен активированный аккаунт в сервисе Prodamus.
Чтобы там зарегистрироваться, необходимо зайти на их официальный сайт и оставить заявку. Также вы можете оставить заявку у них во ВКонтакте или в Telegram.
Стоимость подключения: 10 000 руб. (без абонентской платы)
При регистрации напишите промокод MULTY и получите скидку 2000 руб.
Как подключить Prodamus к MultyAI
Первым делом заходим в ваш Проект в MultyAI → Настройки проекта → Интеграции → Prodamus
И нажимаем кнопку "Добавить"
Далее вам нужно ввести:
Имя аккаунта (поддомена)
Секретный ключ
Имя аккаунта — это поддомен вашего аккаунта в Prodamus.
Например, если ваш аккаунт myschool.payform.ru, то вводите myschool
Секретный ключ — находится в настройках вашего аккаунта в Prodamus.
Где взять секретный ключ:
Идем на сайт Продамуса
Заходим в ваш личный кабинет.
Заходим в настройки
Спускаемся в самый низ и жмем кнопку "Настройки"
Затем находим поле "Секретный ключ" и копируем его
После того, как заполнили оба поля, нажмите сохранить и снова откройте интеграцию.
Вы увидите, что появилась новая строчка "Webhook URL для настройки уведомлений"
Скопируйте содержимое и возвращайтесь в настройки Prodamus.
Найдите раздел "Настройка уведомлений"
Вставьте скопированную ссылку в поле "URL адреса для уведомлений"
И нажмите "Сохранить"
Готово! Интеграция подключена!
Как настроить прием платежей через блок-схемы
Для начала подключите ВКонтакте или Telegram, где будет выдаваться ссылка на оплату.
Затем зайдите в раздел "Блок-схемы", создайте новую схему и сделайте следующую настройку:
Для начала выберите событие, на которое мы будем реагировать для выдачи оплаты. Например: - Написал ключевое слово в сообщество/бота - Нажал "Написать" в товарах сообщества "Вконтакте" - Нажал на кнопку "Оплатить" - и т.д. Но для начала рекомендуем возьмем самый простой пример.
Создайте блок Событие с контейнером "Входящее сообщение", условием "Текст сообщения" и добавьте туда какой-то текст, в ответ на который бот будет присылать ссылку на оплату. Например "Оплатить"
Создайте блок Действие и во вкладке "Интеграции" выберите контейнер "Создать ссылку на оплату в Prodamus"
Далее идем по пунктам:
Аккаунт Prodamus — выберите из списка нужную подключенную интеграцию
Номер заказа внутри проекта — Здесь введите номер заказа. Небольшой лайфхак: чтобы выдавать рандомное значение, вставьте туда следующее выражение:
{date:|%utc}-{rand:|10|99}
- оно будет само подставлять случайные, уникальные значения.Ссылка после оплаты — добавьте ссылку, куда будет перебрасывать пользователя после оплаты. Например, на диалог с вашим сообществом в ВК или Telegram-бота.
Полная стоимость заказа — указывать не обязательно, если вы создаете продукт ниже.
Сумма скидки — на ваше усмотрение
Добавить продукт — настоятельно рекомендуем использовать этот пункт
Выберите продукт — нажмите на поле, введите название вашего продукта в поле создания, нажмите создать и выберите его.
Переназначить цену — укажите стоимость продукта.
Количество — укажите количество
Описание заказа — это комментарий, который будет показан пользователю на странице оплаты. По умолчанию задается название продукта.
Готово!
Обычно этого достаточно, но вы можете использовать дополнительные настройки.
Дополнительные настройки (галочки):
Задать данные клиента — здесь по умолчанию заданы переменные. Они актуальны, если вы сохраняете данные пользователя в поля профиля. Если вы сохраняете контакты в переменные, поля пользователей или в глобальные переменные, то здесь подставляйте соответствующие значения. Стандартные значения:
Номер телефона клиента — {var:users.user.contact.phone[0]} Внимание! Если вы используете поле профиля для телефона, то если такой телефон уже есть, бот выдаст ошибку. Учитывайте это. Можете задать условие проверки или использовать обычные переменные.
Email клиента — {var:users.user.contact.email[0]}
VK ID клиента — {var:users.user.contact.vk_id[0]}
TG ID клиента — {var:users.user.contact.tg_id[0]}
Задать срок жизни ссылки — рекомендуем задавать минимум 1 день, иначе схема может не сработать.
Активировать подписку — это панель для рекуррентных платежей. Убедитесь перед настройкой, что она у вас активирована и оплачена в Prodamus.
ID подписки — числовой идентификатор подписки. Можно найти в настройках формы в Prodamus.
Дата старта подписки — Формат: ГГГГ-ММ-ДД ЧЧ:ММ. Если не передавать, будет использована текущая.
Демо-период — Количество дней демо-периода подписки. По желанию.
Количество платежей — максимальное количество авто-платежей по подписке.
Добавить поля заказа — дополнительные (сквозные) полезные данные, которые будут возвращены в вебхуке. Например, мы можем сохранять идентификатор партнера, чтобы после оплаты знать, кому начислять бонусы. А также, номер заказа, товар, размер товара и т.д. Т.е. данные, с которыми мы хотим дальше работать. Так скажем, дополнительные возможности для удобства, чтобы не создавать лишний полей.
Например, возвращаем telegram-id пользователя:
Параметр: {var:platform.contact.type} - тип контакта
Тип: Целое число
Значение: {var:platform.user.id} - id телеграм
Дополнительные параметры запроса — любые другие дополнительные параметры, согласно документации Prodamus, которые будут добавлены к основным параметрам запроса.
Например, оплата в демо-режиме:
Значение: demo_mode
Тип: Целое число
Параметр: 1
Либо мы хотим передать utm:
Значение: _utm_source
Тип: Текст
Параметр: VK
Сохранить ссылку в переменную
payment_url — переменная, которая указана по умолчанию. Можете задать свою. Она необходима для вывода ссылки на оплату.
Как вывести ссылку на оплату в текст
Создайте блок Сообщение и вставьте в текст переменную:
{var:effect.payment.url}
Альтернативные варианты:
{var:payment_url}
Где payment_url — название переменной, которое вы ввели (если не меняли) в действии продамуса.
{var:result.payment_link}
Как работать с контактами - примеры схем
Пример простой схемы без сохранения телефона
В этом примере, после перехода по ссылке оплаты, пользователю придется вручную ввести свой номер телефона и у нас он не сохранится в базе.
Сохранение телефона через временные переменные:
В этом случае мы изначально не знаем есть ли у пользователя телефон, т.к. нигде его не храним.
Поэтому просто просим написать номер телефона.
Создаем блок Событие - Входящее сообщение - Условие "Текст сообщения", выбираем "Содержит номер телефона".
Через этот блок мы ожидаем ответ от пользователя.
Далее сохраняем полученное значение во временную переменную.
Создаем блок Действие с контейнером "Задать значение текстовой переменной"
Пишем название переменной, например, phone.
И в новое значение вставляем {var:object.text} - т.е. сохраняем ответ пользователя.
Сохранение телефона через поля пользователей:
В этом примере мы заранее создаем отдельное поле пользователя под телефон. Например, в разделе "Поля пользователей".
Через условие "Значение числового поля" проверяем есть ли телефон. Например, больше нуля.
Если телефона нет, то просим его написать.
Ставим блок Событие - Входящее сообщение - Условие "Текст сообщения" и выбираем не "равен", а "Содержит номер телефона"
Далее сохраняем значение через действие "Задать значение числового поля" и задаем переменную {var:object.text}
А в блоке с формированием заказа, заменяем переменную номера телефона на:
{field:phone}, где phone - системное имя вашего Числового поля пользователя.
Пример с проверкой телефона в базе
Т.к. в MultyAI уже есть скрытые поля контактов и соответствующие действия и условия работы с ними, то мы можем использовать данный метод.
Отличие от предыдущего в том, что мы дополнительно проверяем, есть ли телефон в базе. Если есть, то просим указать другой.
Для этого:
В первом условии проверяем есть ли телефон с помощью контейнера "Текстовая переменная". Вставляем {var:users.user.contact.phone[0]} не равен undefined
После ожидания телефона, действием ищем пользователя по контакту И ответ пользователя {var:object.text} сохраняем в переменную user_exists
И через условие проверяем есть ли пользователь в базе. {var:user_exists.id} > 0
Last updated