Как подключить 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 | (міндетті) төлем сомасы |
As variáveis
discount_value,customer_phone,customer_emailelink_expiredtambém são relevantes para assinaturas.

Exemplo de implementação.
No primeiro bloco, definimos o valor do pagamento:

Na próxima etapa, exibimos o link prodamus_pay_url onde for necessário:

A variável prodamus_available_payment_methods é definida antes de declarar payment_sum.
Valores possíveis:
| AC | Pagamento com cartão emitido na Rússia |
| ACkz | Pagamento com cartão do Cazaquistão |
| ACf | Pagamento com cartões dos países da CEI, exceto Rússia |
| ACEURNMBX | Pagamento com cartão EUR de todos os países, exceto Rússia e Bielorrússia |
| SBP | Pagamento rápido, sem inserir dados do cartão. Para cartões russos |
| QW | Qiwi wallet |
| PC | YooMoney |
| GP | Terminal de pagamento |
| sbol | Sberbank Online |
| invoice | Pagamento por fatura |
| installment | Parcelamento via Prodamus |
| installment_5_21 | Parcelamento via Prodamus em 3 meses |
| installment_6_28 | Parcelamento via Prodamus em 6 meses |
| installment_10_28 | Parcelamento via Prodamus em 10 meses |
| installment_12_28 | Parcelamento via Prodamus em 12 meses |
| installment_0_0_3 | Parcelamento via Tinkoff em 3 meses |
| installment_0_0_4 | Parcelamento via Tinkoff em 4 meses |
| installment_0_0_6 | Parcelamento via Tinkoff em 6 meses |
| installment_0_0_10 | Parcelamento via Tinkoff em 10 meses |
| installment_0_0_12 | Parcelamento via Tinkoff em 12 meses |
| installment_0_0_24 | Parcelamento via Tinkoff em 24 meses |
| installment_0_0_36 | Parcelamento via Tinkoff em 36 meses |
| credit | Crédito via Tinkoff |
| vsegdada_installment_0_0_4 | Parcelamento via “VsegdaDa” em 4 meses (não funciona com available_payment_methods) |
| vsegdada_installment_0_0_6 | Parcelamento via “VsegdaDa” em 6 meses |
| vsegdada_installment_0_0_10 | Parcelamento via “VsegdaDa” em 10 meses |
| vsegdada_installment_0_0_12 | Parcelamento via “VsegdaDa” em 12 meses |
| vsegdada_installment_0_0_24 | Parcelamento via “VsegdaDa” em 24 meses |
| vsegdada_installment_0_0_36 | Parcelamento via “VsegdaDa” em 36 meses |
| sbrf_installment_0_0_6 | Parcelamento via Sberbank em 6 meses |
| sbrf_installment_0_0_10 | Parcelamento via Sberbank em 10 meses |
| sbrf_installment_0_0_12 | Parcelamento via Sberbank em 12 meses |
| sbrf_installment_0_0_24 | Parcelamento via Sberbank em 24 meses |
| sbrf_installment_0_0_36 | Parcelamento via Sberbank em 36 meses |
| otp_installment_0_0_6 | Parcelamento via “Banco OTP” em 6 meses |
| otp_installment_0_0_10 | Parcelamento via “Banco OTP” em 10 meses |
| otp_installment_0_0_12 | Parcelamento via “Banco OTP” em 12 meses |
| otp_installment_0_0_24 | Parcelamento via “Banco OTP” em 24 meses |
| otp_installment_0_0_36 | Parcelamento via “Banco OTP” em 36 meses |
| mts_installment_0_0_6 | Parcelamento via “Banco MTS” em 6 meses |
| mts_installment_0_0_10 | Parcelamento via “Banco MTS” em 10 meses |
| mts_installment_0_0_12 | Parcelamento via “Banco MTS” em 12 meses |
| mts_installment_0_0_24 | Parcelamento via “Banco MTS” em 24 meses |
| mts_installment_0_0_36 | Parcelamento via “Banco MTS” em 36 meses |
| monetaworld | Cartões de bancos mundiais, exceto Rússia |
| sbrf_bnpl | Parcelamento via Sber |
É permitido especificar vários valores separados por barra vertical.
Por exemplo:
prodamus_available_payment_methods = "AC|PC|QW"
prodamus_currency – este é outro parâmetro adicional que permite exibir o valor em uma moeda específica.
Moedas possíveis:
-
kzt– para tenge -
eur– para euro -
usd– para dólar
Dessa forma, o valor indicado no link estará na moeda selecionada.
Ao receber o callback payment_callback é necessário prestar atenção aos parâmetros currency e currency_sum, que indicam a moeda e o valor.
Se não for especificado, será redirecionado para uma página sem métodos de pagamento.
Os métodos de pagamento podem ser ativados através do suporte. Os métodos ativados podem ser visualizados nas configurações da página ou testados gerando um link de pagamento.


Como processar o resultado
Pagamento bem-sucedido
Importante: após um pagamento bem-sucedido ou malsucedido, o bot recebe callbacks, com os quais você pode determinar se o pagamento foi concluído com sucesso.
Os callbacks aparecem no sistema como mensagens do usuário, mas o usuário não pode enviá-las. Eles consistem em uma combinação de chave secreta e status. Por exemplo:
453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_success
ou
453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_fail
Após um pagamento bem-sucedido, a variável prodamus_payment_completed assume automaticamente o valor True.
Observação: Os callbacks chegam com um pequeno atraso, portanto, é recomendável enviar uma mensagem ao usuário após enviar o link:
“Após efetuar o pagamento, aguarde a confirmação de que o pagamento foi concluído com sucesso.”
Estrutura do callback
Para links criados através do botão Pagar ou da função na Calculadora, após o pagamento, o bot recebe automaticamente um callback. Ele contém:
<chave_secreta>_success <valor_do_pagamento>
Por exemplo:
ovg58keefc_success
-
ovg58keefc– chave secreta completa do sistema de pagamento -
_success– resultado do processamento da solicitação (pagamento bem-sucedido)
Uso prático
Você pode processar o pagamento bem-sucedido através de um bloco condicional e exibir a mensagem correspondente ao usuário.

O tipo de comparação deve ser "Full match" / "Correspondência exata"
Para realizar um novo pagamento, é obrigatório zerar a variável payment_sum e excluir o link criado anteriormente. Só então atribua um novo valor à variável payment_sum e obtenha o link atualizado.
Desativação/Reativação de assinatura
Além disso, o sistema Prodamus possui notificações sobre a ativação ou desativação de uma assinatura:

“Assinatura desativada pelo usuário” – se a assinatura foi cancelada manualmente (por exemplo, em caso de cancelamento da assinatura).
Esta notificação pode chegar antes do término do período pago atual. A ação depende da sua decisão: ignorar, monitorar ou tentar reconquistar o usuário.
“Assinatura reativada pelo usuário” – a assinatura foi restaurada.
Esta notificação pode chegar se o usuário restaurar a assinatura antes do término do período pago atual. A ação depende da sua decisão: ignorar ou remover da lista de monitoramento.
“Desativação de assinatura” – quando a assinatura é cancelada após várias tentativas de pagamento malsucedidas.
Salvar valores do callback
Após receber a notificação de pagamento bem-sucedido, o callback do Prodamus é gravado na variável payment_callback, contendo todos os dados do pagamento. Você pode salvar esses dados e usá-los conforme necessário.
Exemplo de 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"
}
Ao criar o link, você pode especificar as variáveis product_name e payment_description. Nesse caso, quando o callback chegar, você pode obtê-las da seguinte forma:
product = get(payment_callback,'products[0][name]')
description = get(payment_callback,'customer_extra')

Atenção: o último valor é atribuído à variável payment_sum, que é colocada após as variáveis opcionais: payment_description, product_name.
Você pode obter o valor da seguinte forma:
summa = get(payment_callback, 'sum')
Callbacks disponíveis
Além dos callbacks principais de pagamento bem-sucedido, mensagens que o usuário não vê chegam no chat da seguinte forma:
callbacks
- Assinante desativou a assinatura (mais detalhes aqui)
- Assinante reativou a assinatura (mais detalhes aqui)
- Assinatura concluída
- Pagamento malsucedido - assinatura com explicação (na captura de tela acima)
- Notificação de cobrança futura - data e hora da próxima cobrança
- Solicitação de parcelamento com status
Exemplos de callbacks no diálogo com o cliente
- Assinante desativou a assinatura
- Assinante reativou a assinatura
- Assinatura concluída
- Pagamento malsucedido - Saldo insuficiente.
- Pagamento malsucedido - Cartão vencido.
- Pagamento malsucedido - Limite do cartão excedido.
- Pagamento malsucedido - Cartão perdido
- Pagamento malsucedido - Erro de sistema
- Pagamento malsucedido - Operação recusada. Entre em contato com o banco emissor do cartão.
- Pagamento malsucedido - Recusa na realização da operação pelo banco emissor.
- Pagamento malsucedido - Recusa na realização da operação pelo banco.
- Notificação de cobrança futura - dd.mm.aaaa hh:mm
- Solicitação de parcelamento aprovada
- Solicitação de parcelamento cancelada
- Solicitação de parcelamento recusada
Você pode configurar o envio de qualquer mensagem ao usuário conforme desejar. Por exemplo, enviar uma notificação em caso de falha no pagamento automático.
Os blocos de resposta para uma mensagem com um motivo específico de pagamento malsucedido podem ser configurados da seguinte forma:

Para enviar uma notificação sobre todos os pagamentos malsucedidos, independentemente do motivo, você pode configurar da seguinte forma:

Em todos os callbacks, se o texto contiver a palavra «Pagamento malsucedido», o usuário receberá uma mensagem com o texto que você definiu.
Como fazer um pagamento por assinatura
Como criar uma assinatura
Para criar uma assinatura, primeiro você precisa criar um produto de assinatura.
Instruções completas: Como criar e configurar uma assinatura
Em seguida, copiamos o ID do produto de assinatura. Por exemplo, abaixo está indicado onde obtê-lo:
Para criar um link de pagamento de assinatura, é necessário definir o ID do produto de assinatura na variável prodamus_subscription. Depois disso, a variável prodamus_pay_url aparecerá automaticamente.
A variável prodamus_pay_url pode ser exibida na tela como um link ou colocada em um botão com o texto «Pagar». Exemplo de link: https://payform.kz/7p3JR8/
O processamento do resultado ocorre da mesma forma que no pagamento único (conforme lido acima).
Após uma assinatura bem-sucedida, a variável customer_phone inserida pelo usuário durante o pagamento é adicionada. O número de telefone é necessário para gerenciar a assinatura.
Se customer_email não for fornecido, customer_phone é obrigatório para gerenciar a assinatura.
Como criar um link para assinatura com a função get_prodamus_subscription_url
Vamos considerar outro método para criar um link de pagamento de assinatura para um produto.
- Crie um produto de assinatura no painel do Prodamus.
Instruções completas podem ser encontradas no link:
Como criar e configurar uma assinatura - Em seguida, copiamos o ID do produto de assinatura. Por exemplo, abaixo está indicado onde obtê-lo:
Para obter o link de pagamento do produto por assinatura na Calculadora, especificamos a função
get_prodamus_subscription_url(subscription_id, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)
Calculadora
Exemplo 1: Link de pagamento para produto por assinatura

Descrição dos parâmetros
link = get_prodamus_subscription_url(subscription_id, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)
Parâmetros da função:
| Parâmetro | Valor do parâmetro |
|---|---|
subscription_id |
ID do produto de assinatura – pode ser copiado do painel do Prodamus (parâmetro obrigatório). |
product_name |
Nome do produto (parâmetro obrigatório). |
expired |
Prazo de validade do link de pagamento – no formato dd.mm.aaaa (por exemplo, 25.01.2021). Também pode ser especificado no campo «Calculadora»:
O parâmetro Variáveis padrão também podem ser usadas, por exemplo, para definir o prazo de validade do link para 30 minutos:
Se você quiser pular este parâmetro, pode passar aspas simples ou duplas, ou o valor |
customer_phone |
Número de telefone do pagador – opcional, se o parâmetro Se você quiser pular este parâmetro, passe aspas simples ou duplas. |
customer_email |
E-mail do pagador – opcional, se o parâmetro Se você quiser pular este parâmetro, passe aspas simples ou duplas. |
discount |
Valor do desconto – o parâmetro pode ser passado como um número inteiro ou decimal: 25 ou 63.5. Se você quiser pular este parâmetro, passe aspas simples ou duplas. |
description |
Descrição do produto – se não for especificada, o padrão é Se você quiser pular este parâmetro, passe aspas simples ou duplas. |
extra_params |
Parâmetros adicionais que não estão nesta função. Exemplo:
Se você quiser pular este parâmetro, pode passar aspas simples/duplas ou o valor |
products_for_receipt |
String de 50 a 4000 caracteres, no formato: Exemplo: Este parâmetro é obrigatório se você não tiver seu próprio caixa online e precisar fiscalizar os pagamentos através do Prodamus. |
Exemplo de código para copiar
extra_params = {"payments_limit": "3"}
products_for_receipt = "Curso 'Curso de pesca de dourada', assinatura mensal no valor de 2000 tenge, link para a página do curso: https://www.lovilescha.ru/courses/poimai\_kilogram/" ;
link_prodamus_sub = get_prodamus_subscription_url(618988, 'Curso 'Curso de pesca de dourada'', '27.03.2023 17:02', '79167777771', '[email protected]', 20, 'O melhor curso do mercado', extra_params, products_for_receipt)
Se ocorrer um erro ao obter o link através de várias funções em um bloco, o valor do erro é gravado na variável
error_payment_func.O erro é registrado na Calculadora para a última função.
Como gerenciar o status da assinatura
Este método é apenas para assinaturas reais, não há vinculação de cartão no modo demo.
Para gerenciar a assinatura, é obrigatório fornecer o parâmetro customer_phone ou customer_email.
Para cancelar a assinatura de um usuário, é necessário criar um bloco e chamar a seguinte função:
delete_subscription_prodamus
Exemplo de parâmetros:
{
"customer_phone": "#{customer_phone}",
"id_subscription":"#{prodamus_subscription}",
"url":"https://demo.payform.ru/",
"secret_key":"453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66",
"switcher":"0",
"profile_id":"12345"
}
-
url– URL do formulário de pagamento, obtido nas configurações do construtor -
secret_key– chave secreta obtida nas configurações -
id_subscription– ID do produto de assinatura -
customer_phone– telefone do titular da assinatura -
switcher– controle da assinatura:0– cancelar assinatura,1– reativar assinatura -
profile_id– ID do perfil no sistema Prodamus
Observação:
Se o ID do perfil chegar, ele será salvo na variável profile_id.
O profile_id pode ser passado para a função em vez de customer_phone ou customer_email para cancelar a assinatura.
Exemplo: configuração de blocos de assinatura

Observe que a função retorna status, que pode ser salvo e processado conforme desejado. Ao cancelar ou reativar a assinatura com sucesso, status = ok.
Função para gerenciar a assinatura
prodamus_subscription_switch_status(subscription_id, switcher, customer_phone, customer_email, profile_id) Parâmetros:
subscription_id – ID do produto de assinatura
switcher – controle da assinatura: 0 – cancelar assinatura, 1 – reativar assinatura
customer_phone – telefone do titular da assinatura; opcional, se customer_email for especificado
customer_email – endereço de e-mail do titular da assinatura; opcional, se customer_phone for especificado
profile_id – ID do perfil no sistema Prodamus

Exemplo 1: parâmetro customer_phone fornecido, customer_email omitido:
stat = prodamus_subscription_switch_status('618117', '0', '75431312321')
Exemplo 2: parâmetro customer_email fornecido, customer_phone omitido:
stat = prodamus_subscription_switch_status('618117', '0', '', '[email protected]')
A função retorna
okse toda a operação for concluída com sucesso ou retorna a descrição do erro em caso de falha.
Gerenciamento de descontos em assinaturas
Esta função define o valor do desconto para os próximos pagamentos de uma assinatura. O desconto pode ser aplicado a um número limitado ou ilimitado de pagamentos.
prodamus_subscription_discount(subscription_id, discount, customer_phone, num, profile_id)
Parâmetros:
-
subscription_id– ID da assinatura -
discount– número decimal com duas casas decimais; o valor deve ser maior que zero e não exceder o custo base da assinatura -
customer_phone– número de telefone do cliente, formato:+79999999999(opcional, se a variávelcustomer_emailexistir; ela aparece após o primeiro pagamento) -
num– número de pagamentos aos quais o desconto será aplicado (opcional; se não for especificado, o desconto será aplicado a todos os pagamentos) -
profile_id– ID do perfil no sistema Prodamus
Se a solicitação for bem-sucedida, a função retorna 'ok'; se ocorrer um erro, a função retorna a descrição do erro.
O valor do desconto e o intervalo são sobrescritos apenas quando a função é chamada novamente com novos valores!
Exemplos:
1. Conceder um desconto de 1₽ em todos os próximos pagamentos automáticos (o número de telefone não é especificado, pois é obtido automaticamente da variável customer_phone; o valor do desconto é aplicado por padrão a todo o período da assinatura):
r = prodamus_subscription_discount('624034', '1')
2. Exemplo de concessão de desconto de 2₽ nos próximos 3 pagamentos (o número de telefone é passado com aspas vazias, pois é obtido automaticamente da variável customer_phone):
r = prodamus_subscription_discount('624034', '2', '', '3')
3. Exemplo de especificação de desconto com fração decimal (separador é o ponto, os valores são especificados sem aspas), o número de telefone pode ser passado através de uma variável.

r = prodamus_subscription_discount(#{prodamus_subscription}, 10.25, #{customer_phone}, 3)
Como definir a data do próximo pagamento de uma assinatura
Este método permite adiar a data do próximo pagamento de uma assinatura. A data só pode ser adiada para o futuro em relação à data do próximo pagamento atualmente definida, aumentando assim o período de participação no clube.
Por exemplo, isso pode ser usado como um bônus para os assinantes.
Para isso, é necessário usar a seguinte função:
prodamus_subscription_payment_date(subscription_id, date, customer_phone, profile_id)
Parâmetros:
-
subscription_id– identificador da assinatura -
date– data no formato dd.mm.aaaa hh:mm ou dd.mm.aaaa; se apenas dd.mm.aaaa for fornecido, a hora será 00:00 -
customer_phone– opcional; se não for especificado, será obtido da variávelcustomer_phone; se não for encontrado, a função não funcionará -
profile_id– ID do perfil no sistema Prodamus
Como enviar parâmetros para o Prodamus
Para enviar os parâmetros necessários (por exemplo, data de início da assinatura, desativar parcelamento, etc.) para o sistema Prodamus, adicione o prefixo prodamus_ ao nome da variável.
Em seguida, ao criar o link de pagamento, os parâmetros nesta variável serão automaticamente enviados para o sistema de pagamento.
Como testar o pagamento
Apenas testamos o pagamento!
Ao configurar a integração e os funis de pagamento, você pode usar cartões de teste para que o dinheiro não seja debitado da sua conta.
Primeiro, coloque sua página de pagamento no modo DEMO ⤵
Não se esqueça de clicar no botão "Salvar".

Você pode usar contas de teste para fazer um pagamento de teste.
Cartões de teste do Sberbank:
MIR
Número do cartão: 2202 2050 0001 2424
Validade: 05/35
Código de verificação no verso (CVV): 669
MasterCard
Número do cartão: 5469 9801 0004 8525
Validade: 05/26
Código de verificação no verso (CVV): 041
Código de verificação 3‑D Secure: 111111
Visa
Número do cartão: 4006 8009 0096 2514
Validade: 05/26
Código de verificação no verso (CVV): 941
Código de verificação 3‑D Secure: 111111
❗️Ao fazer um pagamento com contas de teste, todos os funis e integrações configurados funcionam como em um pagamento normal❗️
Formulário verificado
Para aceitar pagamentos reais, o formulário precisa ser colocado no modo de funcionamento. Ou seja, o interruptor do modo demo deve ser colocado no estado vermelho aberto.