Links
Comment on page

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 modified 10mo ago