Як підключити Prodamus
Для підключення Prodamus вам знадобиться URL-адреса платіжної форми та секретний ключ.
URL-адреса платіжної форми надається після реєстрації, її приклад: demo.payform.ru.
Секретний ключ можна отримати в особистому кабінеті, там же необхідно вказати URL-адресу, на яку надсилатимуться сповіщення (notification).

Повна інструкція про те, як це зробити
Адреса для сповіщень:
https://chatter.mavibot.ai/prodamus\_callback/result
Цю адресу необхідно вказати в налаштуваннях у двох місцях.
На головній сторінці налаштувань можна вибрати режим роботи платіжної форми: демо-режим без платежів або режим прийому платежів.

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

Адреса для сповіщень:
https://chatter.mavibot.ai/prodamus\_callback/result
Для налаштування роботи з платежами за підпискою перейдіть на вкладку «Підписки» та вкажіть адресу для сповіщень:
https://chatter.mavibot.ai/prodamus\_callback/result

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

Потім достатньо ввести вищезгадані дані у форму:

Важливо! При вказівці URL-адреси платіжної форми не додавайте https://.
На цьому підключення завершено. Тепер розглянемо, як використовувати цей функціонал.
Як створити посилання на оплату
Кнопка з функцією «Оплатити»
Посилання на оплату можна створити за допомогою кнопки з функцією «Оплатити».
Про те, як створити таку кнопку, розповідається в цій статті.
Тепер розглянемо всі можливі параметри цієї кнопки.
Обов'язкові параметри кнопки «Оплатити» для Prodamus
Для створення посилання на оплату в налаштуваннях кнопки необхідно вказати обов'язкові параметри:
«Сума», «Назва товару», а також параметр «Оплачений контент» — якщо у вас немає власної онлайн-каси і ви хочете отримувати чек від Prodamus.
При переході на сторінку замовлення інформація про товар та його ціну буде попередньо заповнена, а клієнту залишиться лише ввести свої контактні дані.
Якщо в налаштуваннях кнопки вказані Email та/або телефон користувача, на сторінці замовлення будуть відображені контактні дані платника, а також інформація про товар та його ціну.

Поле «Текст» – цей текст буде відображено на кнопці з посиланням на оплату в повідомленні.
Поле «Функція» – для створення кнопки з посиланням на оплату вибираємо функцію «Оплатити».
Поле «Платіжна система» – у списку відображаються платіжні системи, підключені до проєкту.
Якщо до проєкту не підключено жодної платіжної системи, цей тип кнопки буде недоступний.
Поле «Назва товару» (обов'язкове) – необхідно вказати точну назву товару. Наприклад: не «Телефон», а «Смартфон Xiaomi, модель …».
Примітка: у назві товару не можна використовувати подвійні лапки; видаліть їх або замініть одинарними.
Поле «Сума» (обов'язкове) – вказуємо ціну товару.
Меню «Додаткова інформація» – при натисканні на цю кнопку відкриваються додаткові поля для створення посилання:
- Опис замовлення
- Знижка в рублях
- Змінна Email покупця
- Змінна номера телефону покупця
- Час дії посилання
- ID товару для підписки (для автоплатежу)
- Оплачений контент
Чекбокс «Сповіщення про натискання» – можна позначити для відстеження переходу за посиланням на оплату. У цьому випадку при натисканні кнопки в діалог клієнта в Сейлботі надійде повідомлення про те, що було здійснено перехід за посиланням.

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

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

Поле «Опис замовлення» – інформація, введена в це поле, буде відображена на платіжній сторінці в полі Додаткові дані.
Поле «Знижка» – тут можна вказати розмір знижки в рублях або в рублях і копійках. Для вказівки копійок використовуйте крапку як роздільник: 50.99
На платіжній сторінці в полі Сума до сплати буде відображено суму з урахуванням знижки, а основна ціна товару буде перекреслена.
Поле «Змінна Email покупця» (необов'язкове, якщо вказано номер телефону) – тут вказується Email користувача (клієнта). Можна також використовувати змінну, в якій зберігається Email, наприклад: #{email}
Поле «Змінна номера телефону покупця» (необов'язкове, якщо вказано Email) – тут можна використовувати змінну, в якій вказано номер телефону покупця, формат: 79000000000, наприклад: #{phone}
Обов'язково має бути Email та/або телефон.
Поле «Час дії посилання» – можна вказати дату у форматі дд.мм.рррр гг:хв (наприклад, 25.01.2021 11:00) або встановити час закінчення дії посилання за допомогою змінної. Наприклад: #{link_expired}
Поле «ID товару для підписки» – для створення автоплатежу вкажіть значення ID товару. Для створення підписки необхідно створити підписний товар.
Повна інструкція: Створення та налаштування підписок Prodamus
Якщо вказано ID товару для підписки, сума платежу не враховується. Інформація про товар береться з картки товару в кабінеті Prodamus.
Номер телефону, вказаний у платежі, буде необхідний для керування підпискою.
Якщо вказано ID товару для підписки, при успішному платежі в колбеку буде передано ID цього товару.
Поле «Оплачений контент» (умовно обов'язкове) – ці дані необхідні для фіскалізації платежу через Prodamus, якщо у вас немає власної онлайн-каси. У це поле вказується опис покупки, ціна та посилання на контент.
Наприклад: Курс 'Плетіння кіс', ціна 3000 рублів, посилання на сторінку курсу: https://nbu.su/krasota/master-po-pleteniyu-kos/?yclid=13602995275739430911
Кнопка з функцією «Оплатити»
Якщо ви вкажете час дії посилання, відбудеться наступне:
Якщо користувач запросить посилання на оплату протягом терміну його дії (тобто час дії посилання ще не закінчився) і він перебуває в діалозі, оплата буде неможливою, і йому буде показано наступне повідомлення:

Термін дії посилання має бути пізніше поточної дати, інакше клієнт не зможе здійснити оплату за цим посиланням.
2. Коли користувач запитує посилання, але воно наразі неактивне
У цьому випадку кнопка просто не відображається. У змінних клієнта з'явиться змінна "error_payment_button", значення якої буде наступним:
&#xNAN;"Помилка: Термін дії посилання має бути пізніше поточної дати".
Щоб користувач міг правильно здійснити оплату, рекомендується додатково обробити таку ситуацію.
Створіть такий умовний блок:
Якщо надійде наступне повідомлення:
error_payment_button == "Помилка: Термін дії посилання має бути пізніше поточної дати"
Тоді відобразіть наступний текст:
&#xNAN;"Вибачте, ви не змогли вчасно здійснити оплату, посилання на оплату стало недійсним".


Змінні клієнта, які автоматично створюються при використанні кнопки з функцією «Оплатити»
У момент, коли користувач отримує блок з кнопкою «Оплатити», для клієнта автоматично створюються змінні:
Службова змінна клієнта __payments – ця змінна зберігає суму та ідентифікатор створеного посилання і необхідна для ідентифікації хука, що надходить від платіжної системи.
Службову змінну клієнта
__paymentsне можна видаляти або змінювати!
Змінна клієнта 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.kz/7p3JR8/
Калькулятор
Мысал 1:

Параметрлердің сипаттамасы
your_variable =`` 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 |
Төлем сілтемесінің жарамдылық уақыты – Нақты уақытты көрсету де мүмкін: Стандартты айнымалыларды да қолдануға болады, мысалы, сілтеменің жарамдылығын 30 минутқа орнату:
Егер бұл параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша, қос тырнақша немесе |
customer_phone |
Сатып алушының телефон нөмірі – міндетті емес, егер customer_email параметрі берілсе.Осы параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша немесе қос тырнақша беруге болады. |
customer_email |
Сатып алушының Email мекенжайы – міндетті емес, егер customer_phone параметрі берілсе.Осы параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша немесе қос тырнақша беруге болады. |
discount |
Жеңілдік мөлшері – параметрді бүтін сан немесе нүктесі бар сан ретінде беруге болады: 25 немесе 63.5.Бұл параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша немесе қос тырнақша беруге болады. |
description |
Тауар сипаттамасы (егер көрсетілмесе, автоматты түрде 'Оплата счета order_id' толтырылады).Осы параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша немесе қос тырнақша беруге болады. |
extra_params |
Қосымша параметрлер, осы функцияда жоқ параметрлер. Мысалы:
Бұл параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша/қос тырнақша немесе |
products_for_receipt |
50-тен 4000 символға дейінгі жол форматында Бұл параметр міндетті, егер сізде өзіңіздің онлайн кассаңыз болмаса, 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
Бұл мысалда:
-
extra_params– қосымша параметрлер (мысалы, төлем шегі). -
products_for_receipt– чекте көрсетілетін тауар туралы ақпарат. -
get_prodamus_payment_urlфункциясы арқылы төлемге сілтеме жасалады.
Егер блокта бірнеше сілтеме алу функциялары болса және қате жіберілсе, қате мәні
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 | Сатып алушының Email мекенжайы |
| link_expired | Төлем сілтемесінің жарамдылық уақыты – |
| link_expired | Сонымен қатар, нақты уақытты көрсетуге болады, формат: |
| currency |
Төлем валютасы, әдепкі бойынша
Бұл параметр кіші әріптермен берілуі керек. |
| payment_title | Төлем тақырыбы (127 символға дейін). Егер көрсетілмесе, автоматты түрде келесі мәтінмен толтырылады: |
| payment_description | Төлемнің қысқаша сипаттамасы (127 символға дейін) |
| locale | Төлем бетінің тілі – |
| products_for_receipt |
50-тен 4000 символға дейінгі жол форматында Бұл міндетті параметр, егер сізде өзіңіздің онлайн кассаңыз болмаса, Prodamus арқылы төлемді фискализациялау үшін қажет. |
| payment_sum | (міндетті) төлем сомасы |
discount_value,customer_phone,customer_emailтаlink_expiredзмінні також актуальні для підписок.

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

На наступному кроці виводимо посилання prodamus_pay_url у потрібному місці:

Змінна prodamus_available_payment_methods визначається до оголошення payment_sum.
Можливі значення:
| AC | Оплата карткою, випущеною в РФ |
| ACkz | Оплата казахстанською карткою |
| ACf | Оплата картками країн СНД, крім РФ |
| ACEURNMBX | Оплата карткою EUR усіх країн, крім Росії та Білорусі |
| SBP | Швидкий платіж, без введення даних картки. Для російських карток |
| QW | Qiwi wallet |
| PC | Юmoney |
| GP | Платіжний термінал |
| sbol | Сбербанк онлайн |
| invoice | Оплата за рахунком |
| installment | Розстрочка через Prodamus |
| installment_5_21 | Розстрочка на 3 місяці через Prodamus |
| installment_6_28 | Розстрочка на 6 місяців через Prodamus |
| installment_10_28 | Розстрочка на 10 місяців через Prodamus |
| installment_12_28 | Розстрочка на 12 місяців через Prodamus |
| installment_0_0_3 | Розстрочка на 3 місяці через Tinkoff |
| installment_0_0_4 | Розстрочка на 4 місяці через Tinkoff |
| installment_0_0_6 | Розстрочка на 6 місяців через Tinkoff |
| installment_0_0_10 | Розстрочка на 10 місяців через Tinkoff |
| installment_0_0_12 | Розстрочка на 12 місяців через Tinkoff |
| installment_0_0_24 | Розстрочка на 24 місяці через Tinkoff |
| installment_0_0_36 | Розстрочка на 36 місяців через Tinkoff |
| credit | Кредит через Tinkoff |
| 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, в яких вказано валюту та суму.
Якщо не вказано, переходить на сторінку без способів оплати.
Способи оплати можна підключити через підтримку. Підключені способи можна перевірити в налаштуваннях сторінки або створивши посилання на оплату.


Як обробити результат
Успішний платіж
Важливо: після успішного або неуспішного платежу боту надходять колбеки (callback), за допомогою яких ви можете визначити, чи платіж був успішним.
Колбеки виглядають у системі як повідомлення від користувача, але користувач не може їх надіслати. Вони мають вигляд комбінації секретного ключа та статусу. Наприклад:
453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_success
або
453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_fail
Після успішного платежу змінна prodamus_payment_completed автоматично набуває значення True.
Примітка: Колбеки надходять із невеликою затримкою, тому після надсилання посилання користувачеві варто надіслати повідомлення:
“Після здійснення платежу зачекайте підтвердження успішної оплати.”
Структура колбеку
Для посилань, створених через кнопку Оплата або функцію в Калькуляторі, після оплати боту автоматично надходить колбек. Він містить:
<секретний_ключ>_success <сума_платежу>
Наприклад:
ovg58keefc_success
-
ovg58keefc– повний секретний ключ платіжної системи -
_success– результат обробки запиту (успішний платіж)
Практичне застосування
Успішний платіж можна обробити за допомогою умовного блоку та показати користувачеві відповідне повідомлення.

Тип порівняння має бути "Full match" / "Повний збіг"
Для повторної оплати обов'язково потрібно скинути змінну payment_sum до нуля та видалити раніше створене посилання. Після цього можна присвоїти змінній payment_sum нове значення та отримати оновлене посилання.
Деактивація/реактивація підписки
Крім того, в системі Prodamus є повідомлення про активацію або зупинку підписки:

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

Барлық сәтсіз төлемдерге, себебіне қарамастан, хабарлама жіберу үшін келесідей баптауға болады:

Барлық коллбэктерде, егер мәтінде «Төлем сәтсіз» деген сөз болса, пайдаланушыға сіз белгілеген мәтінмен хабарлама жіберіледі.
Жазылым бойынша төлем қалай жасауға болады
Жазылым қалай құруға болады
Жазылым жасау үшін, алдымен жазылымдық тауар құру қажет.
Толық нұсқаулық: Қалай жазылым құру және баптау
Содан кейін жазылымдық тауардың ID-сін көшіріп аламыз. Мысалы, төменде қайдан алу керектігі көрсетілген:
Жазылым төлемінің сілтемесін жасау үшін, prodamus_subscription айнымалысына жазылымдық тауардың ID-сін орнату қажет. Осыдан кейін автоматты түрде prodamus_pay_url айнымалысы пайда болады.
prodamus_pay_url айнымалысын экранға сілтеме ретінде шығарып көрсетуге немесе «Төлеу» мәтіні бар батырмаға орналастыруға болады. Сілтеме мысалы: https://payform.kz/7p3JR8/
Нәтижені өңдеу біржолғы төлемдегідей жүзеге асады (жоғарыда оқығандай).
Сәтті жазылымнан кейін пайдаланушыға төлем кезінде енгізілген customer_phone айнымалысы қосылады. Телефон нөмірі жазылымды басқару үшін қажет.
Егер customer_email берілмесе, жазылымды басқару үшін customer_phone міндетті.
get_prodamus_subscription_url функциясымен жазылымға сілтеме қалай жасауға болады
Тауарға жазылым төлемінің сілтемесін құрудың басқа әдісін қарастырайық.
- Продамус кабинетінен жазылымдық тауар құрылады.
Толық нұсқаулықты мына сілтемеден қарауға болады:
Қалай жазылым құру және баптау - Содан кейін жазылымдық тауардың 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-сі – Продамus кабинетінен көшіріп алуға болады (міндетті параметр). |
product_name |
Өнімнің атауы (міндетті параметр). |
expired |
Төлем сілтемесінің жарамдылық уақыты – дд.мм.гггг форматында (мысалы, 25.01.2021). Сондай-ақ, «Калькулятор» өрісінде көрсетуге болады:
Стандартты айнымалыларды қолдануға да болады, мысалы, сілтеменің жарамдылық уақытын 30 минутқа орнату:
Бұл параметрді өткізіп жібергіңіз келсе, орнына бір немесе қос тырнақша, немесе |
customer_phone |
Төлем жасаушының телефон нөмірі – міндетті емес, егер Осы параметрді өткізіп жібергіңіз келсе, орнына бір немесе қос тырнақша беріңіз. |
customer_email |
Төлем жасаушының email-і – міндетті емес, егер Осы параметрді өткізіп жібергіңіз келсе, орнына бір немесе қос тырнақша беріңіз. |
discount |
Жеңілдік мөлшері – параметрді бүтін сан немесе ондық сан ретінде беруге болады: 25 немесе 63.5. Осы параметрді өткізіп жібергіңіз келсе, орнына бір немесе қос тырнақша беріңіз. |
description |
Өнімнің сипаттамасы – көрсетілмесе, әдепкі бойынша Осы параметрді өткізіп жібергіңіз келсе, орнына бір немесе қос тырнақша беріңіз. |
extra_params |
Қосымша параметрлер, бұл функцияда жоқ параметрлер. Мысал:
Осы параметрді өткізіп жібергіңіз келсе, орнына бір/қос тырнақша немесе |
products_for_receipt |
50–4000 символдан тұратын жол, форматы: Мысал: Бұл параметр міндетті, егер өзіңіздің онлайн кассаңыз жоқ болса, төлемдерді 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 параметрінің бірі берілуі тиіс.
Пайдаланушыны жазылымнан шығару үшін блок жасау және келесі функцияны шақыру қажет:
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 функцияға customer_phone немесе customer_email орнына беріліп, жазылымды тоқтатуға болады.
Мысал: жазылым блоктарын баптау

Ескеріңіз, функция status қайтарады, оны сақтап, өз қалауыңыз бойынша өңдеуге болады. Жазылымды сәтті тоқтату немесе қайта белсендіру кезінде status = ok болады.
Функция для управления подпиской
prodamus_subscription_switch_status(subscription_id, switcher, customer_phone, customer_email, profile_id) Параметрлері:
subscription_id – жазылымдық өнімнің ID-сі
switcher – жазылымды басқару: 0 – жазылымды тоқтату, 1 – жазылымды қайта белсендіру
customer_phone – жазылым иесінің телефоны; міндетті емес, егер customer_email көрсетілсе
customer_email – жазылым иесінің email мекенжайы; міндетті емес, егер customer_phone көрсетілсе
profile_id – Продамус жүйесіндегі профиль ID-сі

Мысал 1: 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. Келесі 3 төлемге 2₽ жеңілдік беру мысалы (телефон нөмірі бос тырнақшамен берілген, себебі ол автоматты түрде 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– ідентифікатор підписки -
date– дата у форматі дд.мм.рррр гг:хв або дд.мм.рррр; якщо вказано лише дд.мм.рррр, час буде 00:00 -
customer_phone– необов'язковий; якщо не вказано, береться зі змінноїcustomer_phone; якщо не знайдено, функція не працюватиме -
profile_id– ID профілю в системі Prodamus
Як передати параметри до Prodamus
Щоб передати необхідні параметри (наприклад, дату початку підписки, вимкнення розстрочки тощо) до системи Prodamus, додайте до назви змінної префікс prodamus_.
Після цього, при створенні платіжного посилання, параметри з цієї змінної автоматично передадуться до платіжної системи.
Як протестувати платіж
Тестуємо лише платіж!
Під час налаштування інтеграції та платіжних воронок ви можете використовувати тестові картки, щоб з вашого рахунку не знімалися гроші.
Спочатку переведіть вашу платіжну сторінку в ДЕМО режим ⤵
Не забудьте натиснути кнопку «Зберегти».

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