Prodamus (RU)
Доступно лише на тарифі "Інфобіз".
Як підключити Продамус
Для підключення 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
Цю адресу потрібно прописати в налаштуваннях у двох місцях.
На головній сторінці налаштувань можна вибрати режим роботи форми: демо-режим без оплат або режим оплат:

Адресу для сповіщень потрібно прописати в налаштуваннях платіжної системи у двох місцях: вкладка Налаштування форми - для звичайних оплат і вкладка Підписки - для оплат за підпискою.

Адреса для сповіщень: https://chatter.salebot.pro/prodamus_callback/result
Для налаштування роботи з оплатами за підпискою перейдіть у вкладку Підписки та пропишіть адресу для сповіщень: https://chatter.mavibot.ai/prodamus_callback/result

Зверніть увагу! Після введення url обов'язково натисніть кнопку «Зберегти».
Для підключення Prodamus необхідно перейти до розділу "Еквайринг"

Далі необхідно просто вказати дані, про які говорили вище, у форму:

ВАЖЛИВО! url - платіжної форми вказуємо БЕЗ https://
На цьому підключення завершено. Тепер давайте розберемося, як використовувати цей функціонал.
Як сформувати посилання на оплату
Сформувати посилання на оплату в блоці можна ОДНИМ ІЗ доступних способів:
Створення посилання за допомогою змінної payment_sum та додаткових параметрів (застаріла робоча версія)
Кнопка з функцією Оплата
Розглянемо всі можливі параметри цієї кнопки.
Обов'язкові параметри кнопки Оплата для Продамус
Для формування посилання на оплату в налаштуваннях кнопки необхідно вказати обов'язкові параметри "Сума", "Найменування товару", також параметр "Оплачений контент", якщо у вас немає своєї онлайн-каси і ви хочете отримувати чек від Prodamus.
Під час переходу на сторінку оформлення замовлення заздалегідь буде прописано інформацію про продукт і його вартість, клієнту залишиться лише вказати свої контакти. Якщо в налаштуваннях кнопки вказати Email і\або телефон користувача, то на сторінці оформлення замовлення будуть вказані контакти платника і інформація про продукт та його вартість.

поле Текст. Цей текст буде вказано на кнопці з посиланням на оплату в повідомленні
поле Функція. Для створення кнопки для видачі посилання на оплату обираємо функцію Оплата
поле Платіжна система. У списку відображаються платіжні системи, підключені до проєкту
Якщо до проєкту не підключені платіжні системи, цей тип кнопок буде недоступний
поле Найменування товару (обов'язкове). У цьому полі потрібно вказати назву товару. Чим точніше вказано назву товару, тим краще. Наприклад: не Телефон, а Смартфон Xiaomi модель …
НЕ МОЖНА використовувати подвійні лапки у найменуванні товару: видаліть або замініть на одинарні лапки.
поле Сума (обов'язкове). У цьому полі вказуємо вартість товару.
меню Додаткова інформація. Після кліку на цю кнопку відкриються додаткові поля для формування посилання
Опис замовлення
Знижка в руб.
Змінна з email покупця
Змінна з номером телефону покупця
Час життя посилання
ID товару для підписки (для створення автоплатежів)
Оплачений контент
чекбокс З повідомленням про клік. Для відстеження переходу за посиланням на оплату можна поставити галочку. У такому разі, при кліку на кнопку в діалог із клієнтом у Сейлбот надійде сповіщення про те, що було здійснено перехід за посиланням

На це сповіщення можна налаштовувати подальшу логіку роботи бота.
Багато платіжних систем підтримують хмарні онлайн-каси, вони необхідні за 54-ФЗ. Прочитайте особливості оформлення чеків на сайті обраної платіжної системи, щоб не потрапити в незручну ситуацію з податковою інспекцією.
А ось так виглядає сторінка оплати, яка відкривається при переході за посиланням у кнопці Оплата:

Додаткові параметри формування посилання на оплату

поле Опис замовлення. Інформація, вказана в цьому полі, буде відображатися на сторінці оплати в полі Додаткові дані
поле Знижка. У цьому полі можна вказати розмір знижки в рублях або рублі з копійками. Щоб вказати суму з копійками як роздільник використовуємо крапку: 50.99 На сторінці оплати в полі Сума до оплати буде вказано з урахуванням знижки, а основна вартість товару буде перекреслена.
Поле Змінна з email покупця (необов'язковий, якщо передано Номер телефону) У цьому полі вказується Email користувача (клієнта). Можна вказувати змінну, в якій зберігається email користувача.
Наприклад, #{email}
Поле Змінна з номером телефону покупця (необов'язковий, якщо передано Email). У цьому полі можна вказати змінну, в якій записано номер телефону покупця у форматі 79000000000 Наприклад, #{phone}
Обов'язково має бути email і/або телефон
поле Час життя посилання. Можна вказати дату у форматі дд.мм.рррр гг:хх (наприклад 25.01.2021 11:00) або використовувати змінні для призначення терміну завершення дії посилання.
Приклад використання змінної: (наприклад, 25.01.2021 11:00), або встановити час завершення дії посилання через змінну. Наприклад:
поле ID товару за підпискою. Щоб виконати автоплатіж, передайте значення ID товару. Для створення підписки потрібно створити підписний товар.
Детальна інструкція, як створити товар для підписки: https://help.prodamus.ru/payform/rekurrent-i-kluby/kak-sozdat-i-nastroit-podpiski
Якщо передати значення ID товару за підпискою, то сума платежу не враховується. Дані по товару будуть отримані з картки товару з кабінету Продамус
Номер телефону, вказаний під час оплати, буде необхідний для керування підпискою.
Якщо передати ID товару за підпискою, то в колбеку при успішному платежі буде передано ID цього товару
Поле Оплачений контент (умовно обов'язкове). Дані необхідні для фіскалізації оплати Prodamus'ом, якщо у вас немає своєї онлайн-каси. У цьому полі потрібно вказати опис покупки, її вартість і посилання на ресурс із контентом.
Наприклад: Курс ‘Плетіння кіс’, вартість 3000 рублів, посилання на сторінку курсу: https://nbu.su/krasota/master-po-pleteniyu-kos/?yclid=13602995275739430911.
Ці дані необхідні для передачі до ФНС.
Кнопка з функцією оплати
Якщо ви вказуєте час життя посилання, то у випадку
Коли користувач запросив посилання для оплати в його активний термін (тобто строк його життя ще не завершився) і воно є в діалозі, то оплатити він не зможе і у нього буде сповіщення такого вигляду:
Термін дії посилання має бути пізніше поточної дати, інакше і за таким посиланням клієнт не зможе оплатити.
2. Коли користувач запитує посилання, а воно вже неактивне У такому разі кнопка просто не з'явиться. І в змінних клієнта з'явиться змінна "error_payment_button", яка містить таке значення: "Помилка: Термін дії посилання має бути пізніше поточної дати".
Щоб користувач міг оплатити коректно, бажано додатково обробити такий випадок.
Як це зробити?
Створіть блок з умовою, у якому вкажіть, якщо надійшло сповіщення подібного плану, error_payment_button == "Помилка: Термін дії посилання має бути пізніше поточної дати"
З виведенням тексту: "Вибачте, ви не встигли і посилання на оплату більше недійсне":


Змінні клієнта, які будуть створені автоматично при використанні кнопки з функцією Оплата
Щойно користувач отримає блок із кнопкою "Оплата", автоматично будуть створені змінні клієнта:
Службова змінна клієнта __payments , яка зберігає суму, ідентифікатор створеного посилання, потрібна для ідентифікації хука від платіжної системи.
Службову змінну клієнта __payments НЕ МОЖНА видаляти або змінювати!
Змінна клієнта error_payment_button створюється, якщо під час формування кнопки виникла помилка.
У значення змінної error_payment_button буде записано або текст помилки, або відповідь платіжної системи з помилкою.
Значення змінних стають актуальними під час переходу до наступного блоку
Як обробити результат
Успішний платіж.
Після успішної оплати в бота АВТОМАТИЧНО надійде КОЛБЕК, який складається з перших 10 символів секретного ключа платіжної системи, слова _success і через пробіл сума платежу. Для використання в налаштуваннях схеми достатньо його скопіювати.
Наприклад: ovg58keefc_success 44, де:
ovg58keefc : перші 10 символів секретного ключа платіжної системи
_success : результат обробки запиту (успішний платіж)
44 : сума платежу
Колбеки (сповіщення) від платіжної системи користувач НЕ БАЧИТЬ. Вони відображаються лише у вкладці Клієнти і видимі оператору.
Приклад використання: Крок 1. У блоці "з кнопкою Оплата" додаємо кнопки з функцією Оплата.
Крок 2. У полі Умова з'єднання від цього блоку до блоку "Успішна оплата" вказуємо колбек. Аналогічно працює, якщо вказати колбек про успішну оплату в полі Умова блоку "Початкова умова".
Важливо: вибір відповідності Повне співпадіння або За наявністю ключових слів
❗️Якщо ви вирішили перевіряти оплату саме в стрілці за умовою, то продумайте логіку вашої схеми. У разі якщо клієнт покине блок із переходом за умовою з колбеком, то переходу в блок не буде. Такий спосіб перевірки логічно використовувати лише тоді, коли клієнт не змінює своє положення у воронці (положення в схемі). У схемах, у яких клієнт переміщується між блоками, краще використовувати варіант із вказанням колбека в блоці "Початкова умова".

Успішний платіж для товарів з автопідпискою.
Після успішної оплати в бота АВТОМАТИЧНО надійде КОЛБЕК, який складається з перших 10 символів секретного ключа платіжної системи, слова _success і через пробіл ID товару за підпискою
Наприклад: 214009eefc_success 618117, де:
009eefc : 10 символів секретного ключа платіжної системи
_success : результат обробки запиту (успішний платіж)
618117: ID товару за підпискою

Платіж з помилкою
При помилці проведення оплати в бота АВТОМАТИЧНО надійде КОЛБЕК, який складається з 10 символів секретного ключа платіжної системи, слова _fail і через пробіл сума платежу
Наприклад, ovg58keefc_fail 44 , де
ovg58keefc : 10 символів секретного ключа платіжної системи
_fail : результат обробки запиту - платіж не виконано або з помилкою.
44 : сума платежу
Залежить від платіжної системи. Не всі платіжні системи надсилають колбек про помилку платежу.
Якщо сума, вказана в налаштуваннях кнопки відрізняється від суми, яку клієнт оплатив, то АВТОМАТИЧНО надійде КОЛБЕК, який складається з 10 символів секретного ключа платіжної системи, слова _different_amounts і через пробіл унікальний ID платежу
Наприклад: ovg58keefc_different_amounts 123456 , де:
ovg58keefc : 10 символів секретного ключа платіжної системи
_different_amounts : результат обробки запиту (сума оплати відрізняється від суми в посиланні)
123456 : унікальний ID платежу
Функція get_prodamus_payment_url у Калькуляторі
Для формування посилання на оплату можна скористатися функцією get_prodamus_payment_url у блоці Калькулятор.
У полі Калькулятор змінній присвоїмо значення функції get_prodamus_payment_url
Назву змінної задаєте самостійно. На скрінах приклади назв змінних.
У цю змінну запишеться посилання на оплату. Змінну можна вивести на екран посиланням у повідомленні або розмістити на кнопці з текстом "Сплатити".
ПРИКЛАД посилання на оплату: https://payform.ru/7p3JR8/
Приклад 1:

ваша_змінна = get_prodamus_payment_url(amount, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)
Параметри функції:
amount
сума до оплати. Можна передати значення цілого числа і число з крапкою. Наприклад 25 або 52.5 (обов'язковий параметр)
product_name
Назва товару. (обов'язковий параметр)
expired
час життя посилання на оплату, у форматі дд.мм.рррр (наприклад 25.01.2021). Також можна в полі "Калькулятор" вказати: expired = current_date + 2 (посилання буде дійсне 2 дні до 00:00). expired також можна вказати дату з точним часом, через пробіл, у форматі вказати у форматі (наприклад: 25.01.2021 12:23). Також можна використовувати стандартні змінні, наприклад задамо час дії посилання 30 хвилин:
time = current_time + 30
expired = "#{current_date} #{time}"
Щоб пропустити цей параметр, передайте замість нього пару одинарних або подвійних лапок, або значення None
customer_phone
номер телефону покупця, не обов'язково, якщо передано параметр customer_email Щоб пропустити цей параметр, передайте замість нього одинарні або подвійні лапки.
customer_email
емейл покупця, не обов'язково, якщо передано параметр customer_phone Щоб пропустити цей параметр, передайте замість нього одинарні або подвійні лапки.
discount
розмір знижки. Передаємо параметр число або число з крапкою: 25 або 63.5 Щоб пропустити цей параметр, передайте замість нього одинарні або подвійні лапки.
description
опис товару (якщо не вказати, заповнюється 'Оплата рахунку order_id') Щоб пропустити цей параметр, передайте замість нього одинарні або подвійні лапки.
extra_params
додаткові параметри, яких немає в цій функції. Можливі додаткові параметри можна переглянути за посиланням у документації роботи з API платіжної системи https://help.prodamus.ru/payform/integracii/rest-api/instrukcii-dlya-samostoyatelnaya-integracii-servisov Приклад: extra_params = {"payments_limit": "3", "payment_method": "vsegdada_installment_0_0_6"}
Щоб пропустити цей параметр, передайте замість нього пару одинарних/ пару подвійних лапок або значення None.
products_for_receipt
Рядок від 50 до 4000 символів у форматі "опис замовлення - вартість - посилання на ресурс, що купується”.
Наприклад:
“Курс ‘Риболовля на ляща’, вартість 4999 рублів, посилання на сторінку курсу: https://www.lovilescha.ru/courses/poimai_kilogram/". Обов'язковий, якщо у вас немає своєї онлайн-каси, для фіскалізації оплат через Prodamus.
extra_params = {"payments_limit": "3"}
products_for_receipt = "Курс ‘Риболовля на ляща’, вартість 4999 рублів, посилання на сторінку курсу: https://www.lovilescha.ru/courses/poimai_kilogram/"
link_prodamus_url = get_prodamus_payment_url(4999, 'Курс ‘Риболовля на ляща’', '27.03.2023 17:00', '79167777771', '[email protected]', 20, 'Найкращий курс на ринку', extra_params, products_for_receipt)
Якщо в блоці кілька функцій для отримання посилання і допущено помилку, то значення помилки буде записано в змінній error_payment_func
Помилка буде записана по останній функції в Калькуляторі
Створення посилання за допомогою змінної payment_sum та додаткових параметрів
Зверніть увагу: змінній payment_sum присвоюється значення останньої, після необов'язкових змінних payment_description, product_name тощо.
Для генерації посилання на оплату вам достатньо в полі Калькулятор встановити значення змінної payment_sum. Одразу після цього з'явиться змінна prodamus_pay_url.
ПРИКЛАД посилання на оплату:: https://payform.ru/7p3JR8/
Цю змінну можна вивести на екран посиланням у повідомленні або розмістити на кнопці з текстом "Сплатити".
До оголошення змінної 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}"
currency
валюта платежу, за замовчуванням "rub". Повний список аргументів:
rub
usd
eur
kzt Цей параметр має бути переданий у нижньому регістрі.
payment_title
заголовок платежу (до 127 символів). Якщо не вказати, заповнюється текстом: “Оплата рахунку payment_id” (payment_id - ідентифікатор замовлення в Salebot)
payment_description
короткий опис платежу (до 127 символів)
locale
мова сторінки оплати, вказується у вигляді en-US, fr-XC тощо. За замовчуванням - ‘ru-Ru’. Повний список доступний за посиланням https://developer.paypal.com/api/rest/reference/locale-codes/
products_for_receipt
Рядок від 50 до 4000 символів у форматі "опис замовлення - вартість - посилання на ресурс, що купується”.
Наприклад:
“Курс ‘Риболовля на ляща’, вартість 4999 рублів, посилання на сторінку курсу: https://www.lovilescha.ru/courses/poimai_kilogram/".
Обов'язковий, якщо у вас немає своєї онлайн-каси, для фіскалізації оплат через Prodamus.
payment_sum
(обов'язково) сума платежу
Змінні discount_value, customer_phone, customer_email і link_expired актуальні й для підписок.

Приклад реалізації.
У першому блоці задаємо суму оплати:

Далі виводимо в потрібному місці url, посилання prodamus_pay_url:

prodamus_available_payment_methods оголошується до оголошення payment_sum.
Можливі значення:
AC
оплата карткою, випущеною в РФ
ACkz
оплата карткою Казахстану
ACf
оплата картками країн СНД, крім РФ
ACEURNMBX
Оплата EUR карткою всіх країн, крім РФ і РБ
SBP
Швидкий платіж, без введення даних картки. Для карт РФ
QW
Qiwi Wallet
PC
ЮMoney
GP
платіжний термінал
sbol
Сбербанк Онлайн invoice - Оплата за рахунком installment - Частинами від Продамус
installment_5_21
Частинами від Продамус на 3 місяці
installment_6_28
Частинами від Продамус на 6 місяців
installment_10_28
Частинами від Продамус на 10 місяців
installment_12_28
Частинами від Продамус на 12 місяців 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 місяці
installment_0_0_36
Розстрочка від Тінькофф на 36 місяців
credit
Кредит від Тінькофф
vsegdada_installment_0_0_4
Розстрочка ВсегдаДа на 4 місяці (не працює з available_payment_methods)
vsegdada_installment_0_0_6
Розстрочка від ВсегдаДа на 6 місяців
vsegdada_installment_0_0_10
Розстрочка від ВсегдаДа на 10 місяців
vsegdada_installment_0_0_12
Розстрочка від ВсегдаДа на 12 місяців без переплати
vsegdada_installment_0_0_24
Розстрочка від ВсегдаДа на 24 місяці
vsegdada_installment_0_0_36
Розстрочка від ВсегдаДа на 36 місяців
sbrf_installment_0_0_6
Розстрочка від СберБанку на 6 місяців
sbrf_installment_0_0_10
Розстрочка від СберБанку на 10 місяців
sbrf_installment_0_0_12
Розстрочка від СберБанку на 12 місяців
sbrf_installment_0_0_24
Розстрочка від СберБанку на 24 місяці
sbrf_installment_0_0_36
Розстрочка від СберБанку на 36 місяців
otp_installment_0_0_6
Розстрочка «ОТП Банку» на 6 місяців
otp_installment_0_0_10
Розстрочка «ОТП Банку» на 10 місяців
otp_installment_0_0_12
Розстрочка «ОТП Банку» на 12 місяців
otp_installment_0_0_24
Розстрочка «ОТП Банку» на 24 місяці
otp_installment_0_0_36
Розстрочка «ОТП Банку» на 36 місяців
mts_installment_0_0_6
Розстрочка «МТС Банку» на 6 місяців
mts_installment_0_0_10
Розстрочка «МТС Банку» на 10 місяців
mts_installment_0_0_12
Розстрочка «МТС Банку» на 12 місяців
mts_installment_0_0_24
Розстрочка «МТС Банку» на 24 місяці
mts_installment_0_0_36
Розстрочка «МТС Банку» на 36 місяців
monetaworld
Карти банків світу, крім РФ
sbrf_bnpl
Частинами від Сбер
Дозволяється передача кількох значень, розділяючи їх вертикальною рискою. Наприклад: prodamus_available_payment_methods = "AC|PC|QW"
prodamus_currency - ще один додатковий параметр для передачі суми в певній валюті. Можливі значення валюти: kzt - для тенге eur - для євро usd - для долара
Тоді сума, вказана в посиланні, буде в зазначеній валюті.
Під час отримання колбека payment_callback потрібно орієнтуватися на параметр currency і currency_sum, у яких буде валюта і сума у валюті.
Важливо! Перевірте, чи є у вас на сторінці метод оплати в потрібній валюті, оскільки якщо його немає, то буде перехід на сторінку без методів оплати. Методи підключаються через підтримку. Подивитися увімкнені можна в налаштуваннях сторінки або сформувавши посилання на оплату


Як обробити результат
Успішний платіж
Важливо! Після успішної або неуспішної оплати в бот надійдуть колбеки, за якими ви зможете зрозуміти, що платіж був успішним. Ці колбеки в системі ви бачите як повідомлення від користувача, щоб їх не міг надіслати користувач, вони складаються із секретного ключа та приписки зі статусом, наприклад: 453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_success або 453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_fail. Також після успішної оплати змінна prodamus_payment_completed встановлюється в True.
Увага! Колбеки приходять із затримкою, тож після виведення посилання на оплату користувачу рекомендуємо надіслати повідомлення типу: “Після оплати дочекайтеся повідомлення про успішне завершення оплати”
ВАЖЛИВО! Для посилань, створених за допомогою кнопки з функцією Оплата або за допомогою функції в Калькуляторі, після оплати в бота АВТОМАТИЧНО надійде КОЛБЕК, який складається зі символів секретного ключа платіжної системи, слова _success і через пробіл сума платежу. Для використання в налаштуваннях схеми достатньо його скопіювати.
Наприклад: ovg58keefc_success, де:
ovg58keefc : секретний ключ повністю
_success : результат обробки запиту (успішний платіж)
Наприклад, можна зробити обробку успішної оплати блоком з умовою і вивести відповідне повідомлення користувачу:

Тип порівняння має бути "Повне співпадіння"
Для здійснення повторного платежу обов'язково необхідно обнулити 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')
Які колбеки доступні
Крім основних колбеків про успішну оплату в чаті з користувачем виводиться повідомлення, яке користувач не бачить, з такими текстами:
Підписник деактивував підписку (детальніше тут)
Підписник реактивував підписку (детальніше тут)
Підписку завершено
Неуспішна оплата - примітка з поясненням (на скриншоті вище)
Сповіщення про майбутнє списання - дата та час майбутнього списання
Заявка на розстрочку зі статусом
Приклади колбеків у діалозі з клієнтом:
Підписник деактивував підписку
Підписник реактивував підписку
Підписку завершено
Неуспішна оплата - Недостатньо коштів.
Неуспішна оплата - Термін дії картки закінчився.
Неуспішна оплата - Перевищено ліміт по картці.
Неуспішна оплата - Картку втрачено
Неуспішна оплата - Системна помилка
Неуспішна оплата - Операцію відхилено. Зверніться до банку, який випустив картку.
Неуспішна оплата - Відмова в проведенні операції банком-емітентом.
Неуспішна оплата - Відмова в проведенні операції банком.
Сповіщення про майбутнє списання - дд.мм.рррр гг:хх
Заявку на розстрочку схвалено
Заявку на розстрочку скасовано
Заявку на розстрочку відхилено
Докладніше прочитати опис помилок можна тут:
За бажанням, можна налаштувати надсилання користувачу якогось повідомлення. Для прикладу надішлемо повідомлення, що автоматичне списання не вдалося. На сповіщення про неуспішну оплату з конкретною причиною, можна налаштувати блок із відповіддю, наприклад, ось так:

Для надсилання повідомлення на всі невдалі списання, незалежно від причини, можна налаштувати таким чином:

І на всі колбеки, в яких присутній текст Неуспішна оплата, користувачу надходитиме повідомлення з указаним вами текстом.
Як створити платежі за підпискою
Як створити підписку
Для створення підписки потрібно створити підписний товар. Детальна інструкція, як це зробити: https://help.prodamus.ru/payform/rekurrent-i-kluby/kak-sozdat-i-nastroit-podpiski
Далі копіюємо id підписного товару, нижче показано, де його взяти:
Для генерації посилання на оплату підписки вам необхідно встановити значення (id підписного товару) змінної prodamus_subscription, одразу після цього з'явиться змінна prodamus_pay_url.

Змінну prodamus_pay_url можна вивести на екран посиланням або розмістити на кнопці з текстом "Сплатити". Посилання має вигляд: https://payform.ru/7p3JR8/
Обробка результату відбувається так само, як і при разовій оплаті (читай вище).
Після успішної підписки користувачу додасться змінна з номером телефону, введеним при оплаті, customer_phone. Номер телефону потрібен для керування підпискою.
customer_phone потрібен для керування підпискою, якщо не передано customer_email
Як створити посилання на підписку функцією get_prodamus_subscription_url
Розглянемо інший спосіб сформувати посилання на оплату товару за підпискою.
Створюємо підписний товар у кабінеті Продамус. Детальна інструкція, як це зробити: https://help.prodamus.ru/payform/rekurrent-i-kluby/kak-sozdat-i-nastroit-podpiski
Далі копіюємо id підписного товару, нижче показано, де його взяти:
Для отримання посилання для оплати товару за підпискою в Калькуляторі вказуємо функцію
get_prodamus_subscription_url(subscription_id, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)
Приклад 1: Посилання на оплату товару за підпискою

link = get_prodamus_subscription_url(subscription_id, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)
Параметри функції:
subscription_id
ID товару за підпискою. Отримати ID можна скопіювавши в кабінеті Продамус (обов'язковий параметр)
product_name
Назва товару. (обов'язковий параметр)
expired
час життя посилання на оплату, у форматі дд.мм.рррр (наприклад 25.01.2021). Також можна в полі "Калькулятор" вказати: expired = current_date + 2 (посилання буде дійсне 2 дні до 00:00). expired також можна вказати дату з точним часом, через пробіл, у форматі вказати у форматі (наприклад: 25.01.2021 12:23). Також можна використовувати стандартні змінні, наприклад задамо час дії посилання 30 хвилин:
time = current_time + 30
expired = "#{current_date} #{time}"
Щоб пропустити цей параметр, передайте замість нього пару одинарних або подвійних лапок, або значення None
customer_phone
номер телефону покупця, не обов'язково, якщо передано параметр customer_email Щоб пропустити цей параметр, передайте замість нього одинарні або подвійні лапки.
customer_email
емейл покупця, не обов'язково, якщо передано параметр customer_phone Щоб пропустити цей параметр, передайте замість нього одинарні або подвійні лапки.
discount
розмір знижки. Передаємо параметр число або число з крапкою: 25 або 63.5 Щоб пропустити цей параметр, передайте замість нього одинарні або подвійні лапки.
description
опис товару (якщо не вказати, заповнюється 'Оплата рахунку order_id') Щоб пропустити цей параметр, передайте замість нього одинарні або подвійні лапки.
extra_params
додаткові параметри, яких немає в цій функції.
Можливі додаткові параметри можна переглянути за посиланням у документації роботи з API платіжної системи https://help.prodamus.ru/payform/integracii/rest-api/instrukcii-dlya-samostoyatelnaya-integracii-servisov
Приклад: extra_params = {"payments_limit": "3"}
Щоб пропустити цей параметр, передайте замість нього пару одинарних/ пару подвійних лапок або значення None.
products_for_receipt
Рядок від 50 до 4000 символів у форматі "опис замовлення - вартість - посилання на ресурс, що купується”.
Наприклад:
“Курс ‘Риболовля на ляща’, вартість 4999 рублів, посилання на сторінку курсу: https://www.lovilescha.ru/courses/poimai_kilogram/".
Обов'язковий, якщо у вас немає своєї онлайн-каси, для фіскалізації оплат через Prodamus.
extra_params = {"payments_limit": "3"}
products_for_receipt = "Курс ‘Риболовля на ляща’, вартість щомісячної підписки 2000 рублів, посилання на сторінку курсу: https://www.lovilescha.ru/courses/poimai_kilogram/"
link_prodamus_sub = get_prodamus_subscription_url(618988, 'Курс ‘Риболовля на ляща’', '27.03.2023 17:02', '79167777771', '[email protected]', 20, 'Найкращий курс на ринку', extra_params, products_for_receipt)
Якщо в блоці кілька функцій для отримання посилання і допущено помилку, то значення помилки буде записано в змінній error_payment_func
Помилка буде записана по останній функції в Калькуляторі
Як керувати статусом підписки
Метод працює тільки на реальних підписках, у демо-режимі прив'язки з картою немає
Для керування підпискою має бути передано один з обов'язкових параметрів customer_phone або customer_email.
Для можливості відписки користувача від підписки потрібно створити блок і викликати функцію: 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" "profile_id":"12345" }
url - URL платіжної форми, вказаний у налаштуваннях конструктора secret_key - секретний ключ із налаштувань id_subscription - id підписного товару customer_phone - телефон підписника switcher = 0 це зупинка підписки, якщо передати 1, підписка знову активується. profile_id - ID профілю в системі Продамус
Звертаємо увагу!
Якщо надійде id профілю, то значення буде збережено в змінну profile_id.
profile_id можна передати у функцію delete_subscription_prodamus замість customer_phone або customer_email для скасування підписки.
Приклад налаштування блоку підписки:

Зверніть увагу, що функція повертає status, який зберігаємо і можемо обробити на свій розсуд, при успішній деактивації\активації status дорівнює ok
Функція для керування підпискою
prodamus_subscription_switch_status(subscription_id, switcher, customer_phone, customer_email, profile_id)
id_subscription - id підписного товару
switcher = 0 це зупинка підписки, якщо передати 1, підписка знову активується.
customer_phone - телефон підписника - необов'язковий, якщо передано customer_email
customer_email - email підписника - необов'язковий, якщо передано customer_phone
profile_id - ID профілю в системі Продамус

Приклад: передано параметр customer_phone, customer_email пропущено
stat = prodamus_subscription_switch_status('618117', '0', '75431312321')
Приклад 2: передано параметр customer_email, customer_phone пропущено
stat = prodamus_subscription_switch_status('618117', '0', '', '[email protected]')
Функція поверне ok, якщо все пройшло успішно, або опис помилки
Керування знижками в підписці
Функція задає розмір знижки на наступні платежі за підпискою. Знижка може бути встановлена на обмежену та необмежену кількість списань.
prodamus_subscription_discount(subscription_id, discount, customer_phone, num, profile_id) де: subscription_id - ID підписки discount - десяткове число з точністю до двох знаків після крапки, значення має бути більшим за нуль і не перевищувати базову вартість підписки customer_phone - номер телефону клієнта у форматі: +79999999999 (необов'язковий параметр, якщо є змінна customer_email (з'являється після першої оплати опис вище)) num - Кількість оплат, на які діятиме знижка (необов'язковий параметр, якщо не передавати, то кількість оплат зі знижкою не обмежена)
profile_id - ID профілю в системі Продамус При успішному виконанні запиту функція поверне 'ok', якщо запит виконується з помилкою, то функція поверне її опис.
Розмір знижки та інтервал перезаписуються ТІЛЬКИ якщо функцію викликати повторно з новими значеннями!
Приклади:
1. Оформлення знижки на всі наступні автоплатежі в розмірі 1р (номер телефону не вказується, оскільки буде автоматично взято з змінної customer_phone, а кількість списань зі знижкою за замовчуванням — на весь період підписки)
r = prodamus_subscription_discount('624034', '1')
2. Оформлення знижки 2р на наступні 3 списання (номер телефону замінено порожніми лапками, оскільки буде автоматично взято з змінної customer_phone)
r = prodamus_subscription_discount('624034', '2', '', '3')
3. Приклад оформлення знижки у вигляді числа з дробовою частиною до сотих (роздільник — крапка), числові дані вказуються без лапок, номер телефону передаємо через змінну

r = prodamus_subscription_discount(#{prodamus_subscription}, 10.25, #{customer_phone}, 3)
Як встановити дату наступного платежу за підпискою
За допомогою цього методу можна зсунути дату наступного платежу за підпискою. Зсувати дату можна лише "в майбутнє" відносно поточної встановленої дати наступного платежу. Тим самим збільшуючи термін перебування в клубі.
Наприклад, можна застосовувати як бонус для підписників.
Для цього потрібно використати функцію:
prodamus_subscription_payment_date(subscription_id, date, customer_phone, profile_id)
де:
subscription_id - id підписки date - дата у форматі дд.мм.рррр чч:мм або дд.мм.рррр, тоді час буде 00:00 customer_phone - не обов’язковий, якщо не передати, підтягнеться зі змінної customer_phone, якщо і там не знайде, то не спрацює profile_id - ID профілю в системі Продамус
Як передати параметри в Продамус
Щоб передати в Продамус потрібні вам параметри (наприклад, дата старту підписки, відключення розстрочки тощо), у назві змінної дописуйте на початку prodamus_
Тоді під час формування посилання на оплату ці параметри будуть передаватися в платіжну систему автоматично.
Як тестувати оплату
Тестуємо тільки оплату!
Щоб під час тестування інтеграції та налаштування воронок на оплату з вашого рахунку не списувалися кошти, можна скористатися тестовими картками
Спочатку переведіть свою платіжну сторінку в ДЕМО режим ⤵
Не забудьте натиснути кнопку "Зберегти"

Щоб провести тестовий платіж, ви можете скористатися тестовими рахунками
Тестові картки Ощадбанку:
МИР Номер картки 2202 2050 0001 2424 Дата закінчення строку дії 05/35 Перевірочний код на звороті 669
MasterCard Номер картки 5469 9801 0004 8525 Дата закінчення строку дії 05/26 Перевірочний код на звороті 041 Перевірочний код 3-D Secure 111111
Visa Номер картки 4006 8009 0096 2514 Дата закінчення строку дії 05/26 Перевірочний код на звороті 941 Перевірочний код 3-D Secure 111111
! Під час оплати з тестових рахунків усі налаштовані воронки та інтеграції спрацюють так само, як і при звичайній оплаті !
Форму протестовано
Для прийому оплат реальними грошима необхідно перевести форму в робочий режим. Тобто перевести повзунок перемикання демо-режиму в положення, щоб він став блідо-червоним
Last updated
