# Кнопка оплаты

Кнопка с функцией «Платёж» упрощает работу с подключёнными платёжными системами, предоставляя ссылку на оплату.

картинка

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

Кнопка функции «Платёж» доступна для следующих платёжных систем:

* Stripe

Внутри одного блока вы можете создавать кнопки «Платёж» для разных платёжных систем с разными суммами оплаты.

Если к проекту не подключены платёжные системы, этот тип кнопки будет недоступен.

картинка

**Основные поля кнопки «Платёж»:**

* **Поле «Текст»:** Этот текст будет отображаться на кнопке со ссылкой на оплату в сообщении.
* **Функция:** Выберите тип кнопки **Платёж**.
* **Поле «Функция»:** Чтобы создать кнопку, которая предоставляет ссылку на оплату, выберите **Платёж** .
* **Поле «Платёжная система»:** В списке показаны платёжные системы, подключённые к проекту.

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

Здесь вы можете посмотреть настройки кнопки функции «Платёж» для разных платёжных систем:

Текст **обязательные поля для генерации ссылки на оплату** это **Сумма** и **Название товара/Описание товара**.

* **Поле «Сумма»:** Введите здесь сумму оплаты.
* **Поле «Название товара»:** Введите название товара, которое будет отображаться на странице оплаты.

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

Вы можете заменить их апострофами или одинарными кавычками.

В зависимости от выбранной платёжной системы в настройках кнопки появятся выпадающие списки «Данные чека» и/или «Дополнительная информация». При нажатии на них откроются дополнительные поля:

картинка

### Переменные при использовании кнопки функции «Платёж» <a href="#variables-when-using-the-payment-function-button" id="variables-when-using-the-payment-function-button"></a>

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

* **Системная клиентская переменная `__payments`** — эта переменная хранит сумму оплаты и идентификатор сгенерированной ссылки на оплату. Она используется для идентификации ответа webhook от платёжной системы.

Системная клиентская переменная `__payments` **нельзя удалять или изменять**!

Клиентская переменная `error_payment_button` создаётся, если при генерации кнопки оплаты возникает ошибка.

Её значение будет содержать либо сообщение об ошибке, либо ответ об ошибке, возвращённый платёжной системой.

Значения переменных становятся активными (актуальными), когда пользователь переходит к следующему блоку.

#### Как обрабатывать результат <a href="#how-to-handle-the-result" id="how-to-handle-the-result"></a>

**Успешная оплата**

После успешной оплаты бот получит **callback** состоящий из первых 10 символов секретного ключа платёжной системы, слова `_success`и суммы оплаты, разделённых пробелом. Например: **`ovg58keefc_success 44`**&#x433;де:

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

Колбэки (уведомления) от платёжной системы **не видны пользователю**. Они отображаются только во вкладке **Клиенты** и видны **оператору**.

**Пример использования:** **Шаг 1.** В блоке с кнопкой **Платёж** добавьте кнопки с **Платёж** . **Шаг 2.** Во вкладке **полем «Условие подключения»** из этого блока в **Успешная оплата** блок, укажите **callback**. Это работает так же, если вы укажете колбэк успешной оплаты в **Поле «Условие»** блока **Проверка основного условия** .

Важно! Выбор типа совпадения — **Точное совпадение** или **Совпадение по ключевому слову.**

Полезный совет

Чтобы отправить клиенту уведомление об успешной оплате, не прерывая его движение по основной воронке, создайте **«Нестейтовые блоки с условиями».**

**Оплата с ошибкой**

Если **произошла ошибка оплаты**, бот получит **callback** состоящий из первых 10 символов секретного ключа платёжной системы, слова `_fail`и суммы оплаты, разделённых пробелом. Например: `ovg58keefc_fail 44`где:

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

Это зависит от платёжной системы. **Не все платёжные системы отправляют колбэк при ошибках оплаты.**

Если сумма, указанная в настройках кнопки, отличается от **суммы, фактически оплаченной клиентом**, бот получит **callback** состоящий из первых 10 символов секретного ключа платёжной системы, фразы `_different_amounts`и уникального ID платежа, разделённых пробелом. Например: `ovg58keefc_different_amounts 123456`где:

* `ovg58keefc`: первые 10 символов секретного ключа платёжной системы
* `_different_amounts`: результат обработки запроса (сумма оплаты отличается от суммы в ссылке)
* `123456`: уникальный ID платежа


---

# 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/chatbot/builder/knopki/knopka-oplaty.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.
