Як налаштувати 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?
Перейдіть до розділу "Еквайринг" та натисніть "Підключити" на плашці Робокаси:

і заповніть форму у вікні, що відкрилося:
- Поле Ідентифікатор магазину — Shop ID, який ви можете знайти в налаштуваннях магазину в особистому кабінеті Robobkassa.
- Паролі #1, пароль #2 — унікальні згенеровані послідовності цифр+літер.
- поле Ставка ПДВ. Необхідно вказати відповідний код для передачі значення ПДВ. Це поле встановлює податкову ставку в ККТ. Визначається для кожного виду товару окремо, але за всі одиниці конкретного товару разом.
Застосовується зі значеннями:
- Без ПДВ.
- ПДВ за ставкою 0%.
- ПДВ за ставкою 5%
- ПДВ чека за розрахунковою ставкою 12%.
- ПДВ чека за розрахунковою ставкою 16%.
Як сформувати посилання на оплату
Сформувати посилання на оплату в блоці можна ОДНИМ ІЗ доступних способів:
Кнопка з функцією Оплата
Посилання на оплату можна створювати в кнопці з функцією "Оплата".
Як створити кнопку з функцією "Оплата" розповіли тут
Розглянемо всі можливі параметри цієї кнопки. Про те, як створювати кнопку з функцією Оплата, розказано в цій статті:
Обов'язкові параметри кнопки Оплата
Для формування посилання на оплату в налаштуваннях кнопки необхідно вказати обов'язкові параметри: Сума та Найменування товару.

поле Сума. У цьому полі вказуємо вартість товару в рублях
поле Найменування товару. У цьому полі можна використовувати лише символи англійської або російської абетки, цифри та знаки пунктуації. Максимальна довжина — 100 символів. Ця інформація відображається в інтерфейсі Robokassa та в Електронній квитанції, яку отримує клієнт після успішного платежу.
НЕ МОЖНА використовувати подвійні лапки в найменуванні товару: видаліть або замініть на одинарні лапки.
чекбокс Автоплатіж. Для підключення автоплатежу
чекбокс З повідомленням про клік. Для відстеження переходу за посиланням для оплати можна поставити галочку. У такому разі, при кліку по кнопці в діалог з клієнтом у Сейлбот прийде повідомлення про те, що було здійснено перехід за посиланням
На це повідомлення можна налаштовувати подальшу логіку роботи бота.
Багато платіжних систем підтримують хмарні онлайн-каси, вони необхідні згідно з 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 і через пробіл унікальний 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:

Опис параметрів
get_robokassa_payment_url(amount, description, products_for_receipt, recurrent, currency)
Параметри функції:
| Параметр | Значення параметра |
|---|---|
amount |
**Сума до оплати.** У цьому полі вказуємо вартість товару в рублях. (Обов'язковий параметр) |
description |
**Найменування товару.** У цьому полі можна використовувати лише символи англійської або російської абетки, цифри та знаки пунктуації. Максимальна довжина — 100 символів. Ця інформація відображається в інтерфейсі Robokassa та в Електронній квитанції, яку отримує клієнт після успішного платежу. (Обов'язковий параметр) |
|
|
**Параметри для формування чеків.** Детальніше читайте тут. |
recurrent |
**Підключення автоплатежу.** Якщо автоплатіж увімкнено, то передати значення 1, якщо вимкнено — передайте значення None |
currency |
**Трилітерний код валюти.** Необхідно передавати значення строго за параметрами, що приймаються сервісом Robokassa. |
Приклад коду для копіювання
Приклад 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:
- Якщо видаєте посилання в тексті:

Важливо!
Посилання на оплату є унікальним: його не можна скопіювати і потім направляти іншим клієнтам!
Направляйте посилання на оплату через змінну в боті (див. рис. 17).
Колбек при успішній оплаті:

- Посилання в кнопці:

Відпрацювання блоку:

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

Створення посилання за допомогою змінної 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.
Цей колбек НЕ БАЧИТЬ користувач, вони відображаються лише оператору
Тип порівняння має бути "Повний збіг"
Для здійснення повторного платежу обов'язково необхідно обнулити payment_sum, раніше сформоване посилання і вже після переназначити змінну payment_sum для отримання свіжого посилання
Приклад обнулення змінних:
robokassa_pay_url=''
payment_sum=0
Після завершення оплати клієнту додасться змінна robokassa_callback_data, що містить дані відповіді платіжної системи по виконаній операції. З отриманого словника можна витягти необхідні дані за допомогою методу get.
Як створити тестову схему
Приклад схеми, яка дозволить протестувати та швидко почати роботу з сервісом Robokassa:

На рисунку показано приклад першого блоку, в якому користувача запитують, скільки він хоче оплатить.
На рисунку нижче налаштування стрілки, в ній має бути увімкнено перемикач "Користувач вводить дані" та в полі вписана змінна payment_sum:

Далі в наступному блоці оплати додайте кнопку та встановіть в рядок url змінну robokassa_pay_url:


Схема відпрацює наступним чином:

При кліку на кнопку сума, яку прописав клієнт, буде доступна до оплати.
Після оплати прийде колбек, на який також можна налаштувати реакцію.

Важливо!
Колбека про неуспішну оплату в Robokassa не існує.
Для цього додайте ще один блок з умовою, а в рядку з умовою пропишіть колбек виду "qxgZ7zkNX4HHnG8UpZ61_success":

Тип перевірки обов'язково поставте "Повний збіг"
Схема буде відпрацьовувати наступним чином:

Як сформувати запит на фіскалізацію
В кнопці з функцією “Оплата”
При створенні кнопки в випадаючому меню “Дані для формування чека”, заповніть поля “Назва товару”, “Повна сума в рублях”, “Кількість”, “Ставка ПДВ”, “Система оподаткування”.

Детальніше в розділі "Для формування чека".
За допомогою змінної payment_sum
Оскільки генерація посилання відбувається в момент, коли ви встановили значення змінної payment_sum, вам необхідно задати змінні products_for_receipt та robokassa_sno.
Важливо:
- при формуванні посилання через змінну payment_sum, система оподаткування задається в змінній robokassa_sno.
- payment_sum має дорівнювати загальній вартості всіх товарів (сума всіх параметрів sum).
Приклад:
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 згідно з описом нижче.
Функції підготують посилання з урахуванням товарної номенклатури та сформують запит на фіскалізацію.
Важливо:
Змінні taxation та products_for_receipt мають задаватися для кожного окремого платежу.
Сервіс Robokassa не зберігає дані параметри і не зможе провести фіскалізацію платежів, для яких не було передано номенклатуру.
- 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) name - найменування товару. Якщо в найменуванні товару ви використовуєте спеціальні символи, наприклад лапки, то їх обов'язково необхідно екранувати.
2) quantity - кількість або вага товару (ціле або дробове число через крапку)
3) sum або amount (обов'язковий, два варіанти імені) - повна сума в рублях за всю кількість даного товару з урахуванням всіх можливих знижок, бонусів та спеціальних цін.
4) tax або vat_code - (обов'язковий, два варіанти імені, значення залежить від імені) - ставка ПДВ. Цей параметр встановлює податкову ставку в ККТ.
**Значення для tax: **
| Значення | Опис |
|---|---|
| none | без ПДВ |
| vat0 | ПДВ за ставкою 0% |
| vat5 | ПДВ за ставкою 5% |
| vat12 | ПДВ за ставкою 12% |
| vat16 | ПДВ за ставкою 16% |
Значення для vat_code:
| Значення | Опис |
|---|---|
| '1' | Без ПДВ |
| '2' | ПДВ за ставкою 0% |
| '8' | ПДВ за ставкою 5% |
| '15' | ПДВ за ставкою 12% |
| '14' | ПДВ за ставкою 16% |
5) method або payment_method - (два варіанти імені, необов'язковий параметр) ознака способу розрахунку.
| Можливі значення параметра: | Що має на увазі значення: |
|---|---|
| full_prepayment | передоплата 100%. Повна попередня оплата до моменту передачі предмета розрахунку |
| prepayment | передоплата. Часткова попередня оплата до моменту передачі предмета розрахунку |
| advance | аванс |
| full_payment | повний розрахунок. Повна оплата, в тому числі з урахуванням авансу (попередньої оплати) в момент передачі предмета розрахунку; |
| partial_payment | частковий розрахунок і кредит. Часткова оплата предмета розрахунку в момент його передачі з подальшою оплатою в кредит; |
| credit | передача в кредит. Передача предмета розрахунку без його оплати в момент його передачі з подальшою оплатою в кредит; |
| credit_payment | оплата кредиту. Оплата предмета розрахунку після його передачі з оплатою в кредит (оплата кредиту). |
6) object або payment_object - (два варіанти імені, необов'язковий параметр) предмет розрахунку (якщо не передати, буде commodity (товар))
| Можливі значення параметра | Що має на увазі значення |
|---|---|
| commodity | Товар. Про реалізований товар, за винятком підакцизного товару (найменування та інші відомості, що описують товар) |
| excise | Підакцизний товар. Про реалізований підакцизний товар (найменування та інші відомості, що описують товар) |
| job | Робота. Про виконувану роботу (найменування та інші відомості, що описують роботу) |
| service | Послуга. Про послугу, що надається (найменування та інші відомості, що описують послугу) |
| gambling_bet | Ставка азартної гри. Про прийом ставок при здійсненні діяльності з проведення азартних ігор |
| gambling_prize | виграш азартної гри. Про виплату грошових коштів у вигляді виграшу при здійсненні діяльності з проведення азартних ігор |
| lottery | лотерейний квиток. Про прийом грошових коштів при реалізації лотерейних квитків, електронних лотерейних квитків, прийомі лотерейних ставок при здійсненні діяльності з проведення лотерей |
| lottery_prize | виграш лотереї. Про виплату грошових коштів у вигляді виграшу при здійсненні діяльності з проведення лотерей |
| intellectual_activity | надання результатів інтелектуальної діяльності. Про надання прав на використання результатів інтелектуальної діяльності або засобів індивідуалізації |
| payment | платіж. Про аванс, завдаток, передоплату, кредит, внесок в рахунок оплати, пеню, штраф, винагороду, бонус та інший аналогічний предмет розрахунку |
| agent_commission | агентська винагорода. Про винагороду користувача, який є платіжним агентом (субагентом), банківським платіжним агентом (субагентом), комісіонером, повіреним або іншим агентом; |
| composite | складовий предмет розрахунку. Про предмет розрахунку, що складається з предметів, кожному з яких може бути присвоєно значення вище перерахованих ознак |
| another | інший предмет розрахунку. Про предмет розрахунку, що не відноситься до вище перерахованих предметів розрахунку |
| property_right | майнове право |
| non-operating_gain | позареалізаційний дохід |
| insurance_premium | страхові внески |
| sales_tax | торговельний збір |
| resort_fee | курортний збір |
- nomenclature_code - (умовно обов'язкове) маркування товару: передається в тому вигляді, як воно надруковане на упаковці товару.
Параметр є обов'язковим лише для тих магазинів, які продають товари, що підлягають обов'язковому маркуванню.
Код маркування розташований на упаковці товару, поруч зі штрих-кодом або у вигляді QR-коду.
Важливо! Для фіскалізації важливо передати параметри чека.
Вірний формат чека передається таким чином:
rec = [{"name": "Пакет 1 місяць", "quantity": 1, "sum": 4800, "tax": "none"}]
response = robokassa_recurrent_payment(4800, 'Навчання в Льотній школі Авіатор', 'ru', rec, 'osn')
де необхідно підставити свої дані.
Формування чека при прийомі оплати в Курсах на сторінці курсу
Потрібно вибрати в розділі "Оплата" в налаштуваннях курсу платіжну систему Robokassa:

Заповніть в розділі "Еквайринг" в налаштуваннях платіжної системи (якщо не зробили це раніше) поле "Ставка ПДВ".

Які можуть бути помилки
Код помилки 40
«Повторна оплата рахунку з тим самим номером неможлива».
Після успішного платежу необхідно перевести діалог у блок "Кінець збору даних", щоб сформувався новий номер платежу.
Код помилки 34
«Послуга рекурентних платежів не дозволена магазину».
Код помилки 31
«Невірна сума платежу».
Така помилка може виникнути при перенаправленні клієнта на платіжну сторінку для виставлення рахунку. Вона означає, що ви не передаєте нам суму, на яку необхідно провести платіж, або передаєте суму, що дорівнює нулю.
Код помилки 29
«Невірний параметр Signature»
Тут причин може бути декілька, але всі вони пов'язані зі скриптом, що відповідає за ініціалізацію оплати (а конкретніше, його частина, яка формує параметр Signature за формулою, що складається зі змінних). Ця помилка зустрічається досить часто, і ось 3 можливі причини:
- Перша: некоректний Ідентифікатор магазину (MerchantLogin);
- Друга: невірний Пароль 1 (MerchantPass1);
- Третя: ви використовуєте додаткові параметри (sh**_**), які додані в програмний код каси, але не внесені до формули підрахунку - або навпаки, у формулі підрахунку вони вказані, а в коді немає. Якщо такі використовуються, передавайте їх в алфавітному порядку – як у параметрах на оплату, так і у формулі підрахунку Signature.
Важливий момент! Якщо ви працюєте в тестовому режимі, передаючи параметр IsTest=1 або вмикаючи його галочкою в налаштуваннях модуля/бота, використовуйте лише тестову пару технічних паролів (вкладка «Технічні налаштування» картки вашого магазину).
Код помилки 23
«Тестовий платіж не може бути створений. У магазину відсутні налаштування тестових параметрів».
Це означає, що перед проведенням тестового платежу ви не заповнили всі необхідні дані в блоці «Параметри проведення тестових платежів» вкладки «Технічні налаштування».
Код помилки 25
«Магазин не активовано».
Ця помилка зустрічається нерідко, і тут можуть бути 2 причини.
- Перша: це дійсно так – і необхідно активувати магазин, а лише потім виставляти рахунок.
- Друга: ви невірно вказали Ідентифікатор магазину в технічних налаштуваннях на сайті. Подивитися правильний можна в розділі «Мої магазини» Особистого кабінету. Перейдіть на вкладку «Технічні налаштування» та знайдіть поле «Ідентифікатор магазину». Скопіюйте ідентифікатор і введіть його в налаштуваннях сайту.
Як проводити автоматичні платежі сервісу Robokassa
Покрокова інструкція підключення автоплатежів для сервісу Robokassa
Крок 1. Увімкнути автоплатежі в кнопці оплати
Перейдіть у налаштування блоку, в якому даєте посилання на оплату, і перейдіть у налаштування кнопки:

Далі в налаштуваннях кнопки знайдіть чекбокс "Автоплатежі" та активуйте його:

Якщо ви хочете приймати автоплатежі у всіх кнопках на оплату, то увімкнути автоплатежі можна в налаштуваннях підключення платіжної системи:

Крок 2. Провести звичайний платіж.
Далі потрібно провести звичайний платіж (отримати посилання на оплату, щоб клієнт її оплатив), як описано вище. Після успішного платежу у клієнта з'явиться змінна robokassa_previous_invoice_id з ідентифікатором платежу.
Змінна robokassa_previous_invoice_id обов'язкова для наступних платежів.
Якщо її видалити, наступний автоплатіж провести НЕ вдасться.
Звертаємо увагу!
Вимкніть чекбокс "Платежі в тестовому режимі" (якщо він у вас активний), інакше змінна robokassa_previous_invoice_id з ідентифікатором платежу не буде сформована!

Крок 3. Плануємо автосписання
Від блоку Успішна оплата плануємо стрілку з таймером до блоку з автоплатежем. Для прикладу заплануємо наступний платіж через 30 днів.

Щоб пройшов автоплатіж у потрібному блоці в полі Калькулятор, потрібно додати виклик функції robokassa_recurrent_payment, передавши в неї параметри у вказаному порядку:
- payment_amount - сума до оплати (вартість товару в рублях)
- description - найменування товару. У цьому полі можна використовувати лише символи англійського або російського алфавіту, цифри та знаки пунктуації. Максимальна довжина — 100 символів. Ця інформація відображається в інтерфейсі Robokassa та в Електронній квитанції, яку отримує клієнт після успішного платежу.
- country - доменна зона ('ru' або 'kz')
- products_for_receipt - параметри для формування чеків.
Детальніше в розділі "Як сформувати запит на фіскалізацію -> Для функцій get_robokassa_payment_url і robokassa_recurrent_payment"
- taxation - система оподаткування.
Детальніше в розділі "Як сформувати запит на фіскалізацію -> Для функцій get_robokassa_payment_url і robokassa_recurrent_payment"
Приклад запиту на автоплатіж:

При виконанні автоплатежу не повинно бути посилання на оплату робокаси та змінної payment_sum!
Крок 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.
- При виборі Connect Robokassa Test користувач переходить у бота RobokassaPaymentTestBot.
- Користувач натискає кнопку /почати.
- Користувач отримує відповідь від бота «Введіть ID магазину”.
- Необхідно ввести id від магазину в сервісі Robokassa.
- Бот попросить підтвердження, що підтверджує володіння магазином за допомогою відправки смс на номер, вказаний у магазині: «Відправлено СМС на номер *%%%%» де %%%% - останні 4 цифри телефону
- Користувач вводить 6-значний код.
- Якщо все успішно, то користувачеві покажеться повідомлення: “Ви успішно підключили бота @BotName до Robokassa. @BotFather повідомить Вам новий токен.”
- Після цього в BotFather з'являється платіжний токен, до якого підключаються платежі.
Підключення live-бота RobokassaPaymentBot.
- При виборі Connect Robokassa Live користувач переходить у бота RobokassaPaymentBot,
- Користувач натискає кнопку /почати.
- Користувач отримує відповідь від бота «Введіть ID магазину”.
- Необхідно ввести id від магазину в сервісі Robokassa.
- Бот попросить підтвердження, що підтверджує володіння магазином за допомогою відправки смс на номер, вказаний у магазині: «Відправлено СМС на номер *%%%%», де %%%% - останні 4 цифри телефону
- Користувач вводить 6-значний код.
- Якщо все успішно, то користувачеві покажеться повідомлення: “Ви успішно підключили бота @BotName до Robokassa. @BotFather повідомить Вам новий токен.”
- Після цього в BotFather з'являється платіжний токен, до якого підключаються платежі.
Обробка результатів оплати аналогічна описаному тут