Как подключить платежную систему
Платежная система встроена в Телеграм. Для того чтобы совершать платежи внутри мессенджера, нужно:
- подключить платежную систему к боту в боте Botfather
- перейти в настройки нужного бота и в меню выбрать Payments
- следуя инструкциям, подключить доступную платежную систему и скопировать выданный токен


Как выставить счет клиенту (invoice)
Для отправки инвойса в 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, то перед оплатой у пользователя будут запрошены эти данные и при успешной оплате они сохранятся в переменные клиента.
Пример:

Результат: перед оплатой запрашиваются данные:

Коллбэк об оплате
После успешной оплаты в чат с пользователем придет коллбэк следующего содержания:
course_pay 1372995196 120.75 RUB 2ff747b9-000f-5000-b000-16d7e3517aa9 , где
- course_pay - payload - из запроса на создание инвойса;
- 1372995196 - ID чата, в который изначально был отправлен инвойс;
- 120.75 - полная сумма платежа;
- RUB - валюта;
- 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 = [["курс", 100], ["НДС", 20.75]]
result=tg_send_invoice('381764678:TEST:129736', platform_id, 'Курс по курсам', 'Создавать курсы - легко', 'RUB', prices, 'https://salebot.pro/promo.png', 'course_pay','0', '0', '1', '1', '1', '', '{"inline_keyboard": [[{"text":"Оплатить", "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 = [["супер-курс", 100]]
result= tg_send_invoice('381764678:TEST:129736', platform_id, 'SuperКурс по курсам', 'Создавать курсы - superлегко', 'RUB', prices)


Пример с клавиатурой
prices = [["курс", 100], ["НДС", 20.75]]
tg_send_invoice('381764678:TEST:129736', platform_id, 'Курс по курсам', 'Создавать курсы - легко', 'RUB', prices, 'https://salebot.pro/promo.png', 'course_pay','0', '0', '1', '1', '1', '', '{"inline_keyboard": [[{"text":"Оплатить", "pay":"True"}], [{"text":"Еще кнопка", "callback_data": "Еще кнопка"}]]}')

