Продамус(Prodamus)
Платежная система для онлайн-школ и самозанятых
Для подключения Prodamus Вам понадобятся URL-платежной формы и секретный ключ.
URL-платежной формы вы получаете после регистрации, он имеет вид: demo.payform.ru
Секретный ключ можно получить в личном кабинете, там же нужно прописать URL адрес для уведомлений.

Секретный ключ
Подробная инструкция как это сделать: https://help.prodamus.ru/payform.ru-onlain-oplaty/prochee/url-dlya-uvedomlenii-i-sekretnyi-klyuch
Адрес для уведомлений: https://chatter.salebot.pro/prodamus_callback/result
Этот адрес нужно прописать в настройках в двух местах.
На главной странице настроек:
Настройка url для уведомлений(Часть 1)
После вверху перейти во вкладку Подписки:
Кнопка перехода в вкладку с настройками подписок
И ниже так же прописать:
Настройка url для уведомлений(Часть 2)
Обратите внимание! После ввода url обязательно нажмите кнопку «Сохранить».
Для подключения Prodamus необходимо перейти в раздел "Платежные системы"


Далее необходимо просто указать данные, о которых говорили выше в форму.
Настройки продамуса
На этом подключение закончено. Теперь давайте разберемся как использовать данный функционал.
Обратите внимание: переменной payment_sum присваивается зна чение последней, после необязательных переменных payment_description, product_name и т.д.
Для генерации ссылки на оплату, вам достаточно установить значение переменной payment_sum сразу после этого появится переменная prodamus_pay_url.
До объявления переменной payment_sum так же можно указать следующие, не обязательные переменные:
product_name - наименование товара (если не указать заполняется 'Оплата счета order_id') - на скриншоте ниже показано где отображается
payment_description - описание товара (если не указать заполняется 'Оплата счета order_id', скрин ниже) - на скриншоте ниже показано где отображается
discount_value - размер скидки (например discount_value = 25 или discount_value = 50.25)
customer_phone - номер телефона покупателя, не обязательно
customer_email - емейл покупателя, не обязательно
link_expired - время жизни ссылки на оплату, в формате дд.мм.гггг (например 25.01.2021). Также можно в поле "Назначение переменных при переходе" указать: link_expired = current_date + 2 (ссылка будет действительна 2 дня до 00:00)
link_expired так же можно указать дату с точным временем, через пробел, в формате дд.мм.гггг чч:мм (например: 25.01.2021 12:23). Так же можно использовать стандартные переменные, например зададим время действия ссылки 30 минут:
time = current_time + 30
link_expired = "#{current_date} #{time}"
Переменные discount_value, customer_phone, customer_email и link_expired актуальны и для подписок.
Эту переменную можно вывести на экран ссылкой или разместить на кнопке с текстом "Оплатить". Ссылка имеет вид: https://payform.ru/7p3JR8/
Пример реализации.
В первом блоке задаем сумму оплаты:

Дальше выводим в нужном месте url, ссылку prodamus_pay_url:

prodamus_available_payment_methods объявляется до объявления payment_sum, возможные значения:
AC - банковская карта
ACUSDXP - карты зарубежных банков, кроме Казахстана
ACkz - карты Казахстана
ACkztjp - Оплата картой всех стран мира, кроме РФ. Оплата в Тенге
ACusd - карты зарубежных банков, кроме РФ и Украины. Оплата в USD
ACeur - карты зарубежных банков, кроме РФ и Украины. Оплата в EUR
SBP - быстрый платеж
PC - Юmoney
QW - Qiwi Wallet
GP - платежный терминал
sbol - Сбербанк онлайн
invoice - Оплата по счету
installment - Частями от Продамус
installment_0_0_3 - Рассрочка от Тинькофф на 3 месяца
installment_0_0_4 - Рассрочка от Тинькофф на 4 месяца
installment_0_0_6 - Рассрочка от Тинькофф на 6 месяцев
installment_0_0_10 - Рассрочка от Тинькофф на 10 месяцев
installment_0_0_12 - Рассрочка от Тинькофф на 12 месяцев
installment_0_0_24 - Рассрочка от Тинькофф на 24 месяца
credit - Кредит от Тинькофф
vsegdada_installment_0_0_6 - Рассрочка от ВсегдаДа на 6 месяцев
vsegdada_installment_0_0_10 - Рассрочка от ВсегдаДа на 10 месяцев vsegdada_installment_0_0_12 - Рассрочка от ВсегдаДа на 12 месяцев
Важно! после успешной или неуспешной оплаты в бот придут колбеки, по которым вы сможете понять что была успешная оплата. Эти колбеки в системе вы видите как сообщения от пользователя, чтобы их не мог отправить пользователь, они состоят из секретного ключа и приписки со статусом, например: 453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_success или 453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_fail. Также после успешной оплаты переменная prodamus_payment_completed устанавливается в True.
Внимание! Колбеки приходят с задержкой, так что после вывода ссылки на оплату пользователю рекомендуем отправить сообщение, что вроде: “После оплаты дождитесь сообщения об успешном завершении оплаты”
Например, можно сделать обработку успешной оплаты блоком с условием и вывести соответствующее сообщение пользователю:

Тип сравнения должен быть "Полное совпадение"
Для сове ршения повторного платежа обязательно необходимо обнулить payment_sum, ранее сформированную ссылку и уже после переназначить переменную payment_sum для получения свежей ссылки
После получения уведомления об успешной оплате клиенту в заявку (переменная payment_callback) запишется колбек от продамуса, со всеми данными по полученному платежу. Из него можно сохранить нужные данные и использовать по своему усмотрению. Пример колбека:
{"date": "2021-03-30T11:44:43+03:00", "order_id": "757679", "order_num": "", "domain": "demo.payform.ru", "sum": "14.50", "customer_phone": "+77777777777", "customer_extra": "Тут описание товара", "payment_type": "Пластиковая карта Visa, MasterCard, МИР", "commission": "3.5", "commission_sum": "0.51", "attempt": "1", "discount_value": "10.5", "products[0][name]": "Доступ к обучающим материалам", "products[0][price]": "14.50", "products[0][quantity]": "1", "products[0][sum]": "14.50", "payment_status": "success", "payment_status_description": "Успешная оплата", "payment_init": "manual"}
При формировании ссылки можно указать переменные product_name и payment_description. Тогда при приходе колбэка их можно будет достать вот так
product = get(payment_callback,'products[0][name]')
description = get(payment_callback,'customer_extra')

Обратите внимание: переменной payment_sum присваивается значение последней, после необязательных переменных payment_description, product_name
Сумму можно получить так
summa = get(payment_callback,'sum')
Кроме основных колбеков об успешной оплате или не успешной, будут приходить так же дополнительные.
- Действие - Деактивация подписки
- Действие - Завершение подписки (срок подписки истек)
- Действие - Завершение подписки (истек срок деактивированной подписки)
- Уве домление - не успешная оплата (недостаточно средств)
- Уведомление - не успешная оплата (истек срок действия карты)
- Уведомление - не успешная оплата (превышены ограничения по карте)
- Уведомление - не успешная оплата (карта утеряна)
- Уведомление - не успешная оплата (системная ошибка)
- Уведомление - не успешная оплата, последняя попытка списания
- Уведомление о предстоящем списании
- Уведомление - Не успешная оплата
- Уведомление - Заявка на рассрочку одобрена
- Уведомление - Заявка на рассрочку отменена
- Уведомление - Заявка на рассрочку отклонена
В чате с пользователем выводится сообщение, которое пользователь не видит, со следующими текстами:
- 1.Деактивация подписки
- 2.Подписка завершена
- 3.Не успешная оплата - приписка с пояснением (на скриншоте выше)
- 4.Уведомление о предстоящем списании - дата и время предстоящего списания
- 5.Заявка на рассрочку со статусом

По желанию, можно настроить отправку пользователю, какого-то сообщения.
Для примера отправим сообщение, что автоматическое списание не удалось.
На уведомление о не оплате с конкретной причиной, можно настроить, например вот так:

Для отправки сообщения на все неудачные списания, независимо от причины, можно настроить следующим образом:

И на все колбеки, в которых присутствует текст Не успешная оплата, пользователю будет приходить сообщение с указанным вами текстом.
Для создания подписки, нужно создать подписной товар. Подробная инструкция как это сд елать : https://help.prodamus.ru/payform.ru-onlain-oplaty/rekurrent-i-kluby/nastroiki-kluba/sozdanie-i-redaktirovanie-podpiski
Далее копируем id подписного товара, ниже показано где его взять:
Создание подписного товара
Для генерации ссылки на оплату подписки, вам необходимо установить значение (id подписного товара) переменной prodamus_subscription, сразу после этого появится переменная prodamus_pay_url. Эту переменную можно вывести на экран ссылкой или разместить на кнопке с текстом "Оплатить". Ссылка имеет вид: https://payform.ru/7p3JR8/
Обработка результата происходит так же как и при разовой оплате (читать выше)
После успешной подписки пользователю добавится переменная с введенным при оплате номером телефона customer_phone. Номер телефона нужен для управлением подпиской.
Метод работает только на реальных подписках, в демо-режиме связки с картой нет
Для возможности отпи ски пользователя от подписки нужно создать блок и вызвать функцию: .https://store.salebot.pro/function/delete_subscription_prodamus
С параметрами:
{
"customer_phone": "#{customer_phone}",
"id_subscription":"#{prodamus_subscription}",
"url":"https://demo.payform.ru/", "secret_key":"453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66",
"switcher":"0"
}
url - URL-платежной формы указанный в настройках конструктора
secret_key - секретный ключ из настроек
id_subscription - id подписного товара
customer_phone - телефон подписчика
switcher = 0 это остановка подписки, если передать 1, подписка снова активируется.
Пример настройка блока подписки:

Обратите внимание, что функция возвращает status, который сохраняем и можем обработать по своему усмотрению, при успешной деактивации\активации status равен ok
Функция задает размер скидки на последующие платежи по подписке. Скидка может быть установлена на ограниченное и неограниченное количество списаний.
prodamus_subscription_discount(subscription_id, discount, customer_phone, num)
где:
subscription_id - ID подписки
discount - десятичное число с точностью до двух знаков после точки, значение должно быть больше нуля и не превышать базовую стоимость подписки
customer_phone - номер телефона клиента в формате: +79999999999 (необязательный параметр, если есть переменная customer_phone (появляется после первой оплаты описание выше))
num - Количество оплат на которые будет действовать скидка (необязательный параметр, если не передавать, то количество оплат со скидкой не ограничено)
При успешном выполнении запроса функция вернет 'ok', если запрос выполняется с ошибкой, то функция вернет ее описание.
Размер скидки и интервал перезаписываются ТОЛЬКО если функцию вызвать повторно с новыми значениями!
1. Оформление скидки на все последующие автоплатежи в размере 1р (номер телефона не указывается, так как будет автоматически взят из переменной customer_phone, а количество списаний со скидкой по умолчанию - на весь период подписки)
r = prodamus_subscription_discount('624034', '1')
Пример 1
2. Оформление скидки 2р на следующие 3 списания (номер телефона заменен пустыми кавычками, так как будет автоматически взят из переменной customer_phone)
r = prodamus_subscription_discount('624034', '2', '', '3')
Пример 2
3. Пример оформления скидки в виде числа с дробной частью до сотых (разделитель точка), числовые данные указываются без кавычек, номер телефона передаем через переменную
r = prodamus_subscription_discount(#{prodamus_subscription}, 10.25, #{customer_phone}, 3)
Пример 3
С помощью данного метода можно сдвинуть дату следующего платежа по подписке. Сдвигать дату можно только "в будущее" относительно текущей установленной даты следующего платежа. Тем самым увеличивая срок пребывания в клубе.
Например, можно применять в качестве бонуса для подписчиков.
Для этого нужно использовать функцию:
prodamus_subscription_payment_date(subscription_id, date, customer_phone)
где:
subscription_id - ид подписки
date - дата в формате дд.мм.гггг чч:мм или дд.мм.гггг, тогда время будет 00:00
customer_phone - не обязателен, если не передать подтянется из переменной customer_phone, если и там не найдет, то не отработает
Чтобы передать в Продамус нужные вам параметры (например, дата старта подписки, отключение рассрочки и тд), в названии переменной приписывайте в начале prodamus_
Тогда при формировании ссылки на оплату эти параметры будут передаваться в платежную систему автоматически.
Тести руем только оплату!
Для того, чтобы с вашего счета не списывались средства при тестировании интеграции и настройки воронок на оплату, можно воспользоваться тестовыми картами
Сначала переведите свою платежную странницу в ДЕМО режим ⤵
Не забудьте нажать кнопку "Сохранить"

VISA
Номер карты
4111 1111 1111 1111
Дата истечения срока действия 2024/12
Проверочный код на обратной стороне 123
3-D Secure veres=y, pares=y
Проверочный код 3-D Secure 12345678
MasterCard
Номер карты 5555 5555 5555 5599
Дата истечения срока действия 2024/12
Проверочный код на обратной стороне 123
3-D Secure veres=n
МИР
Номер карты 2200 0000 0000 0053
Дата истечения срока действия 2024/12
Проверочный код на обратной стороне 123
3-D Secure veres=y, pares=y
Проверочный код 3-D Secure 12345678
! При оплате с тестовых счетов все настроенные воронки и интеграции сработают, как при обычной оплате !
Форма протестирована
Для приема оплат реальными деньгами, необходимо перевести форму в рабочий режим. То есть перевести бегунок переключения демо-режима в положение, чтобы он стал бледно-красным
Last modified 7d ago