For the complete documentation index, see llms.txt. This page is also available as Markdown.

Robokassa (KZ)

Как настроить Robokassa

Рассмотрим как реализовать прием оплат в боте через сервис Robokassa.

  1. Создайте интернет-магазин в личном кабинете сервиса 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?

Перейдите в раздел "Эквайринг" и нажмите "Подключить" на плашке Робокассы:

и заполните форму в открывшемся оне:

  1. Поле Идентификатор магазина — Shop ID, который вы можете найти в настройках магазина в личном кабинете Robobkassa.

  2. Пароли #1, пароль #2 — уникальные сгенерированные последовательности цифр+букв.

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

Применяется со значениями:

  • Без НДС.

  • НДС по ставке 0%.

  • НДС по ставке 5%

  • НДС чека по расчетной ставке 12%.

  • НДС чека по расчетной ставке 16%.

Как сформировать ссылку на оплату

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

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

Как создать кнопку с функцией "Оплата" рассказали здесь

Рассмотрим все возможные параметры данной кнопки. О том как создавать кнопку с функцией Оплата рассказано в этой статье:

Обязательные параметры кнопки Оплата

Для формирования ссылки на оплату в настройках кнопки необходимо указать обязательные параметры: Сумма и Наименование товара.

поле Сумма. В этом поле указываем стоимость товара в рублях

поле Наименование товара. В этом поле можно использовать только символы английского или русского алфавита, цифры и знаки препинания. Максимальная длина — 100 символов. Эта информация отображается в интерфейсе Robokassa и в Электронной квитанции, которую получает клиент после успешного платежа.

чекбокс Автоплатеж. Для подключения автоплатежа

чекбокс С уведомление о клике. Для отслеживания перехода по ссылке для оплаты можно поставить галочку. В таком случае, при клике по кнопке в диалог с клиентом в Сейлбот придет уведомление о том, что был совершен переход по ссылке

На данное уведомление можно настраивать дальнейшую логику работы бота.

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

Для формирования чека

меню Данные для формирования чека. При клике откроется выпадающее меню с параметрами для формирования чека:

поле Название товара. Обязательное для формирования чека.

поле Полная сумма в рублях. В данном поле необходимо указать сумму к оплате с учетом количества товаров. Если количество равно 1, то Полная сумма в рублях равна значению в поле Сумма в обязательном поле настройки кнопки

поле Количество. Количество или вес товара. Передать можно целое или дробное число через точку. Пример, 5 или 10.3

Переменные клиента, которые будут созданы автоматически при использовании кнопки с функцией Оплата

Как только пользователь получит блок с кнопкой "Оплата" автоматически будут созданы переменные клиента:

Рис. 9. переменная payments

Служебная переменная клиента __payments , которая хранит сумму, идентификатор созданной ссылки, нужна для идентификации хука от платежной системы.

Переменная клиента error_payment_button создается, если при формировании кнопки возникла ошибка.

В значение переменной error_payment_button запишется либо текст ошибки, либо ответ платежной системы с ошибкой.

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

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

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

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

ovg58keefc : 10 символов секретного ключа платежной системы

_success : результат обработки запроса (успешный платеж)

2999 : сумма платежа

Отработка блока:

Колбек:

Коллбэки (уведомления) от платежной системы пользователь НЕ ВИДИТ. Они отображаются только во вкладке "Клиенты" и видны оператору/администратору.

Пример настройки реакции на коллбэк

В блоке с условием (это может быть как блок "Стартовое условие", так и блок "Не состояние с условием") необходимо указать коллбэк, который приходит при оплате.

Далее при оплате клиенту будет приходить сообщение из блока, в котором настроена реакция на коллбэк:

Платеж с ошибкой

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

Например: ovg58keefc_different_amounts 123456 , где:

ovg58keefc : 10 символов секретного ключа платежной системы

_different_amounts : результат обработки запроса (сумма оплаты отличается от суммы в ссылке)

123456 : уникальный ID платежа

Функция 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:

Переменную можно вывести на экран ссылкой в сообщении или разместить в кнопке с текстом, например, "Купить".

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

Как добавить описание платежа

Вы можете добавить описание к платежу, установив переменную payment_description

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

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

Если оплата пройдет успешно, то в диалог клиента (раздел "Клиенты") АВТОМАТИЧЕСКИ придет КОЛЛБЭК, который состоит из 10 символов секретного ключа платежной системы, слова _success и через пробел сумма платежа. Коллбэк генерируется автоматически, его не надо составлять самим или запрашивать в поддержке платежной системы,

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

ovg58keefc : 10 символов секретного ключа платежной системы

_success : результат обработки запроса (успешный платеж)

1500 : сумма платежа

Пример

Настройки блока с функцией get_robokassa_payment_url:

  1. Если выдаете ссылку в тексте:

Коллбэк при успешной оплате:

  1. Ссылка в кнопке:

Отработка блока:

Коллбэк при успешной оплате:

Создание ссылки с помощью переменной payment_sum и дополнительных параметров

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

Обратите внимание: переменной payment_sum присваивается значение последней, после необязательных переменных payment_description, product_name и т.д.

Для генерации ссылки на оплату, вам необходимо установить значение переменной payment_sum, сразу после этого появится переменная robokassa_pay_url. Эту переменную можно вывести на экран ссылкой или разместить на кнопке с текстом "Оплатить".

ПРИМЕР отработки блоки (ссылки на оплату):

Чтобы передавать ссылку в кнопке, укажите переменную в кнопке в поле url:

Результат оплаты при формировании ссылки на оплату через payment_sum

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

Также после успешной оплаты переменная robokassa_payment_completed устанавливается в True.

Этот коллбэк НЕ ВИДИТ пользователь, они отображаются только оператору

После завершения оплаты клиенту добавится переменная robokassa_callback_data, содержащая данные ответа платежной системы по совершенной операции. Из полученного словаря можно извлечь необходимые данные при помощи метода get.

Как создать тестовую схему

Пример схемы, которая позволит протестировать и быстро начать работу с сервисом Robokassa:

На рисунке показан пример первого блока, в котором пользователя спрашивают, сколько он хочет оплатить.

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

Далее в следующем блоке оплаты добавьте кнопку и установите в строку url переменную robokassa_pay_url:

Схема отработает следующим образом:

При клике на кнопку сумма, которую прописал клиент, будет доступна к оплате.

После оплаты придет коллбэк, на который также можно настроить реакцию.

Важно!

Колбека о неуспешной оплате в Robokassa не существует.

Для этого добавьте еще один блок с условием, а в строке с условием пропишите коллбэк вида "qxgZ7zkNX4HHnG8UpZ61_success":

Тип проверки обязательно поставьте "Полное совпадение"

Схема будет отрабатывать следующим образом:

Как сформировать запрос на фискализацию

В кнопке с функцией “Оплата”

При создании кнопки в выпадающем меню “Данные для формирования чека”, заполните поля “Название товара”, “Полная сумма в рублях”, “Количество”, “Ставка НДС”, “Система налогообложения”.

Подробнее в разделе "Для формирования чека".

С помощью переменной payment_sum

Так как генерация ссылки производится в момент, когда вы установили значение переменной payment_sum, вам необходимо задать переменные products_for_receipt и robokassa_sno.

Пример:

session_timeout = 7200

product_name = Первый платеж

robokassa_sno = osn

products_for_receipt = [{"name": "Наименование товара", "quantity": 2, "sum": 2, "tax": "none"}, {"name": "Наименование товара 2", "quantity": 1, "sum": 6, "tax": "none"}]

payment_sum = 10

Для функций get_robokassa_payment_url и robokassa_recurrent_payment

При вызове функций get_robokassa_payment_url или функции robokassa_recurrent_payment передайте в качестве аргументов переменные taxation и products_for_receipt согласно описанию ниже.

Функции подготовят ссылку с учётом товарной номенклатуры и сформируют запрос на фискализацию.

  1. products_for_receipt - массив, содержащий товарную номенклатуру.

Каждая единица товара должна быть представлена в виде словаря, содержащего параметры name, quantity, sum, tax, payment_method, payment_object и nomenclature_code.

! products_for_receipt нужно указать в следующем формате:

[

{"name": "Наименование товара", "quantity": "Количество товара", "sum": "Стоимость товара", "tax": "Ставка НДС"},

{"name": "Наименование товара 2", "quantity": "Количество товара 2", "sum": "Стоимость товара", "tax": "Ставка НДС"}

]

где,

1) наименование товара - наименование товара. Если в наименовании товара вы используете специальные символы, например кавычки, то их обязательно необходимо экранировать.

2) количество - количество или вес товара (целое или дробное число через точку)

3) сумма или сумма к оплате (обязательный, два варианта имени) - полная сумма в рублях за все количество данного товара с учетом всех возможных скидок, бонусов и специальных цен.

4) НДС или код НДС - (обязательный, два варианта имени, значение зависит от имени) - ставка НДС. Этот параметр устанавливает налоговую ставку в ККТ.

Значение
Описание

без НДС

без НДС

НДС по ставке 0%

НДС по ставке 0%

НДС по ставке 5%

НДС по ставке 5%

НДС по ставке 12%

НДС по ставке 12%

НДС по ставке 16%

НДС по ставке 16%

5) метод или способ расчёта - (два варианта имени, необязательный параметр) признак способа расчёта.

Возможные значения параметра:
Что подразумевает значение:

предоплата 100%. Полная предварительная оплата до момента передачи предмета расчёта

предоплата 100%. Полная предварительная оплата до момента передачи предмета расчёта

предоплата. Частичная предварительная оплата до момента передачи предмета расчёта

предоплата. Частичная предварительная оплата до момента передачи предмета расчёта

аванс

аванс

полный расчёт. Полная оплата, в том числе с учетом аванса (предварительной оплаты) в момент передачи предмета расчёта;

полный расчёт. Полная оплата, в том числе с учетом аванса (предварительной оплаты) в момент передачи предмета расчёта;

частичный расчёт и кредит. Частичная оплата предмета расчёта в момент его передачи с последующей оплатой в кредит;

частичный расчёт и кредит. Частичная оплата предмета расчёта в момент его передачи с последующей оплатой в кредит;

передача в кредит. Передача предмета расчёта без его оплаты в момент его передачи с последующей оплатой в кредит;

передача в кредит. Передача предмета расчёта без его оплаты в момент его передачи с последующей оплатой в кредит;

оплата кредита. Оплата предмета расчёта после его передачи с оплатой в кредит (оплата кредита).

оплата кредита. Оплата предмета расчёта после его передачи с оплатой в кредит (оплата кредита).

6) предмет расчёта или предмет расчёта - (два варианта имени, необязательный параметр) предмет расчета (если не передать, будет товар)

Возможные значения параметра
Что подразумевает значение

товар

Товар. О реализуемом товаре, за исключением подакцизного товара (наименование и иные сведения, описывающие товар)

подакцизный товар

Подакцизный товар. О реализуемом подакцизном товаре (наименование и иные сведения, описывающие товар)

работа

Работа. О выполняемой работе (наименование и иные сведения, описывающие работу)

услуга

Услуга. Об оказываемой услуге (наименование и иные сведения, описывающие услугу)

ставка азартной игры

Ставка азартной игры. О приеме ставок при осуществлении деятельности по проведению азартных игр

выигрыш азартной игры

выигрыш азартной игры. О выплате денежных средств в виде выигрыша при осуществлении деятельности по проведению азартных игр

лотерея

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

выигрыш лотереи

выигрыш лотереи. О выплате денежных средств в виде выигрыша при осуществлении деятельности по проведению лотерей

интеллектуальная деятельность

предоставление результатов интеллектуальной деятельности. О предоставлении прав на использование результатов интеллектуальной деятельности или средств индивидуализации

платеж

платеж. Об авансе, задатке, предоплате, кредите, взносе в счет оплаты, пени, штрафе, вознаграждении, бонусе и ином аналогичном предмете расчета

агентское вознаграждение

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

составной

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

иной

иной предмет расчета. О предмете расчета, не относящемуся к выше перечисленным предметам расчета

имущественное право

имущественное право

внереализационный доход

внереализационный доход

страховые взносы

страховые взносы

торговый сбор

торговый сбор

курортный сбор

курортный сбор

7) код маркировки - (условно обязательный) маркировка товара: передаётся в том виде, как она напечатана на упаковке товара.

Формирование чека при приеме оплаты в Курсах на странице курса

Нужно выбрать в разделе "Оплата" в настройках курса платежную систему Robokassa:

Заполните в разделе "Эквайринг" в настройках платежной системы (если не сделали это ранее) поле "Ставка НДС".

Какие могут быть ошибки

Код ошибки 40

«Повторная оплата счета с тем же номером невозможна».

После успешного платежа необходимо перевести диалог в блок "Конец сбора данных", чтобы сформировался новый номер платежа.

Код ошибки 34

«Услуга рекуррентных платежей не разрешена магазину».

Код ошибки 31

«Неверная сумма платежа».

Такая ошибка может возникнуть при переадресации клиента на платежную страницу для выставления счета. Она означает, что вы не передаете нам сумму, на которую необходимо провести платеж, либо передаете сумму, равную нулю.

Код ошибки 29

«Неверный параметр Signature»

Здесь причин может быть несколько, но все они связаны со скриптом, отвечающим за инициализацию оплаты (а конкретнее, его часть, которая формирует параметр Signature по формуле, состоящей из переменных). Эта ошибка встречается довольно часто, и вот 3 возможные причины:

  • Первая: некорректный Идентификатор магазина (MerchantLogin);

  • Вторая: неверный Пароль 1 (MerchantPass1);

  • Третья: вы используете дополнительные параметры (shp_), которые добавлены в программный код кассы, но не занесены в формулу подсчета - или наоборот, в формуле подсчета они указаны, а в коде нет. Если таковые используются, передавайте их в алфавитном порядке – как в параметрах на оплату, так и в формуле подсчета Signature.

Важный момент! Если вы работаете в тестовом режиме, передавая параметр IsTest=1 или включая его галочкой в настройках модуля/бота, используйте только тестовую пару технических паролей (закладка «Технические настройки» карточки вашего магазина).

Код ошибки 23

«Тестовый платёж не может быть создан. У магазина отсутствуют настройки тестовых параметров».

Это значит, что перед проведением тестового платежа вы не заполнили все необходимые данные в блоке «Параметры проведения тестовых платежей» закладки «Технические настройки».

Код ошибки 25

«Магазин не активирован».

Эта ошибка встречается нередко, и здесь могут быть 2 причины.

  • Первая: это действительно так – и необходимо активировать магазин, а лишь потом выставлять счет.

  • Вторая: вы неверно указали Идентификатор магазина в технических настройках на сайте. Посмотреть правильный можно в разделе «Мои магазины» Личного кабинета. Перейдите в закладку «Технические настройки» и найдите поле «Идентификатор магазина». Скопируйте идентификатор и введите его в настройках сайта.

Как проводить автоматические платежи сервиса Robokassa

Пошаговая инструкция подключения автоплатежей для сервиса Robokassa

Шаг 1. Включить автоплатежи в кнопке оплаты

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

Далее в настройках кнопки найдите чекбокс "Автоплатежи" и активируйте его:

Если вы хотите принимать автоплатежи во всех кнопках на оплату, то включить автоплатежи можно в настройках подключения платежной системы:

Шаг 2. Провести обычный платёж. Далее нужно провести обычный платеж (получить ссылку на оплату и чтоб клиент ее оплатил), как описано выше. После успешного платежа у клиента появится переменная robokassa_previous_invoice_id с идентификатором платежа.

Пример формирования ссылки для обычного платежа

Шаг 3. Планируем автосписание

От блока Успешная оплата планируем стрелку с таймером к блоку с автоплатежом. Для примера запланируем следующий платеж через 30 дней.

Чтобы прошёл автоплатеж в нужном блоке в поле Калькулятор, нужно добавить вызов функции robokassa_recurrent_payment, передав в неё параметры в указанном порядке:

  1. сумма к оплате - сумма к оплате (стоимость товара в рублях)

  2. описание - наименование товара. В этом поле можно использовать только символы английского или русского алфавита, цифры и знаки препинания. Максимальная длина — 100 символов. Эта информация отображается в интерфейсе Robokassa и в Электронной квитанции, которую получает клиент после успешного платежа.

  3. страна - доменная зона (‘ru’ или ‘kz’)

  4. products_for_receipt - параметры для формирования чеков.

Подробнее в разделе "Как сформировать запрос на фискализацию -> Для функций get_robokassa_payment_url и robokassa_recurrent_payment

  1. taxation - система налогообложения.

Подробнее в разделе "Как сформировать запрос на фискализацию -> Для функций get_robokassa_payment_url и robokassa_recurrent_payment

Пример запроса на автоплатеж:

Шаг 4. Планируем регулярные списания и настраиваем возможность отказаться от автоплатежей. Для регулярного повтора платежей планируем петлю - стрелку с задержкой, например, 30 дней.

Петля - повторный переход в блок Автоплатёж

Если у вас предусмотрена возможность отмены автоплатежей, то для того, чтобы следующий платеж не был выполнен необходимо удалить у клиента переменную robokassa_previous_invoice_id Для этого в поле Калькулятор удаляем переменную: robokassa_previous_invoice_id = ""

Обычный платеж при включенных автоплатежах

Если включены автоплатежи, но нужна ссылка без подписки (без автоплатежей), то до формирования ссылки нужно задать переменную robokassa_manual_recurrent_disable со значением 1 В поле Калькулятор объявим переменную: robokassa_manual_recurrent_disable = 1

Настройки блока для формирования ссылки на обычный платеж при включенных Автоплатежах

Внимание!

Коллбэк при автоплатежах идентичен коллбэку, который приходит при успешных оплатах.

Как настроить реакцию на коллбэк, рассказали в разделе "Как обработать результат"

Какие требования сервиса Robokassa к чат-ботам

Официальный ответ сервиса Robokassa:

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

Ссылку на телеграммы канал в качестве URL мы не включаем. Также требования к наполнению сайта: "Сайт должен быть функционирующий, с заполненным контентом, работающими внутренними ссылками.

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

На Вашем сайте обязательно должна быть размещена актуальная информация: телефон, e-mail, правила оформления и сроки исполнения заказа, условия его оплаты, доставки и возврата.

Каждый сайт рассматривается индивидуально.

Robokassa в Telegram

Подключение тестового бота RobokassaPaymentTestBot.

  1. При выборе Connect Robokassa Test пользователь переходит в бота RobokassaPaymentTestBot.

  2. Пользователь нажимает кнопку /начать.

  3. Пользователь получает ответ от бота «Введите ID магазина”.

  4. Необходимо ввести id от магазина в сервисе Robokassa.

  5. Бот попросит подтверждение, подтверждающее владение магазином посредством отправки смс на номер, указанный в магазине: «Отправлена СМС на номер *%%%%» где %%%% - последние 4 цифры телефона

  6. Пользователь вводит 6-значный код.

  7. Если все успешно то пользователю покажется сообщение: “Вы успешно подключили бота @BotName к Robokassa. @BotFather сообщит Вам новый токен.”

  8. После этого в BotFather появляется платежный токен, к которому подключаются платежи.

Подключение live- бота RobokassaPaymentBot.

  1. При выборе Connect Robokassa Live пользователь переходит в бота RobokassaPaymentBot,

  2. Пользователь нажимает кнопку /начать.

  3. Пользователь получает ответ от бота «Введите ID магазина”.

  4. Необходимо ввести id от магазина в сервисе Robokassa.

  5. Бот попросит подтверждение, подтверждающее владение магазином посредством отправки смс на номер, указанный в магазине: «Отправлена СМС на номер *%%%%», где %%%% - последние 4 цифры телефона

  6. Пользователь вводит 6-значный код.

  7. Если все успешно то пользователю покажется сообщение: “Вы успешно подключили бота @BotName к Robokassa. @BotFather сообщит Вам новый токен.”

  8. После этого в BotFather появляется платежный токен, к которому подключаются платежи.

Обработка результатов оплаты аналогична описанному тут

Последнее обновление