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

Как выставить счет клиенту
Чтобы отправить счет в Telegram, используйте метод
tg_send_invoice(provider_token, platform_id, title, description, currency, prices, photo_url, payload, protect_content, disable_notification, need_name, phone_number, need_email, reply_to_message_id, reply_markup, reply_id) - обязательные параметры выделены жирным
provider_token - токен, полученный в BotFather после подключения платежной системы
platform_id - получатель — идентификатор пользователя, группы или канала
title - название товара, 1-32 символа
description - описание товара, 1-255 символов
currency - валюта платежа (RUB, USD, UAH и так далее https://core.telegram.org/bots/payments#supported-currencies)
payload - первая часть данных о платеже, по умолчанию tg_payment
prices - разбивка цены (описание ниже)
photo_url - ссылка на изображение товара
disable_notification - 1 — отправить с уведомлением, 0 — без уведомления
protect_content - 1 — защита от копирования и скриншотов, 0 — без защиты
need_name - 1, если вам нужно полное имя пользователя для завершения заказа, 0 — без запроса имени
need_phone_number - 1, если вам нужен номер телефона пользователя для завершения заказа, 0 — без запроса номера
need_email - 1, если вам нужен email пользователя для завершения заказа, 0 — без запроса почты
reply_to_message_id - id сообщения, на которое мы отвечаем, '' — не ответ
reply_markup - клавиатура, первая кнопка должна быть кнопкой с типом оплаты
Если указан один из параметров need_name, need_phone_number или need_email, перед оплатой у пользователя будут запрошены данные и сохранены в переменные клиента, если платеж пройдет успешно. На скриншоте ниже запрос всех данных для ввода:
prices - массив массивов с данными о стоимости товаров и дополнительных услуг (доставка, упаковка и т. д.). Отображается на странице оплаты. Сумма указывается либо целым числом, например 125, либо дробным через точку 120.25. Например: [["товар", 2000], ["НДС", 20.75], ["упаковка", 100]
Callback при оплате
После успешной оплаты в чат с пользователем придет колбек следующим образом:
phone_best 4737685 2120.75 UAH 1955518436
где phone_best - payload - из запроса на создание счета 473737685 - id чата, которому изначально был отправлен счет 2120.75 - полная сумма платежа UAH - валюта 1955518436 - id платежа в системе мерчанта
Также, если вы запросили имя, телефон и/или email, клиент запишет переменные:
tg_payment_name, tg_payment_phone и tg_payment_email
В случае успеха колбек будет отправлен в личные сообщения пользователя. Для этого клиент и бот должны взаимодействовать до оплаты (клиент должен быть подписан на бота)!
После получения хука об оплате платеж будет автоматически подтвержден через answerPreCheckoutQuery https://core.telegram.org/bots/api#answerprecheckoutquery .
Примеры
prices = [["product", 2000], ["NDS", 20.75], ["package", 100]]
result = tg_send_invoice('632593626:TEST:sandbox_i38014109763', platform_id, 'phoneW-200', 'Best Model on the Market', 'UAH', prices, 'https://images11.popmeh.ru/cropped.jpg', 'phone_best', 0, 0, 1, 0, 1)

Пример с минимальным набором параметров
prices = [["an amazing product", 20000]] result = tg_send_invoice('632593626:TEST:sandbox_i38014109763', platform_id, 'The best bot ever!', 'Потрясающий курс! Будь лучшим!', 'UAH', prices)

Пример с клавиатурой
prices = [["product", 2000], ["NDS", 20.75], ["package", 100]] result = tg_send_invoice('632593626:TEST:sandbox_i38014109763', platform_id, 'Phone W-200', 'BEst Model on the Market', 'UAH', prices, 'https://helpix.ru/news/200405/181746/gf200_2.jpg', 'phone_best', 0, 0, 1, 1, 1, '', '{"inline_keyboard": [[{"text":"Pay", "pay":"True"}], [{"text":"One more button", "callback_data": "One more button"}]]}')

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