Как настроить Robokassa
Давайте посмотрим, как принимать платежи в боте через сервис Robokassa.
- Создайте интернет-магазин в вашем аккаунте Robokassa и укажите следующие технические настройки:
- Алгоритм расчета хеша:
MD5 - Result URL: https://chatter.mavibot.ai/robokassa_callback/result
- Метод отправки данных для Result URL:
GET - Success URL: https://chatter.mavibot.ai/robokassa_callback/success
- Метод отправки данных для Success URL:
GET - Fail URL: https://chatter.mavibot.ai/robokassa_callback/fail
- Метод отправки данных для Fail URL:
GET

Создайте тестовые пароли и выполните первоначальную настройку в тестовом режиме.
Как подключить Robokassa к MaviBot
Перейдите в раздел Эквайринг и нажмите Подключить на карточке Robokassa:

Заполните форму в открывшемся окне:
- ID магазина — Shop ID, который можно найти в настройках магазина в вашем аккаунте Robokassa.
- Пароль №1 и Пароль №2 — уникальные сгенерированные последовательности букв и цифр.
- Ставка НДС — укажите соответствующий код для передачи значения НДС. Это поле задает налоговую ставку в кассовом чеке. Она определяется отдельно для каждого типа товара, но применяется ко всем единицам этого конкретного товара вместе.
Доступные значения:
- Без НДС.
- НДС по ставке 0%.
- НДС по ставке 5%.
- НДС, рассчитанный по ставке 12%.
- НДС, рассчитанный по ставке 16%.
Как сгенерировать платежную ссылку
Вы можете сгенерировать платежную ссылку в блоке, используя ОДИН ИЗ доступных методов:
- Кнопка с функцией Оплата, или
- Функция
get_robokassa_payment_urlв Калькуляторе, или- Генерация ссылки с помощью переменной
payment_sumи дополнительных параметров — устаревший, но все еще работающий метод.
Кнопка с функцией Оплата
Вы можете сгенерировать платежную ссылку с помощью кнопки с функцией Оплата.
Узнайте, как создать кнопку с функцией Оплата, здесь.
Давайте рассмотрим все доступные параметры кнопки.
Обязательные параметры кнопки Оплата
Чтобы сгенерировать платежную ссылку, укажите следующие обязательные параметры в настройках кнопки:
- Сумма
- Название товара

Сумма — укажите цену товара в рублях.
Название товара — это поле может содержать только английские или русские буквы, цифры и знаки препинания. Максимальная длина — 100 символов. Эта информация отображается в интерфейсе Robokassa и в электронном чеке, который получает клиент после успешной оплаты.
НЕ ИСПОЛЬЗУЙТЕ двойные кавычки в названии товара. Удалите их или замените на одинарные кавычки.
Флажок Автоматический платеж — включает рекуррентные платежи.
Флажок Уведомление о клике — включает отслеживание кликов по платежной ссылке. Если включено, в диалоге с клиентом в MaviBot появится уведомление о клике.
Вы можете настроить дальнейшую логику бота на основе этого уведомления.
Многие платежные системы поддерживают облачные онлайн-кассы, необходимые в соответствии с Федеральным законом № 54-ФЗ.
Ознакомьтесь с требованиями к чекам на сайте вашего выбранного платежного провайдера, чтобы избежать проблем с налоговыми органами.
Данные чека
Откройте меню Данные чека, чтобы отобразить параметры чека:

Название товара — обязательно для генерации чека.
НЕ ИСПОЛЬЗУЙТЕ двойные кавычки в названии товара. Удалите их или замените на одинарные кавычки.
Общая сумма в рублях — укажите общую сумму платежа на основе количества товара. Если количество равно 1, общая сумма в рублях равна значению, введенному в обязательное поле Сумма.
Количество — количество или вес товара. Вы можете передать целое число или десятичное число с точкой, например:
5
или
10.3
Переменные клиента, создаваемые автоматически при использовании кнопки Оплата
Как только пользователь получает блок, содержащий кнопку Оплата, следующие переменные клиента создаются автоматически:

Служебная переменная клиента:
__payments
хранит сумму платежа и идентификатор сгенерированной платежной ссылки. Она необходима для идентификации вебхука, полученного от платежного провайдера.
Служебную переменную
__paymentsНЕЛЬЗЯ удалять или изменять.
Переменная клиента:
error_payment_button
создается, если при генерации кнопки оплаты произошла ошибка.
Значение error_payment_button будет содержать либо текст ошибки, либо ответ с ошибкой, возвращенный платежным провайдером.
Значения переменных становятся актуальными после перехода пользователя на следующий блок.
Как обработать результат
Обратите внимание
Robokassa отправляет уведомления только об успешных транзакциях через Result URL.
Robokassa не предоставляет обратные вызовы для неуспешных платежей.
Fail URL — это только страница неуспешного платежа, на которую перенаправляется плательщик в случае возникновения ошибки на платежной странице.
Успешный платеж
После правильной настройки платежа и генерации платежной ссылки протестируйте настройку.
Если платеж прошел успешно, обратный вызов будет отправлен АВТОМАТИЧЕСКИ в диалог с клиентом в разделе Клиенты.
Обратный вызов состоит из:
- 10 символов секретного ключа платежного провайдера;
- слова
_success; - суммы платежа через пробел.
Обратный вызов генерируется автоматически. Вам не нужно создавать его самостоятельно или запрашивать его в службе поддержки платежного провайдера.


Пример:
ovg58keefc_success 2999
Где:
-
ovg58keefc— 10 символов секретного ключа платежного провайдера; -
_success— результат обработки запроса, указывающий на успешный платеж; -
2999— сумма платежа.
Выполнение блока:

Обратный вызов:

Обратные вызовы платежного провайдера НЕ ВИДНЫ пользователю.
Они отображаются только в разделе Клиенты и видны оператору или администратору.
Пример настройки ответа на обратный вызов
В условном блоке, таком как блок Стартовое условие или блок Не-состояние с условием, укажите обратный вызов, полученный после оплаты.
Выберите Точное совпадение или Содержит ключевые слова в качестве типа сопоставления.

После оплаты клиент получит сообщение из блока, настроенного на ответ на обратный вызов:

Ошибка суммы платежа
Если сумма, указанная в настройках кнопки, отличается от суммы, уплаченной клиентом, бот автоматически получит обратный вызов, состоящий из:
- 10 символов секретного ключа платежного провайдера;
-
_different_amounts; - уникального идентификатора платежа через пробел.
Пример:
ovg58keefc_different_amounts 123456
Где:
-
ovg58keefc— 10 символов секретного ключа платежного провайдера; -
_different_amounts— указывает, что оплаченная сумма отличается от суммы в платежной ссылке; -
123456— уникальный идентификатор платежа.
Функция get_robokassa_payment_url в Калькуляторе
Вы можете сгенерировать платежную ссылку с помощью функции get_robokassa_payment_url в блоке Калькулятор.
В поле Калькулятор присвойте результат функции get_robokassa_payment_url переменной.
Вы можете выбрать имя переменной самостоятельно. На скриншотах показаны примеры имен переменных.
Платежная ссылка будет сохранена в этой переменной.
Вы можете отобразить переменную как ссылку в сообщении или поместить ее в кнопку с текстом, например Оплатить.
Пример платежной ссылки:
https://auth.robokassa.ru/Merchant/Index.aspx?MerchantLogin=test_salebot&OutSum=800&InvId=1412&IsTest=1&SignatureValue=0427369c3bd068bae30935f896060dda
Многие платежные системы поддерживают облачные онлайн-кассы, необходимые в соответствии с Федеральным законом № 54-ФЗ.
Ознакомьтесь с требованиями к чекам на сайте вашего выбранного платежного провайдера, чтобы избежать проблем с налоговыми органами.
Калькулятор
Пример 1:

Описание параметров
get_robokassa_payment_url(amount, description, products_for_receipt, recurrent, currency)
Параметры функции
| Параметр | Описание |
|---|---|
amount |
Сумма платежа. Укажите цену товара в рублях. Обязательный параметр. |
description |
Название товара. Это поле может содержать только английские или русские буквы, цифры и знаки препинания. Максимальная длина — 100 символов. Эта информация отображается в интерфейсе Robokassa и в электронном чеке, который получает клиент после успешной оплаты. Обязательный параметр. |
products_for_receipt |
Параметры генерации чека. Подробнее здесь. |
recurrent |
Включает рекуррентные платежи. Передайте 1, если рекуррентные платежи включены, или None, если они отключены. |
currency |
Трехбуквенный код валюты. Значение должно строго соответствовать параметрам, принимаемым Robokassa.USD — доллар США;EUR — евро;KZT — тенге. |
Примеры кода
Пример 1: Платежная ссылка без чека
res = get_robokassa_payment_url(100, 'Купи меня')
Пример 2: Платежная ссылка с чеком
receipt = [{"name":"DDDDDDDD","amount":"44","quantity":"1","vat_code":"5","method":"full_payment","object":"commodity"}]
res = get_robokassa_payment_url(100, 'Купи меня', receipt, '3', 1, 1)
Вы можете отобразить переменную как ссылку в сообщении или поместить ее в кнопку с текстом, например Купить.
Если блок содержит несколько функций платежной ссылки и возникает ошибка, значение ошибки будет сохранено в переменной:
error_payment_funcБудет сохранена ошибка от последней функции в Калькуляторе.
После правильной настройки платежа и генерации платежной ссылки протестируйте настройку.
Как добавить описание платежа
Вы можете добавить описание платежа, установив переменную:
payment_description

Описание будет отображаться в платежной форме и в чеке.
Как обработать результат
Если платеж прошел успешно, обратный вызов будет отправлен АВТОМАТИЧЕСКИ в диалог с клиентом в разделе Клиенты.
Обратный вызов состоит из:
- 10 символов секретного ключа платежного провайдера;
-
_success; - суммы платежа через пробел.
Обратный вызов генерируется автоматически. Вам не нужно создавать его самостоятельно или запрашивать его в службе поддержки платежного провайдера.
Пример:
ovg58keefc_success 1500
Где:
-
ovg58keefc— 10 символов секретного ключа платежного провайдера; -
_success— результат обработки запроса, указывающий на успешный платеж; -
1500— сумма платежа.
Обратите внимание
Обратный вызов виден только вам в диалоге с клиентом.
Обратный вызов не виден клиенту, но вы можете настроить ответ на успешный платеж.
Пример
Настройки блока, использующего функцию get_robokassa_payment_url:
1. Отображение ссылки в тексте сообщения

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

2. Отображение ссылки в кнопке

Выполнение блока:

Обратный вызов после успешного платежа:
