Як підключити платіжну систему
Платіжна система вбудована в Telegram. Щоб приймати платежі в месенджері, потрібно:
- Підключити платіжну систему до вашого бота за допомогою BotFather.
- Перейти в налаштування потрібного бота та вибрати "Payments" з меню.


Дотримуйтесь інструкцій, щоб підключити доступну платіжну систему, та скопіюйте наданий токен.



Як виставити рахунок клієнту
Щоб надіслати рахунок у Telegram, використовуйте метод та вкажіть необхідні параметри.
tg_send_invoice(provider_token, platform_id, title, description, currency, prices, photo_url, payload, protect_content, disable_notification, need_name, need_phone_number, need_email, reply_to_message_id, reply_markup, message_thread_id, provider_data)
ВАЖЛИВО! Усі параметри мають передаватися в порядку, зазначеному у функції. Якщо потрібно вказати певний параметр і пропустити інші, залиште порожні значення або значення, зазначені в документації для параметрів, які вам не потрібні.
Приклад:

Якщо будь-який із параметрів need_name, need_phone_number або need_email увімкнено, користувачеві буде запропоновано надати цю інформацію перед завершенням оплати. Після успішної оплати дані зберігаються у відповідних змінних клієнта.
Приклад:

Результат: дані запитуються перед оплатою.
Зворотний виклик платежу
Якщо платіж успішний, у чат користувача буде надіслано зворотний виклик із таким вмістом:
tg_payment 1372995196 120.75 USD 2ff747b9-000f-5000-b000-16d7e3517aa', де
- course_pay - payload - корисне навантаження з оригінального запиту на створення рахунку;
- 1372995196 - ID чату, куди спочатку було надіслано рахунок;
- 120.75 - загальна сума платежу;
- USD - валюта;
- 2ff747b9-000f-5000-b000-16d7e3517aa9 - ID платежу в системі мерчанта.

Крім того, якщо були запитані ім'я, номер телефону та/або email користувача, відповідні змінні будуть призначені клієнту:
tg_payment_name, tg_payment_phone та tg_payment_email

Зворотний виклик успішного платежу буде надіслано в особисті повідомлення користувача з ботом.
Користувач повинен мати існуючий чат з ботом (тобто він має запустити або підписатися на бота) до здійснення платежу. Інакше бот не зможе надіслати йому особисте повідомлення.
Після отримання вебхука платежу платіж буде автоматично підтверджено за допомогою методу answerPreCheckoutQuery. https://core.telegram.org/bots/api#answerprecheckoutquery
Закріплене повідомлення з кнопкою оплати
Потрібно використовувати функцію закріплення повідомлення після підключення платіжної системи.
tg_pin_chat_message(platform_id, message_id, disable_notification)
Приклад:
Крок 1:
prices = [["course", 100], ["VAT", 20.75]]
result=tg_send_invoice('381764678:TEST:129736', platform_id, 'Course on courses', 'Creating courses is easy', 'USD', prices, 'https://salebot.pro/promo.png', 'course_pay','0', '0', '1', '1', '1', '', '{"inline_keyboard": [[{"text":"Pay", "pay":"True"}]]}')
Крок 2:
В результаті першого кроку ви отримаєте відповідь, з якої потрібно витягти значення message_id за допомогою функції get().
res=get(result,'result')
m_id=get(res,'message_id')

Далі закріпіть повідомлення: tg_pin_chat_message(#{platform_id}, #{m_id}, 1)
Приклад: мінімальний набір параметрів
prices = [["super course", 100]]
result= tg_send_invoice('381764678:TEST:129736', platform_id, 'Course on courses', 'Creating courses is super easy', 'USD', prices)

Приклад: клавіатура
prices = [["course", 100], ["VAT", 20.75]]
tg_send_invoice('381764678:TEST:129736', platform_id, 'Course on courses', 'Creating courses is easy, 'USD', prices, 'https://mavibot.ai/promo.png', 'course_pay','0', '0', '1', '1', '1', '', '{"inline_keyboard": [[{"text":"Pay", "pay":"True"}], [{"text":"Another button", "callback_data": "Another button"}]]}')



