# Prodamus (KZ)

## **Как подключить Prodamus**

Чтобы подключить Prodamus, вам понадобится URL платежной формы и секретный ключ.

URL платежной формы выдается после регистрации, его пример: `demo.payform.ru`.

Секретный ключ можно взять в личном кабинете, там же нужно указать URL, куда будут отправляться уведомления (notification).

<div data-with-frame="true"><figure><img src="/files/8d302c9de7a1e333b4d7555454034ce82bd1a026" alt=""><figcaption><p>Секретный ключ в настройках платежной формы в личном кабинете платежной системы «Продамус»</p></figcaption></figure></div>

[**Подробная инструкция о том, как это сделать**](https://help.prodamus.ru/payform.ru-onlain-oplaty/prochee/url-dlya-uvedomlenii-i-sekretnyi-klyuch)

Адрес для уведомлений:\
<https://chatter.mavibot.ai/prodamus\\_callback/result>

Этот адрес нужно указать в настройках в двух местах.

На главной странице настроек можно выбрать режим работы платежной формы: демо-режим без оплаты или режим приема платежей.

<div data-with-frame="true"><figure><img src="/files/1d249a8d5fba98afe445935ff738d7e3fe5695a3" alt=""><figcaption></figcaption></figure></div>

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

<div data-with-frame="true"><figure><img src="/files/4685097cb7ac3e7aa0378e05f39f55cf9010326c" alt=""><figcaption></figcaption></figure></div>

**Адрес для уведомлений:**\
<https://chatter.mavibot.ai/prodamus\\_callback/result>

Для настройки работы с платежами по подписке **«Подписки»** перейдите на вкладку и укажите адрес для уведомлений:

<https://chatter.mavibot.ai/prodamus\\_callback/result>

<div data-with-frame="true"><figure><img src="/files/22a90f5ddfd4740d183670579715d0d69f553504" alt=""><figcaption></figcaption></figure></div>

{% hint style="warning" %}
**Внимание!** После ввода URL обязательно **«Сохранить»** кнопку.
{% endhint %}

Чтобы подключить Prodamus, **«Эквайринг»** нужно перейти в раздел.

<div data-with-frame="true"><figure><img src="/files/995bac5d890ab536502e25e5e0dac9722658924e" alt=""><figcaption></figcaption></figure></div>

Далее достаточно ввести в форму указанные выше данные:

<div data-with-frame="true"><figure><img src="/files/6bfa1b13d3c2b1a415c22a8302dc4c6c1f9a1f5b" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="warning" %}
**Важно!** При указании URL платежной формы **https\://** не добавляйте.
{% endhint %}

На этом подключение завершено. Теперь посмотрим, как пользоваться этим функционалом.

## Как создать ссылку на оплату

### Кнопка с функцией «Оплатить»

**Ссылку на оплату можно создать в кнопке с функцией «Оплатить».**

{% hint style="info" %}
[О том, как создать такую кнопку, рассказано в этой статье.](/doc/ru/chatbot/builder/knopki/knopka-oplaty.md)
{% endhint %}

Теперь рассмотрим все возможные параметры этой кнопки.

### Обязательные параметры кнопки «Оплатить» для Prodamus

**Чтобы создать ссылку на оплату, в настройках кнопки нужно указать обязательные параметры:**\
«Сумма», «Название товара», а также параметр «Оплаченный контент» — если у вас нет собственной онлайн-кассы и вы хотите получать чек от Prodamus.

При переходе на страницу оформления заказа заранее отображается информация о товаре и его цене, а клиент вводит только свои контактные данные.

Если в настройках кнопки указаны Email и/или телефон пользователя, на странице оформления заказа будут показаны контактные данные плательщика, а также информация о товаре и его цене.

<div data-with-frame="true"><figure><img src="/files/f9994b4e3424be7a6a35123e217ac74f7a1d2940" alt="" width="563"><figcaption><p>Окно настроек кнопки</p></figcaption></figure></div>

**Поле «Текст»** — этот текст будет отображаться на кнопке со ссылкой на оплату в сообщении.

**Поле «Функция»** — для создания кнопки со ссылкой на оплату выбираем функцию «Оплатить».

**Поле «Платежная система»** — подключенные к проекту платежные системы будут отображаться в списке.\
Если к проекту не подключена ни одна платежная система, этот тип кнопки будет недоступен.

**Поле «Название товара» (обязательное)** — нужно указать точное название товара. Например: не «Телефон», а «Смартфон Xiaomi, модель …».\
Примечание: в названии товара нельзя использовать двойные кавычки; удалите их или замените одинарными.

**Поле «Сумма» (обязательное)** — указываем цену товара.

**Меню «Дополнительная информация»** — при нажатии на эту кнопку откроются дополнительные поля для создания ссылки:

* Описание заказа
* Скидка в рублях
* Переменная Email покупателя
* Переменная номера телефона покупателя
* Время действия ссылки
* ID товара для подписки (для автоплатежа)
* Оплаченный контент

**Чекбокс «Уведомление о нажатии»** — можно отметить, чтобы отслеживать переход по ссылке на оплату. В этом случае при нажатии на кнопку в диалог клиента в Сейлботе придет уведомление о том, что был совершен переход по ссылке.

<div data-with-frame="true"><figure><img src="/files/7b89eb44838a1e095263915cff94a41b4455d621" alt="" width="431"><figcaption></figcaption></figure></div>

По этому уведомлению можно настроить дальнейшую логику работы бота.\
Многие платежные системы поддерживают облачные онлайн-кассы, которые требуются по 54-ФЗ.

Изучите особенности оформления чеков на сайте выбранной платежной системы, чтобы не оказаться в неприятной ситуации с налоговой.

Вот как выглядит страница оплаты, которая открывается при переходе по ссылке в кнопке «Оплатить»:

<div data-with-frame="true"><figure><img src="/files/59ca507778d71cb4ba99923585cf7f26a557ae3d" alt="" width="375"><figcaption><p>Страница оплаты: в кнопке заполнены только основные параметры</p></figcaption></figure></div>

### Дополнительные настройки для создания ссылки на оплату

<div data-with-frame="true"><figure><img src="/files/844b49782db85b264906fd998e8975464fcd117e" alt="" width="563"><figcaption></figcaption></figure></div>

**Поле «Описание заказа»** — информация, введенная в это поле, будет отображаться на странице оплаты в **Дополнительные данные** поле.

**Поле «Скидка»** — здесь можно указать размер скидки в рублях или рублях и копейках. Для копеек используйте точку в качестве разделителя: 50.99\
На странице оплаты в **Сумма к оплате** будет показана сумма с учетом скидки, а основная цена товара будет зачеркнута.

**Поле «Переменная Email покупателя»** (необязательно, если указан номер телефона) — здесь указывается Email пользователя (клиента). Также можно использовать сохраненную переменную с Email, например: `#{email}`

**Поле «Переменная номера телефона покупателя»** (необязательно, если указан Email) — здесь можно использовать переменную с номером телефона покупателя в формате 79000000000, например: `#{phone}`\
Обязательно должен быть указан Email и/или телефон.

**Поле «Время действия ссылки»** — дату можно `дд.мм.гггг чч:мм` указать в формате (например, 25.01.2021 11:00) или задать срок действия ссылки через переменную. Например: `#{link_expired}`

**Поле «ID товара для подписки»** — укажите значение ID товара для автоплатежа. Для создания подписки необходимо создать подписочный товар.\
Подробная инструкция: [Создание и настройка подписок Prodamus](https://help.prodamus.ru/payform/rekurrent-i-kluby/kak-sozdat-i-nastroit-podpiski)\
Если для подписки указан ID товара, сумма платежа не учитывается. Данные о товаре берутся из карточки товара в кабинете Prodamus.\
Указанный в платеже номер телефона будет нужен для управления подпиской.\
Если для подписки указан ID товара, то при успешном платеже в колбэке будет передан ID этого товара.

**Поле «Оплаченный контент»** (условно обязательное) — эти данные нужны для фискализации платежа через Prodamus, если у вас нет собственной онлайн-кассы. В это поле указывается описание покупки, цена и ссылка на контент.\
Например: курс «Плетение кос», цена 3000 рублей, ссылка на страницу курса: `https://nbu.su/krasota/master-po-pleteniyu-kos/?yclid=13602995275739430911`

### Кнопка с функцией «Оплатить»

Если вы укажете время действия ссылки, произойдет следующее:\
Если пользователь запросил ссылку на оплату в пределах срока ее действия (то есть пока время ссылки еще не истекло) и он находится в диалоге, оплата будет недоступна, и ему будет показано следующее сообщение:

<div data-with-frame="true"><figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcA1KJHoyMF5WmLMZiJPJrQEGJs79zxoXK5U3E9k4mVus-Fg0tI-djr6QTagp5ulwposSxmJ-aq8trUQOslQyE0UeaREuM6-T5Ongn-E5tACdVmypFXBtgOJDmVvHRgOdATChhnBQ?key=OB7qKicH0kn-_i_EzQLdRA" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="warning" %}
Срок действия ссылки должен быть больше текущей даты, иначе клиент не сможет оплатить по этой ссылке.
{% endhint %}

**2. Пользователь запрашивает ссылку, когда она уже неактивна**\
В этом случае кнопка просто не отобразится. В переменных клиента `"error_payment_button"` появится переменная, значение которой будет следующим:\
\&#xNAN;**"Ошибка: Срок действия ссылки должен быть больше текущей даты"**.

{% hint style="success" %}
Чтобы пользователь мог корректно совершить оплату, рекомендуется дополнительно обработать такую ситуацию.
{% endhint %}

Создайте такой условный блок:\
Если пришло следующее сообщение:\
`error_payment_button == "Ошибка: Срок действия ссылки должен быть больше текущей даты"`

То покажите следующий текст:\
\&#xNAN;**"Извините, вы не успели оплатить вовремя, ссылка на оплату стала недействительной"**.

<div data-with-frame="true"><figure><img src="/files/ef06842b25ddb2cd749c96de52b9147e85d31572" alt=""><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/d845aa4e9c0cdf3380a6517c99d46b24c918c2a4" alt=""><figcaption></figcaption></figure></div>

### Автоматически создаваемые переменные клиента при использовании кнопки с функцией «Оплатить»

В момент, когда пользователь получает блок с кнопкой «Оплатить», для клиента автоматически создаются переменные:

**Служебная переменная клиента `__payments`** — эта переменная хранит сумму и идентификатор созданной ссылки и нужна для определения хука, приходящего от платежной системы.

{% hint style="danger" %}
Служебная переменная клиента `__payments`Не удаляйте и не изменяйте -!
{% endhint %}

**`error_payment_button` переменная клиента** создается автоматически, если при создании кнопки возникает ошибка.\
В эту переменную будет записано либо сообщение об ошибке, либо ответ с ошибкой от платежной системы.

{% hint style="warning" %}
Значения переменных актуальны при переходе на следующий блок.
{% endhint %}

## Как обрабатывать результат

**Успешный платеж**\
После успешной оплаты в бот **АВТОМАТИЧЕСКИ КОЛБЭК** приходит, который состоит из первых 10 символов секретного ключа платежной системы, `_success` слова и суммы платежа.\
Для использования в настройке схемы достаточно просто скопировать его.

Например: `ovg58keefc_success 44`, где:

* `ovg58keefc` — первые 10 символов секретного ключа платежной системы
* `_success` — результат обработки запроса (успешная оплата)
* `44` — сумма платежа

{% hint style="info" %}
Пользователь НЕ ВИДИТ **колбэки (уведомления) от платежной системы**. Они отображаются только во вкладке **«Клиенты»** и видны оператору.
{% endhint %}

**Пример использования:**\
**Шаг 1.** Добавляем кнопки с функцией «Оплатить» в блок «Блок с кнопкой оплаты».\
**Шаг 2.** В поле **Условие связи** указываем колбэк, который ведет из этого блока в блок «Успешный платеж».\
Аналогично работа будет выполнена, если в условии блока «Начальное условие» указать колбэк успешной оплаты.

{% hint style="warning" %}
**Важно:** Выберите «Полное совпадение» или «По наличию ключевых слов».
{% endhint %}

❗️Если вы решите проверять оплату в стрелке, указанной по точному условию, тщательно продумайте логику вашей схемы. Если клиент уйдет из блока, который проходит по условию с колбэком, перехода в блок не произойдет. Такой способ проверки лучше использовать только в том случае, если клиент не менял свое место в воронке.

В схемах, где клиент перемещается между блоками, эффективнее использовать вариант с указанием колбэка **в блоке** «Начальное условие».<br>

<div data-with-frame="true"><figure><img src="/files/52618ffbe43ab9d6b638b2849e14f6a42fd1439f" alt=""><figcaption><p>Колбэк об успешной оплате в поле Условие блока.</p></figcaption></figure></div>

### Успешный платеж для товаров с автоподпиской

После успешной оплаты в бот **АВТОМАТИЧЕСКИ КОЛБЭК** приходит, который состоит из первых 10 символов секретного ключа платежной системы, `_success` слова и ID товара подписки.

Например: `214009eefc_success 618117`, где:

* `009eefc` — первые 10 символов секретного ключа платежной системы
* `_success` — результат обработки запроса (успешная оплата)
* `618117` — ID товара подписки

<div data-with-frame="true"><figure><img src="/files/d3e50490ad5338cea75af9039effa73e27a98c95" alt=""><figcaption><p>Пример колбэка от Продамус для товаров с автоподпиской</p></figcaption></figure></div>

**Ошибка платежа**\
В случае ошибки при выполнении платежа в бот **АВТОМАТИЧЕСКИ КОЛБЭК** приходит, который состоит из первых 10 символов секретного ключа платежной системы, `_fail` слова и суммы платежа.

Например: `ovg58keefc_fail 44`, где:

* `ovg58keefc` — первые 10 символов секретного ключа платежной системы
* `_fail` — результат обработки запроса (платеж не выполнен или произошла ошибка)
* `44` — сумма платежа

{% hint style="warning" %}
Это зависит от платежной системы. Не все платежные системы отправляют колбэк об ошибке платежа.
{% endhint %}

Если сумма, указанная в настройках кнопки, отличается от суммы, оплаченной клиентом, в бот **АВТОМАТИЧЕСКИ КОЛБЭК** приходит. Он состоит из первых 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`.&#x20;

{% hint style="info" %}
Имя переменной вы выбираете сами. На скриншотах показаны примеры названий переменных.
{% endhint %}

В эту переменную будет записана ссылка на оплату. Переменную можно вывести в сообщении как ссылку или поместить в кнопку с текстом «Оплатить».

**Пример ссылки на оплату:** [https://payform.kz/7p3JR8/](https://payform.ru/7p3JR8/)

{% tabs %}
{% tab title="Калькулятор" %}
Пример 1:

<figure><img src="/files/bf587b4eba974d6f2b49eae1845d292a411a645b" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Описание параметров" %}
&#x20;`your_variable =`` `**`get_prodamus_payment_url(amount, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)`**

Параметры функции:

<table><thead><tr><th width="253">Параметр</th><th>Значение параметра</th></tr></thead><tbody><tr><td><strong><code>amount</code></strong></td><td><strong>Сумма платежа</strong> — может быть передана как целое число или число с точкой. Например: <code>25</code> или <code>52.5</code>. (обязательный параметр)</td></tr><tr><td><strong><code>product_name</code></strong></td><td><strong>Название товара</strong> (обязательный параметр)</td></tr><tr><td><strong><code>expired</code></strong></td><td><p><strong>Время действия ссылки на оплату</strong> — <code>дд.мм.гггг</code> в формате (например, 25.01.2021).<br>Также можно указать <strong>Калькулятор</strong> в поле следующим образом:<br><code>expired = current_date + 2</code> (ссылка будет действовать 2 дня до 00:00).</p><p>Также можно указать точное время: <code>дд.мм.гггг чч:мм</code> (например, 25.01.2021 12:23).</p><p>Можно также использовать стандартные переменные, например, установить срок действия ссылки на 30 минут:</p><pre class="language-python"><code class="lang-python">time = current_time + 30
expired = "#{current_date} #{time}"
</code></pre><p>Если вы хотите пропустить этот параметр, вместо него можно передать одинарные кавычки, двойные кавычки или <code>None</code> значение.</p></td></tr><tr><td><strong><code>customer_phone</code></strong></td><td><strong>Номер телефона покупателя</strong> — необязательно, если указан <code>customer_email</code> параметр.<br>Если вы хотите пропустить этот параметр, вместо него можно передать одинарные или двойные кавычки.</td></tr><tr><td><strong><code>customer_email</code></strong></td><td><strong>Email покупателя</strong> — необязательно, если указан <code>customer_phone</code> параметр.<br>Если вы хотите пропустить этот параметр, вместо него можно передать одинарные или двойные кавычки.</td></tr><tr><td><strong><code>discount</code></strong></td><td><strong>Размер скидки</strong> — параметр может быть передан как целое число или число с точкой: <code>25</code> или <code>63.5</code>.<br>Если вы хотите пропустить этот параметр, вместо него можно передать одинарные или двойные кавычки.</td></tr><tr><td><strong><code>description</code></strong></td><td><strong>Описание товара</strong> (если не указано, автоматически <code>'Оплата счета order_id'</code> заполнится).<br>Если вы хотите пропустить этот параметр, вместо него можно передать одинарные или двойные кавычки.</td></tr><tr><td><strong><code>extra_params</code></strong></td><td><p><strong>Дополнительные параметры</strong>, параметры, которых нет в этой функции.<br>С доступными дополнительными параметрами можно ознакомиться в документации по работе с API платежной системы: <a href="https://help.prodamus.ru/payform/integracii/rest-api/instrukcii-dlya-samostoyatelnaya-integracii-servisov">Prodamus REST API</a></p><p>Например:</p><pre class="language-python"><code class="lang-python">extra_params = {"payments_limit": "3", "payment_method": "vsegdada_installment_0_0_6"}
</code></pre><p>Если вы хотите пропустить этот параметр, вместо него можно передать одинарные/двойные кавычки или <code>None</code> значение.</p></td></tr><tr><td><strong><code>products_for_receipt</code></strong> </td><td><p><strong>строка от 50 до 4000 символов</strong> в формате <code>"описание заказа - цена - ссылка на покупаемый ресурс"</code>.<br>Например:<br><code>“Курс ‘Лещ аулау’, цена 4999 рублей, ссылка на страницу курса: https://www.lovilescha.ru/courses/poimai_kilogram/"</code></p><p>Этот параметр обязателен, если у вас нет собственной онлайн-кассы, он нужен для фискализации платежа через Prodamus.</p></td></tr></tbody></table>
{% endtab %}

{% tab title="Пример" %}
extra\_params = {"payments\_limit": "3"}&#x20;

products\_for\_receipt = "Курс ‘Лещ аулау’, цена 4999 тенге, ссылка на страницу курса: <https://www.lovilescha.ru/courses/poimai\\_kilogram/"&#x20>;

link\_prodamus\_url = get\_prodamus\_payment\_url( 4999, 'Курс ‘Лещ аулау’', '27.03.2023 17:00', '79167777771', '<mail@mail.com>', 20, 'Лучший курс на рынке', extra\_params, products\_for\_receipt

В этом примере:

* `extra_params` — дополнительные параметры (например, лимит платежей).
* `products_for_receipt` — информация о товаре, которая будет показана в чеке.
* `get_prodamus_payment_url` с помощью функции создается ссылка на оплату.
  {% endtab %}
  {% endtabs %}

{% hint style="warning" %}
Если в блоке несколько функций получения ссылки и при этом произошла ошибка, значение ошибки будет записано в **`error_payment_func`** переменную.

Ошибка будет записана в Калькуляторе по последней функции.
{% endhint %}

## `payment_sum` переменная и создание ссылки через дополнительные параметры

{% hint style="info" %}
**Внимание:** `payment_sum` значение переменной берется из последней переменной, то есть после необязательных переменных: `payment_description`, `product_name` и т. д.
{% endhint %}

Для создания ссылки на оплату **В поле Калькулятора `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**          | <p><strong>Время действия ссылки на оплату</strong> — <code>дд.мм.гггг</code> в формате (например, 25.01.2021).<br>Также можно указать <strong>Калькулятор</strong> в поле следующим образом:<br><code>link\_expired = current\_date + 2</code> (ссылка будет действовать 2 дня до 00:00).</p>                                                                                                                 |
| **link\_expired**          | <p>Также можно указать точное время, формат: <code>дд.мм.гггг чч:мм</code> (например, <code>25.01.2021 12:23</code>).<br>Можно также использовать стандартные переменные, например, установить срок действия ссылки на 30 минут:<br>time = current\_time + 30 link\_expired = "#{current\_date} #{time}"</p>                                                                                                   |
| **currency**               | <p><strong>Валюта платежа</strong>, по умолчанию <code>"rub"</code>.<br>Полный список аргументов:</p><ul><li><code>rub</code></li><li><code>usd</code></li><li><code>eur</code></li><li><code>kzt</code></li></ul><p>Этот параметр нужно передавать в нижнем регистре.</p>                                                                                                                                     |
| **payment\_title**         | <p><strong>Заголовок платежа</strong> (до 127 символов). Если не указано, автоматически заполняется следующим текстом:<br>“<strong>Оплата счета payment\_id</strong>” (<code>payment\_id</code> — идентификатор заказа в MaviBot).</p>                                                                                                                                                                         |
| **payment\_description**   | **Краткое описание платежа** (до 127 символов)                                                                                                                                                                                                                                                                                                                                                                 |
| **locale**                 | <p><strong>Язык страницы оплаты</strong> — <code>en-US</code>, <code>fr-XC</code> и т. д. Умолчание — <code>ru-RU</code>.<br>Полный список можно посмотреть по этой ссылке</p>                                                                                                                                                                                                                                 |
| **products\_for\_receipt** | <p><strong>строка от 50 до 4000 символов</strong> в формате <code>"описание заказа - цена - ссылка на покупаемый ресурс"</code>.<br>Например:<br><code>“Курс ‘Лещ аулау’, цена 4999 тенге, ссылка на страницу курса: <https://www.lovilescha.ru/courses/poimai_kilogram/>"</code></p><p>Этот обязательный параметр нужен для фискализации платежа через Prodamus, если у вас нет собственной онлайн-кассы.</p> |
| **payment\_sum**           | (обязательно) сумма платежа                                                                                                                                                                                                                                                                                                                                                                                    |

<div data-with-frame="true"><img src="https://lh3.googleusercontent.com/3FazAmQkph5i0_iKy4G_HNerzVQP9Bg3_PRB_5rHZQ6vAZB_1Hxv1imi3gJCl7pU_GY7eAiiwZExJA-i4Ps5PgSJt7OXKbSL-GT27gWca_u7rFM8YEsNJ7Z-VVXTAR-jSw_-p2I0" alt="" width="563"></div>

{% hint style="success" %}
`discount_value`, `customer_phone`, `customer_email` и `link_expired` переменные актуальны также для подписок.
{% endhint %}

<div data-with-frame="true"><figure><img src="/files/b6cb7e6d673121489297a4b2a4e1b8a57028de7b" alt="" width="524"><figcaption></figcaption></figure></div>

**Пример реализации.**\
В первом блоке задаем сумму платежа:

<div data-with-frame="true"><figure><img src="/files/b7efa59b045b3c3e6a01dcdde83286eb803c9793" alt=""><figcaption></figcaption></figure></div>

На следующем шаге в нужном месте выводим **`prodamus_pay_url`** ссылку:

<div data-with-frame="true"><figure><img src="/files/be8038242f8b597eb385d8b893fdea4bc7729d09" alt=""><figcaption></figcaption></figure></div>

**`prodamus_available_payment_methods`** переменная **`payment_sum`** определяется перед объявлением.\
Возможные значения:

<table><thead><tr><th width="323"></th><th></th></tr></thead><tbody><tr><td><strong>AC</strong></td><td>Оплата картой, выпущенной в РФ</td></tr><tr><td><strong>ACkz</strong> </td><td>Оплата картой Казахстана</td></tr><tr><td><strong>ACf</strong></td><td>Оплата картами стран СНГ, кроме РФ</td></tr><tr><td><strong>ACEURNMBX</strong></td><td>Оплата картой EUR всех стран, кроме России и Беларуси</td></tr><tr><td><strong>SBP</strong></td><td>Быстрая оплата без ввода данных карты. Для карт России</td></tr><tr><td><strong>QW</strong> </td><td>Qiwi wallet </td></tr><tr><td><strong>PC</strong></td><td>ЮMoney</td></tr><tr><td><strong>GP</strong></td><td>Платежный терминал</td></tr><tr><td><strong>sbol</strong></td><td>Сбербанк Онлайн </td></tr><tr><td><strong>invoice</strong> </td><td>Оплата по счету</td></tr><tr><td><strong>installment</strong> </td><td>Рассрочка через Prodamus</td></tr><tr><td><strong>installment_5_21</strong></td><td>Рассрочка на 3 месяца через Prodamus</td></tr><tr><td><strong>installment_6_28</strong></td><td>Рассрочка на 6 месяцев через Prodamus</td></tr><tr><td><strong>installment_10_28</strong></td><td>Рассрочка на 10 месяцев через Prodamus</td></tr><tr><td><strong>installment_12_28</strong> </td><td>Рассрочка на 12 месяцев через Prodamus</td></tr><tr><td><strong>installment_0_0_3</strong></td><td>Рассрочка на 3 месяца через Tinkoff</td></tr><tr><td><strong>installment_0_0_4</strong> </td><td>Рассрочка на 4 месяца через Tinkoff</td></tr><tr><td><strong>installment_0_0_6</strong></td><td>Рассрочка на 6 месяцев через Tinkoff</td></tr><tr><td><strong>installment_0_0_10</strong></td><td>Рассрочка на 10 месяцев через Tinkoff</td></tr><tr><td><strong>installment_0_0_12</strong></td><td>Рассрочка на 12 месяцев через Tinkoff</td></tr><tr><td><strong>installment_0_0_24</strong> </td><td>Рассрочка на 24 месяца через Tinkoff</td></tr><tr><td><strong>installment_0_0_36</strong></td><td>Рассрочка на 36 месяцев через Tinkoff</td></tr><tr><td><strong>credit</strong> </td><td>Кредит через Tinkoff</td></tr><tr><td><strong>vsegdada_installment_0_0_4</strong></td><td><strong>Рассрочка на 4 месяца через «ВсегдаДа»</strong> (не работает с available_payment_methods)</td></tr><tr><td>vs<strong>egdada_installment_0_0_6</strong></td><td><strong>Рассрочка на 6 месяцев через «ВсегдаДа»</strong> </td></tr><tr><td><strong>vsegdada_installment_0_0_10</strong></td><td><strong>Рассрочка на 10 месяцев через «ВсегдаДа»</strong> </td></tr><tr><td><strong>vsegdada_installment_0_0_12</strong></td><td><strong>Рассрочка на 12 месяцев через «ВсегдаДа»</strong> </td></tr><tr><td>vs<strong>egdada_installment_0_0_24</strong></td><td><strong>Рассрочка на 24 месяца через «ВсегдаДа»</strong> </td></tr><tr><td><strong>vsegdada_installment_0_0_36</strong> </td><td><strong>Рассрочка на 36 месяцев через «ВсегдаДа»</strong> </td></tr><tr><td><strong>sbrf_installment_0_0_6</strong></td><td>Рассрочка на 6 месяцев через Сбербанк</td></tr><tr><td><strong>sbrf_installment_0_0_10</strong></td><td>Рассрочка на 10 месяцев через Сбербанк</td></tr><tr><td><strong>sbrf_installment_0_0_12</strong></td><td>Рассрочка на 12 месяцев через Сбербанк</td></tr><tr><td><strong>sbrf_installment_0_0_24</strong></td><td>Рассрочка на 24 месяца через Сбербанк</td></tr><tr><td><strong>sbrf_installment_0_0_36</strong> </td><td>Рассрочка на 36 месяцев через Сбербанк</td></tr><tr><td><strong>otp_installment_0_0_6</strong></td><td>Рассрочка на 6 месяцев через «ОТП Банк»</td></tr><tr><td><strong>otp_installment_0_0_10</strong></td><td>Рассрочка на 10 месяцев через «ОТП Банк»</td></tr><tr><td><strong>otp_installment_0_0_12</strong> </td><td>Рассрочка на 12 месяцев через «ОТП Банк»</td></tr><tr><td><strong>otp_installment_0_0_24</strong></td><td>Рассрочка на 24 месяца через «ОТП Банк»</td></tr><tr><td><strong>otp_installment_0_0_36</strong></td><td>Рассрочка на 36 месяцев через «ОТП Банк»</td></tr><tr><td><strong>mts_installment_0_0_6</strong></td><td>Рассрочка на 6 месяцев через «МТС Банк»</td></tr><tr><td><strong>mts_installment_0_0_10</strong> </td><td>Рассрочка на 10 месяцев через «МТС Банк»</td></tr><tr><td><strong>mts_installment_0_0_12</strong> </td><td>Рассрочка на 12 месяцев через «МТС Банк»</td></tr><tr><td><strong>mts_installment_0_0_24</strong></td><td>Рассрочка на 24 месяца через «МТС Банк»</td></tr><tr><td> <strong>mts_installment_0_0_36</strong> </td><td>Рассрочка на 36 месяцев через «МТС Банк»</td></tr><tr><td><strong>monetaworld</strong></td><td>Карты мировых банков, кроме России</td></tr><tr><td><strong>sbrf_bnpl</strong></td><td>Рассрочка через Сбер</td></tr></tbody></table>

Несколько значений **через вертикальную черту** можно разделять.\
Например:

```python
prodamus_available_payment_methods = "AC|PC|QW"
```

`prodamus_currency` — это еще один дополнительный параметр, который позволяет указать сумму в определенной валюте.

Возможные валюты:

* `kzt` — для тенге
* `eur` — для евро
* `usd` — для доллара

Таким образом, сумма, указанная в ссылке, будет в выбранной валюте.

**Колбэк `payment_callback` при получении** `currency` и `currency_sum` параметрам, в которых указаны валюта и сумма.

{% hint style="warning" %}
Если не указано, то перейдет на страницу без способов оплаты.\
Способы оплаты можно добавить через поддержку. Подключенные способы можно посмотреть в настройках страницы или по ссылке на оплату.
{% endhint %}

<div data-with-frame="true"><figure><img src="/files/94ab54a6b2c590e3460fddd79762b3faa3d4cf35" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/9c4c5245f67ca0a4d722bcb25df01762d79a0888" alt="" width="563"><figcaption></figcaption></figure></div>

### Как обрабатывать результат

**Успешный платеж**

**Важно:** после успешной или неуспешной оплаты в бот приходят коллбэки (callback), с помощью которых можно определить, успешно ли была совершена оплата.

Коллбэки в системе выглядят как сообщения от пользователя, но пользователь их отправить не может. Они представляют собой комбинацию секретного ключа и статуса. Например:

```
453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_success
```

или

```
453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_fail
```

После успешной оплаты **prodamus\_payment\_completed** переменная `True` принимает значение.

**Примечание:** Коллбэки приходят с небольшой задержкой, поэтому после отправки пользователю ссылки лучше отправить сообщение:

> “После оплаты дождитесь успешного завершения платежа.”

***

**Структура коллбэка**

Для ссылок, созданных через кнопку Оплаты или через функцию в Калькуляторе, после оплаты в бот автоматически приходит коллбэк. Он состоит из:

```
<секретный_ключ>_success <сумма_платежа>
```

Например:

```
ovg58keefc_success
```

* `ovg58keefc` — полный секретный ключ платежной системы
* `_success` — результат обработки запроса (успешная оплата)

***

**Практическое применение**

Можно обработать успешную оплату через условный блок и показать пользователю соответствующее сообщение.

<div data-with-frame="true"><figure><img src="/files/614bd00d0a1c0f4d52605baa83f13d859b7ddb22" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="danger" %}
Тип сравнения должен быть "Full match" / "Полное совпадение"

Для повторной оплаты обязательно **payment\_sum** переменную в ноль и удалить ранее созданную ссылку. Только после этого **payment\_sum** можно присвоить переменной новое значение и получить обновленную ссылку.
{% endhint %}

#### Деактивация/реактивация подписки

Также в системе Prodamus есть уведомления о том, что подписка была активирована или остановлена:

<div data-with-frame="true"><figure><img src="/files/a83e168500dc994f132f156fcde83fdc9016eab9" alt=""><figcaption></figcaption></figure></div>

**«Подписку отключил пользователь»** — если подписка была вручную остановлена (например, при отказе от подписки).\
Это сообщение может прийти до завершения текущего оплаченного периода. Дальнейшее действие зависит от вашего решения: игнорировать, поставить на контроль или попытаться вернуть пользователя.

**«Подписку повторно активировал пользователь»** — подписка восстановлена.\
Это сообщение может прийти, если пользователь восстановил подписку до завершения текущего оплаченного периода. Дальнейшее действие зависит от вашего решения: игнорировать или снять с мониторинга.

**«Деактивация подписки»** — если подписка остановлена после нескольких неудачных платежей.

### Сохранение значений из коллбэка

После получения сообщения об успешной оплате **payment\_callback** в переменную записывается коллбэк из Prodamus, в котором содержатся все данные платежа. Эти данные можно сохранить и использовать так, как вам нужно.

Пример коллбэка:

```json
{
  "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** можно указать переменные. Тогда при получении коллбэка их можно получить так:

```python
product = get(payment_callback,'products[0][name]')
description = get(payment_callback,'customer_extra')
```

<div data-with-frame="true"><figure><img src="/files/1678538d98d710b20c9aa9417e9b69e6fec0a6b3" alt=""><figcaption></figcaption></figure></div>

{% hint style="info" %}
Внимание: **payment\_sum** в переменную передается последнее значение, которое **располагается после** необязательных переменных: **payment\_description**, **product\_name**.
{% endhint %}

Сумму можно получить так:

```python
summa = get(payment_callback, 'sum')
```

### **Доступные коллбэки**

Помимо основных коллбэков успешной оплаты, в чат будут приходить следующие сообщения, не видимые пользователю:

<details>

<summary>коллбэки</summary>

* Подписчик деактивировал подписку ([подробнее тут](#deaktivaciya-reaktivaciya-podpiski))
* Подписчик реактивировал подписку ([подробнее тут](#deaktivaciya-reaktivaciya-podpiski))
* Подписка завершена
* Неуспешная оплата - приписка с пояснением (на скриншоте выше)
* Уведомление о предстоящем списании - дата и время предстоящего списания
* Заявка на рассрочку со статусом

</details>

<details>

<summary><strong>Примеры коллбэков в диалоге с клиентом</strong></summary>

* **Подписчик деактивировал подписку**
* **Подписчик реактивировал подписку**
* **Подписка завершена**
* **Неуспешная оплата - Недостаточно средств.**
* **Неуспешная оплата - Срок действия карты истёк.**
* **Неуспешная оплата - Превышен лимит по карте.**
* **Неуспешная оплата - Карта утеряна**
* **Неуспешная оплата - Системная ошибка**&#x20;
* **Неуспешная оплата - Операция отклонена. Обратитесь в банк, выпустивший карту.**&#x20;
* **Неуспешная оплата - Отказ в проведении операции банком-эмитентом.**
* **Неуспешная оплата - Отказ в проведении операции банком.**&#x20;
* **Уведомление о предстоящем списании - дд.мм.гггг чч:мм**
* **Заявка на рассрочку одобрена**
* **Заявка на рассрочку отменена**
* **Заявка на рассрочку отклонена**

</details>

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

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

<div data-with-frame="true"><figure><img src="/files/749b88fb56544be55340a30e0a1ce34f050bf801" alt=""><figcaption></figcaption></figure></div>

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

<div data-with-frame="true"><figure><img src="/files/a4433cd4a3a628662c5cbe9c69599b221c8dad1e" alt=""><figcaption></figcaption></figure></div>

Во всех коллбэках, если в тексте есть **«Төлем сәтсіз»** то пользователю будет отправлено сообщение с текстом, который вы укажете.

## **Как сделать оплату по подписке**

### **Как создать подписку**

Для создания подписки сначала нужно **подписной товар** создать.\
Полная инструкция: [Как создать и настроить подписку](https://help.prodamus.ru/payform/rekurrent-i-kluby/kak-sozdat-i-nastroit-podpiski)

Затем копируем **ID** подписного товара. Например, ниже показано, где его взять:

<div data-with-frame="true"><img src="https://lh5.googleusercontent.com/YuaI5KhrMPHNozN0JNOE9kD_Jcw7a8LE6GigaM0vrVtmsDBvlHvK8GCX5IcNvaJuSQE8iWWYl0KCgR5JpYpcp9Sa2531RGDYWVLjhE72ipScrpodUWeb4KDrECRbBhz4kO-3lMvs" alt="Создание подписного товара"></div>

Чтобы создать ссылку для оплаты подписки, **prodamus\_subscription** в переменную нужно **ID** задать ID подписного товара. После этого автоматически **prodamus\_pay\_url** появится переменная.

<div data-with-frame="true"><figure><img src="/files/3532d383ef4bdf1974684bbc96fcf600adc65f30" alt="" width="563"><figcaption></figcaption></figure></div>

Перевод на казахский язык (деловой стиль):

`prodamus_pay_url` переменную можно вывести на экран как ссылку или разместить на кнопке с текстом «Оплатить». Пример ссылки: <https://payform.kz/7p3JR8/>

Обработка результата выполняется так же, как и при разовой оплате (как вы читали выше).

После успешной подписки у пользователя добавляется **customer\_phone** введенная при оплате переменная. Номер телефона нужен для управления подпиской.

Если **customer\_email** не задано, то для управления подпиской **customer\_phone** обязательно.

### **`get_prodamus_subscription_url` как сделать ссылку на подписку с помощью функции**

Рассмотрим другой способ создания ссылки для оплаты товара по подписке.

1. В кабинете Продамус создается подписной товар.\
   Полную инструкцию можно посмотреть по ссылке:\
   [Как создать и настроить подписку](https://help.prodamus.ru/payform/rekurrent-i-kluby/kak-sozdat-i-nastroit-podpiski)
2. Затем копируем **ID** подписного товара. Например, ниже показано, где его взять:

<div data-with-frame="true"><img src="https://lh5.googleusercontent.com/YuaI5KhrMPHNozN0JNOE9kD_Jcw7a8LE6GigaM0vrVtmsDBvlHvK8GCX5IcNvaJuSQE8iWWYl0KCgR5JpYpcp9Sa2531RGDYWVLjhE72ipScrpodUWeb4KDrECRbBhz4kO-3lMvs" alt="Создание подписного товара"></div>

Для получения ссылки для оплаты товара по подписке в Калькуляторе указываем функцию&#x20;

`get_prodamus_subscription_url`(subscription\_id, product\_name, expired, customer\_phone, customer\_email, discount, description, extra\_params, products\_for\_receipt)

{% tabs %}
{% tab title="Калькулятор" %}
**Пример 1:** Ссылка для оплаты товара по подписке

<figure><img src="/files/be323373571cf68ccefb834e80d8436f683fccd3" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Описание параметров" %}
`link = get_prodamus_subscription_url`(subscription\_id, product\_name, expired, customer\_phone, customer\_email, discount, description, extra\_params, products\_for\_receipt)

Параметры функции:

<table><thead><tr><th width="253">Параметр</th><th>Значение параметра</th></tr></thead><tbody><tr><td><strong><code>subscription_id</code></strong></td><td><strong>ID подписного товара</strong> — можно скопировать из кабинета Продамус (обязательный параметр).</td></tr><tr><td><strong><code>product_name</code></strong></td><td><strong>Название товара</strong> (обязательный параметр).</td></tr><tr><td><strong><code>expired</code></strong></td><td><p><strong>Время действия ссылки на оплату</strong> — в формате дд.мм.гггг (например, 25.01.2021).</p><p>Также можно указать в поле «Калькулятор»:</p><pre class="language-python"><code class="lang-python">expired = current_date + 2  # ссылка будет действительна 2 дня, до 00:00
</code></pre><p><code>expired</code> параметр можно задать и с точным временем, формат: дд.мм.гггг чч:мм (например, 25.01.2021 12:23).</p><p>Можно также использовать стандартные переменные, например, установить срок действия ссылки на 30 минут:</p><pre class="language-python"><code class="lang-python">time = current_time + 30
expired = "#{current_date} #{time}"
</code></pre><p>Если вы хотите пропустить этот параметр, вместо него поставьте одинарные или двойные кавычки, либо <code>None</code> значение.</p></td></tr><tr><td><strong><code>customer_phone</code></strong></td><td><p><strong>Номер телефона плательщика</strong> — необязательно, если указан <code>customer_email</code> если передается параметр.</p><p>Если вы хотите пропустить этот параметр, вместо него поставьте одинарные или двойные кавычки.</p></td></tr><tr><td><strong><code>customer_email</code></strong></td><td><p><strong>Email плательщика</strong> — необязательно, если указан <code>customer_phone</code> если передается параметр.</p><p>Если вы хотите пропустить этот параметр, вместо него поставьте одинарные или двойные кавычки.</p></td></tr><tr><td><strong><code>discount</code></strong></td><td><p><strong>Размер скидки</strong> — параметр можно задать как целое число или число с плавающей точкой: 25 или 63.5.</p><p>Если вы хотите пропустить этот параметр, вместо него поставьте одинарные или двойные кавычки.</p></td></tr><tr><td><strong><code>description</code></strong></td><td><p><strong>Описание товара</strong> — если не указано, по умолчанию <code>'Оплата счета order_id'</code> заполняется.</p><p>Если вы хотите пропустить этот параметр, вместо него поставьте одинарные или двойные кавычки.</p></td></tr><tr><td><strong><code>extra_params</code></strong></td><td><p><strong>Дополнительные параметры</strong>, это параметры, которых нет в функции.<br>С возможными дополнительными параметрами можно ознакомиться в документации API платежной системы:<br><a href="https://help.prodamus.ru/payform/integracii/rest-api/instrukcii-dlya-samostoyatelnaya-integracii-servisov">Руководство по Prodamus REST API</a></p><p><strong>Пример:</strong></p><pre class="language-python"><code class="lang-python">extra_params = {"payments_limit": "3"}
</code></pre><p>Если вы хотите пропустить этот параметр, вместо него поставьте одинарные/двойные кавычки или <code>None</code> значение.</p></td></tr><tr><td><strong><code>products_for_receipt</code></strong> </td><td><p><strong>строка из 50–4000 символов</strong>, формат: <code>"описание заказа - цена - ссылка на покупаемый ресурс"</code></p><p>Пример:<br>Курс «Лещ аулау курсы», цена 4999 тенге, ссылка на страницу курса: <a href="https://www.lovilescha.ru/courses/poimai_kilogram/">https://www.lovilescha.ru/courses/poimai_kilogram/</a>.</p><p>Этот параметр <strong>обязателен</strong>, если у вас нет собственной онлайн-кассы, он нужен для фискализации платежей через Prodamus.</p></td></tr></tbody></table>
{% endtab %}

{% tab title="Пример кода для копирования" %}
extra\_params = {"payments\_limit": "3"}&#x20;

products\_for\_receipt = "Курс ‘Лещ аулау курсы’, цена ежемесячной подписки 2000 тенге, ссылка на страницу курса: <https://www.lovilescha.ru/courses/poimai\\_kilogram/"&#x20>;

link\_prodamus\_sub = get\_prodamus\_subscription\_url(618988, 'Курс ‘Лещ аулау курсы’', '27.03.2023 17:02', '79167777771', '<mail@mail.com>', 20, 'Лучший курс на рынке', extra\_params, products\_for\_receipt)
{% endtab %}
{% endtabs %}

{% hint style="warning" %}
Если в блоке при получении ссылки через несколько функций возникает ошибка, **значение ошибки `error_payment_func` записывается в переменную** .

Ошибка будет записана в Калькуляторе по последней функции.
{% endhint %}

### **Как управлять статусом подписки**

Этот метод предназначен только для реальных подписок, в демо-режиме привязка карты отсутствует.

Для управления подпиской обязательно **`customer_phone`** или **`customer_email`** должен быть передан один из параметров.

Чтобы вывести пользователя из подписки, нужно создать блок и вызвать следующую функцию:\
[delete\_subscription\_prodamus](https://store.salebot.pro/function/delete_subscription_prodamus)

**Пример параметров:**

```json
{
  "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`** можно передать вместо него и остановить подписку.

**Пример:** настройка блоков подписки

<div data-with-frame="true"><figure><img src="/files/30b85a2e063b93c43a57def92d001f154bff5865" alt=""><figcaption></figcaption></figure></div>

Обратите внимание, функция **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 профиля в системе Продамус

<div data-with-frame="true"><figure><img src="/files/a485610f18f908dfca29eefe35dd81ff87746bab" alt=""><figcaption><p>Пример использования функции prodamus_subscription_switch_status</p></figcaption></figure></div>

Перевод на казахский язык (деловой стиль):

**Пример 1:** `customer_phone` параметр задан, `customer_email` пропущен:

```python
stat = prodamus_subscription_switch_status('618117', '0', '75431312321')
```

**Пример 2:** `customer_email` параметр задан, `customer_phone` пропущен:

```python
stat = prodamus_subscription_switch_status('618117', '0', '', 'examp@mail.com')
```

{% hint style="success" %}
Если все операции выполнены успешно, функция **`ok`** или описание ошибки, если произошла ошибка.
{% endhint %}

## Управление скидками в подписке

Эта функция задает размер скидки на последующие платежи по подписке. Скидка **на ограниченное или неограниченное** количество платежей.

```python
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'` ; при ошибке функция возвращает описание ошибки.

{% hint style="warning" %}
**Размер скидки и интервал перезаписываются только при повторном вызове функции с новыми значениями!**
{% endhint %}

**Примеры:**

**1. Дать скидку 1₽ на все последующие автоплатежи** (номер телефона не указывается, так как он автоматически `customer_phone` берется из переменной; сумма скидки по умолчанию применяется ко всему сроку подписки):

```python
r = prodamus_subscription_discount('624034', '1')
```

<div data-with-frame="true"><img src="https://lh3.googleusercontent.com/_4i_sKKn39tHVdnb47xgj8fxfP_x9UGMWLaierBnpup9LCZMdVT0G9AmIOa8S_uMrVXWQIH6rvZnujCYPGcphkYvwFbCXEh819tWIjGIM4mHvd3afSlPzhZfcWk6D1z1tyBwFrZV" alt="" width="563"></div>

**2. Пример скидки 2₽ на следующие 3 платежа** (номер телефона передан пустыми кавычками, так как он автоматически `customer_phone` берется из переменной):

```python
r = prodamus_subscription_discount('624034', '2', '', '3')
```

<div data-with-frame="true"><img src="https://lh5.googleusercontent.com/IgutVRIqTFbaof9A14qdQRLCB6oop4mSAIew5s3lz62Kb4YVHdHJEt6GuC7AACStDgRiR1d_XEG1k5Dj7c2M-VNtci16JbklMTEla8_RNWD7wBNeG649g0lnFiMZilhri3phwKr-" alt="" width="563"></div>

**3. Пример указания скидки в десятичном виде** (разделитель — точка, значения указываются без кавычек), номер телефона можно передать через переменную.

<div data-with-frame="true"><figure><img src="/files/5355ab4abe138d1e2edd364b5e1daa1551d88968" alt="" width="563"><figcaption></figcaption></figure></div>

r = prodamus\_subscription\_discount(#{prodamus\_subscription}, 10.25, #{customer\_phone}, 3)

<div data-with-frame="true"><img src="https://lh3.googleusercontent.com/xJVbZ3Q5f6LzCsYtuX-JqaKYPc69lS6Wi4yA0ui2vBxmFkXXGIHSqgO2VoK0rzDPdNG-HxVpAnpRcmbZXQ_oSrtT7ijJcQA6ZOwjXLbKP8WsCFBip-4DwRnVHpz-fIPRt_Wldo0h" alt="" width="563"></div>

## **Как задать дату следующего платежа по подписке**

С помощью этого метода можно сдвигать дату следующего платежа по подписке. Дату можно сдвигать только **«в будущее»** от текущей установленной даты следующего платежа, тем самым увеличивая срок участия в клубе.

Например, это можно использовать как бонус для подписчиков.

Для этого нужно использовать следующую функцию:

```python
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_`** префикс.

Затем при создании ссылки на оплату параметры из этой переменной будут автоматически отправлены в платежную систему.

## Как тестировать оплату

{% hint style="info" %}
Тестируем только оплату!
{% endhint %}

Чтобы при настройке интеграции и воронок оплаты с вашего счета не списывались деньги, **можно использовать тестовые карты**.

{% hint style="warning" %}
Сначала переведите вашу платежную форму **в ДЕМО-режим** ⤵\
Не забудьте нажать кнопку «Сохранить».
{% endhint %}

<div data-with-frame="true"><figure><img src="/files/622a1c2a4d8cb97b0f3058c5160b36535ef06d50" alt=""><figcaption></figcaption></figure></div>

#### Для совершения тестовой оплаты можно использовать тестовые счета.

**Тестовые карты Сбербанка:**

**МИР**\
Номер карты: 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

{% hint style="success" %}
❗️При оплате через тестовые счета все настроенные воронки и интеграции **работают так же, как и при обычной оплате**❗️
{% endhint %}

Форма проверена

{% hint style="danger" %}
Чтобы принимать реальные платежи, форму **необходимо перевести в** рабочий режим. **То есть переключатель демо-режима нужно** установить в светло-красное состояние.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/ru/integrations/payment/prodamus.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
