Реализация оплаты в телеграмм боте
Необходимо реализовать оплату в телеграмм боте, что для этого необходимо и какая платёжная система или сервис приёма платежей подойдёт без открытия ООО/ИП.
Отслеживать
задан 15 июл 2021 в 14:54
27 1 1 серебряный знак 7 7 бронзовых знаков
Я не осведомлён в этой теме, поэтому, если кто-то может просветить, будьте добры или подкиньте материалы для чтения
15 июл 2021 в 14:58
необходимо почитать статью 171 УК РФ. Осуществление предпринимательской деятельности без регистрации или без лицензии либо без аккредитации в национальной системе аккредитации наказывается штрафом в размере до трехсот тысяч рублей или в размере заработной платы или иного дохода осужденного за период до двух лет, либо обязательными работами на срок до четырехсот восьмидесяти часов, либо арестом на срок до шести месяцев.
15 июл 2021 в 15:27
@Интик Вообще-то существует такое понятие как «самозанятый».
15 июл 2021 в 16:56
но регистрироваться в фнс всёравно нужно.и перед изучением платёжных систем лучше почитать законы, ато патом сюрприз будет.
15 июл 2021 в 17:58
Телеграм-бот Donate позволяет принимать оплату во многих валютах, в том числе и в крипте
8 сен 2022 в 20:42
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Платёжные боты существуют в Telegram с 2017 года. С их помощью можно безопасно оплачивать товары и услуги вроде доставки пиццы, не покидая приложения.
Для оплаты можно использовать любое приложение – в том числе Telegram для компьютеров. Покупатель также может оставить чаевые, чтобы поддержать любимого автора, кафе или магазин.
Платформа для платежей открытая и бесплатная – Telegram не берёт комиссии и не хранит платежную информацию. Реквизиты отправляются напрямую платежной системе, а адрес для доставки — продавцу, чтобы он мог отправить товар.
Испытать возможности на бесплатных тестовых товарах и услугах можно в этом канале.
На данный момент Telegram поддерживает платежи из более чем 200 стран через следующие платежные системы:
- Stripe
- YooMoney (ЮSelf — бесплатный сервис для самозанятых)
- Sberbank
- Tranzzo
- Payme
- CLICK
- LiqPay
- ECOMMPAY
- PayMaster
Для подключения оплаты:
- у @BotFather выберите своего бота
- Перейдите в раздел Payments
- Выберите платёжного провайдера
- Для разработки и отладки выберите Connect *** TEST
- Для «боевой» среды выберите Connetct *** LIVE
- Описание пошагового процесса оплаты
- Описание API
- Пример реализации с помощью pyTelegramBotAPI
- Пример реализации с помощью Telethon
Создание Telegram-бота для приема платежей на подписку: Telegram Payments, QIWI API и Bitcoin
В этой статье мы рассмотрим, как создать Telegram бота для приема платежей и интегрировать различные платежные системы в ваш Telegram-бот на Python, включая Telegram Payments, QIWI API и Bitcoin. Мы покажем вам шаг за шагом процесс интеграции платежных систем с помощью нашего подробного руководства, и вы сможете быстро и просто интегрировать платежные системы в 2023 году.
Telegram Payments
Telegram Payments – это встроенная система платежей для ботов, которая позволяет пользователям совершать покупки прямо из чата.
Для работы с Telegram Payments, вам нужно зарегистрироваться у одного из платежных провайдеров, поддерживаемых Telegram, таких как Stripe или Yandex.Money. После регистрации вы получите токен API, который будет использоваться для обработки платежей.
В библиотеке python-telegram-bot есть класс telegram.Invoice для создания счетов, которые могут быть отправлены пользователю. Вот пример отправки счета с помощью этой библиотеки:
from telegram import LabeledPrice, Invoice price = LabeledPrice("Test product", 100) # 1.00 USD bot.send_invoice(chat_id, "Test product", "Description", "payload", PROVIDER_TOKEN, "start_parameter", "USD", [price])
Для обработки платежей вам нужно обрабатывать обновления с типом telegram.PreCheckoutQuery и вызывать метод answer_pre_checkout_query для подтверждения платежа.
QIWI API
QIWI API – это система платежей, которая позволяет проводить транзакции через сервис QIWI. Для работы с QIWI API вам потребуется создать QIWI-кошелек и получить API-токен.
Для взаимодействия с QIWI API вы можете использовать библиотеку qiwi-api-wrapper . Вот пример создания платежной ссылки с помощью этой библиотеки:
from qiwi_api import QiwiWrapper qiwi = QiwiWrapper(token="your_token", phone="your_phone_number") invoice_url = qiwi.create_payment_link(amount=100.0, comment="Payment for test product")
После получения ссылки на оплату, вы можете отправить ее пользователю в виде кнопки или текстового сообщения.
Работа с Bitcoin
Для работы с Bitcoin-платежами вам потребуется создать кошелек Bitcoin и получить его адрес. Затем вы можете использовать библиотеку bitcoin-python для работы с Bitcoin API.
Вот пример создания Bitcoin-адреса и проверки его баланса с помощью этой библиотеки:
from bitcoin import SelectParams, RPCProxy SelectParams("mainnet") # выбор сети Bitcoin rpc = RPCProxy("http://user:[email protected]:8332") # подключение к Bitcoin-ноде address = rpc.getnewaddress() # создание нового Bitcoin-адреса balance = rpc.getbalance(address) # получение баланса адреса
Вы можете отправить пользователю адрес Bitcoin, на который им следует отправить средства. Для отслеживания платежей, вы должны мониторить баланс этого адреса, используя Bitcoin-ноду или сторонние сервисы.
Пример Telegram бот для платежей за платную подписку
В этом разделе мы создадим Telegram-бота, который будет предлагать пользователю оплатить подписку на премиум-функции. Пользователь сможет оплатить подписку с помощью Telegram Payments, QIWI API или Bitcoin. После успешной оплаты пользователь будет отмечен как «премиум» в базе данных SQLite.
- Создайте новый файл Python и импортируйте необходимые модули.
- Инициализируйте бота с вашим токеном бота и токеном платежного провайдера для Telegram Payments.
- Создайте базу данных SQLite и таблицу для хранения информации о пользователях и их статусе «премиум».
- Реализуйте обработчики для команды /subscribe , которые будут отправлять инструкции для оплаты через Telegram Payments, QIWI API и Bitcoin.
- Реализуйте функции проверки успешной оплаты для каждого способа оплаты.
- После успешной оплаты, обновите статус пользователя на «премиум» в базе данных SQLite.
Для создания такого бота, сначала установите необходимые библиотеки:
pip install aiogram python-telegram-bot qiwipy bitcoin
Теперь давайте создадим бота с использованием следующего кода:
import logging import sqlite3 from datetime import datetime, timedelta from aiogram import Bot, Dispatcher, types from aiogram.contrib.middlewares.logging import LoggingMiddleware from aiogram.types import LabeledPrice from aiogram.utils import executor API_TOKEN = 'your_bot_token_here' # Инициализация бота и диспетчера bot = Bot(token=API_TOKEN) dp = Dispatcher(bot) dp.middleware.setup(LoggingMiddleware()) # Подключение к базе данных SQLite и создание таблицы пользователей conn = sqlite3.connect("subscription_bot.db") cursor = conn.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY, user_id INTEGER NOT NULL UNIQUE, premium BOOLEAN NOT NULL DEFAULT FALSE, premium_until TIMESTAMP ); """) conn.commit() # Обработчик команды /start @dp.message_handler(commands=['start']) async def on_start(message: types.Message): user_id = message.from_user.id cursor.execute("INSERT OR IGNORE INTO users (user_id) VALUES (?)", (user_id,)) conn.commit() await message.reply("Привет! Отправь мне /subscribe, чтобы оплатить премиум-подписку!") # Обработчик команды /subscribe @dp.message_handler(commands=['subscribe']) async def on_subscribe(message: types.Message): user_id = message.from_user.id # Создание счета на оплату prices = [LabeledPrice(label='Премиум-подписка', amount=1000)] await bot.send_invoice( chat_id=user_id, title='Премиум-подписка', description='Оплата премиум-подписки на 1 месяц', provider_token='your_telegram_payments_provider_token', currency='usd', prices=prices, start_parameter='subscription', payload=str(user_id) ) # Обработчик успешной оплаты @dp.pre_checkout_query_handler(lambda query: True) async def process_pre_checkout_query(pre_checkout_query: types.PreCheckoutQuery): await bot.answer_pre_checkout_query(pre_checkout_query.id, ok=True) @dp.message_handler(content_types=types.ContentType.SUCCESSFUL_PAYMENT) async def on_successful_payment(message: types.Message): user_id = message.from_user.id # Обработка успешной оплаты successful_payment_handler(user_id) await message.reply("Оплата успешно проведена! Вы получили премиум-подписку на 1 месяц.") # Функция обработки успешной оплаты def successful_payment_handler(user_id): now = datetime.now() premium_until = now + timedelta(days=30) cursor.execute("UPDATE users SET premium = 1, premium_until = ? WHERE user_id = ?", (premium_until, user_id)) conn.commit() # Функция проверки премиум-статуса пользователя def is_user_premium(user_id): cursor.execute("SELECT premium, premium_until FROM users WHERE user_id = ?", (user_id,)) user_data = cursor.fetchone() if user_data: premium, premium_until = user_data if premium: now = datetime.now() if now < datetime.strptime(premium_until, "%Y-%m-%d %H:%M:%S.%f"): return True cursor.execute("UPDATE users SET premium = 0 WHERE user_id = ?", (user_id,)) conn.commit() return False Запуск бота if name == 'main': from aiogram import executor executor.start_polling(dp, skip_updates=True)
Не забудьте заменить API_TOKEN , QIWI_TOKEN , BITCOIN_ADDRESS и PROVIDER TOKEN HERE на соответствующие значения для вашего бота и платежных систем.
Этот код создает бота, который предлагает оплатить подписку черую через Telegram Payments, QIWI и Bitcoin. После успешной оплаты через любой из этих способов, пользователь будет отмечен как «премиум» в базе данных SQLite.
Обратите внимание, что для работы с Telegram Payments вам нужно получить токен платежного провайдера. Информацию о том, как это сделать, можно найти в документации Telegram.
Сейчас код проверяет только успешные платежи через Telegram Payments. Если вы хотите проверять платежи через QIWI и Bitcoin, вам потребуется реализовать проверку транзакций для каждого из этих способов оплаты. Вы можете создать вебхук для QIWI или периодически опрашивать их API, чтобы проверять состояние транзакций. Для проверки Bitcoin-транзакций вам потребуется интеграция с сервисами обработки платежей, такими как BTCPay Server или Coinbase Commerce.
После успешной оплаты, вы можете использовать информацию о «премиум» пользователе в вашем боте для предоставления дополнительных возможностей или контента.
Заключение
В этой статье мы рассмотрели, как интегрировать различные платежные системы в ваш Telegram бот для платежей на Python, включая Telegram Payments, QIWI API и Bitcoin. Это позволит вашему боту обрабатывать платежи от пользователей и расширить его функциональность. Вы можете выбрать подходящую платежную систему в зависимости от требований вашего проекта и предпочтений пользователей.
Как подключить платежную систему с Payments к Telegram
Рассказываем, как подключить платежную систему к Telegram-боту и разместить его на сервере.
Эта инструкция — часть курса «Как создавать Telegram-ботов».
Смотреть весь курс
Введение
Telegram-боты обладают широкой функциональностью и решают массу задач клиентов самых разных бизнесов. Рассказываем, как создать и разместить бота для приема платежей в Telegram на Python. Видеоверсия доступна по ссылке.
В Telegram есть встроенная система оплаты, поэтому сценариев, как использовать бота для приема платежей, достаточно много. Это может быть разовая оплата заказа или ежемесячная подписка.
Платежные системы Telegram
Сейчас мессенджер поддерживает оплату в более чем 200 странах через такие шлюзы, как: Stripe, YooMoney, Sberbank, LiqPay, PayMaster и другие.
Все начинается с установки библиотеки aiogram. Сейчас, пожалуй, это самая популярная библиотека для разработки ботов на Python.
python -m pip install aiogram
Переходим в Telegram и пишем тут BotFather’у команду /newbot. Вводим имя нового бота. Важно, чтобы оно заканчивалось словом Bot.
Получаем уникальный токен нового бота. Теперь напишем код простейшего эхо-бота, чтобы проверить его работу.
Связать бота с приложением
Создаем файл config.py и вписываем в него токен, который выдал BotFather. В основном файле main.py прописываем базовый код любого бота.
Обратите внимание на один важный момент: бот должен обрабатывать каждое сообщение с серверов Telegram. Для этого при запуске бота обязательно нужно поставить аргумент skip_updates в значение False. Это спасет от проблем при обработке платежей.
import config import logging from aiogram import Bot, Dispatcher, executor, types from aiogram.types.message import ContentType # log logging.basicConfig(level=logging.INFO) # init bot = Bot(token=config.TOKEN) dp = Dispatcher(bot) # echo bot @dp.message_handler() async def echo(message; types.Message): await message.answer (message.text) # run long-polling if __name__ == "main": executor.start_polling(dp, skip_updates=False)
Теперь можно запустить код и проверить, работает ли бот. Убедившись, что все хорошо, приступаем к подключению платежей.
Возвращаемся к BotFather’у, даем команду /mybots и выбираем из списка своего бота.
В открывшемся меню кликаем на кнопку «Payments». Из предоставленного списка выбираем нужный платежный шлюз. В качестве теста используем PayMaster. Чтобы подключить оплату в Telegram-бота, сначала нужно выполнить тест, поэтому выбираем «PayMaster Test».
Следуем простым инструкциям бота платежной системы и получаем тестовый токен PayMaster. Его сразу же можно сохранить в config.py.
TOKEN = "5432877141:AAHEwBEb2mwnZX56oaHM10o33ZBZwVkvv-s" PAYMENTS_TOKEN = "1744374395:TEST:f14d9f0d42528b780370"
Возвращаемся к коду бота. Для того, чтобы запросить оплату товаров/услуг, нужно сгенерировать invoice с деталями платежа. Отправить его клиенту и обработать результат.
Подключаем оплату
Указываем список доступных цен на продукты. В качестве цены нужно передать целочисленное значение в минимально возможных единицах валюты. Если речь идет о рублях, то стоимость нужно указывать в копейках. То есть место 500 рублей мы тут укажем 500 * 100 или же 50 000 копеек. В случае с долларами будет почти также, $1=100 центов. Если предполагается работа с другими валютами, можно использовать currencies.json от Telegram API.
Дальше в коде бота платежной системы мы создаем обработчик команды /buy. Команда будет генерировать и отправлять пользователю invoice платежа. В примере используется оплата месячной подписки.
import config import logging from aiogram import Bot, Dispatcher, executor, types from aiogram.types.message import ContentType # log logging.basicConfig(level=logging.INFO) # init bot = Bot(token=config.TOKEN) dp = Dispatcher(bot) # prices PRICE = types.LabeledPrice(label="Подписка на 1 месяц", amount=500*100) # в копейках (руб) # buy @dp.message_handler(commands=['buy']) async def buy(message: types.Message): if config.PAYMENTS_TOKEN.split(':')[1] == 'TEST': await bot.send_message(message.chat.id, "Тестовый платеж. ") await bot.send_invoice(message.chat.id, title="Подписка на бота", description="Активация подписки на бота на 1 месяц", provider_token=config.PAYMENTS_TOKEN, currency="rub", photo_url="https://www.aroged.com/wp-content/uploads/2022/06/Telegram-has-a-premium-subscription.jpg", photo_width=416, photo_height=234, photo_size=416, is_flexible=False, prices=[PRICE], start_parameter="one-month-subscription", payload="test-invoice-payload")
Сам процесс генерации invoice довольно простой. Не стоит беспокоиться большому количеству аргументов. Это названия продуктов или услуг, описания, цена, валюта и т.п.
Настройки платежей
Обратите внимание на аргумент is_flexible. Его нужно указывать в значение True только в том случае, если финальная стоимость зависит от выбранного способа доставки, если речь идет о продаже какого-то физического продукта.
О других параметрах метода send_invoice вы всегда можете прочитать в официальной документации Telegram API.
Теперь нужно создать еще два обработчика: Pre Checkout Query и Successful Payment.
Pre Checkout Query отвечает за обработку и утверждение платежа перед тем, как пользователь его совершит. Так можно проверить доступность товара на складе или уточнить стоимость.
Важно, что серверам Telegram ответ нужен в течение 10 секунд. Если его не будет, платеж не пройдет.
Successful Payment отвечает за обработку успешно проведенного платежа.
# pre checkout (must be answered in 10 seconds) @dp.pre_checkout_query_handler(lambda query: True) async def pre_checkout_query(pre_checkout_q: types.PreCheckoutQuery): await bot.answer_pre_checkout_query(pre_checkout_q.id, ok=True) # successful payment @dp.message_handler(content_types=ContentType.SUCCESSFUL_PAYMENT) async def successful_payment(message: types.Message): print("SUCCESSFUL PAYMENT:") payment_info = message.successful_payment.to_python() for k, v in payment_info.items(): print(f" = ") await bot.send_message(message.chat.id, f"Платеж на сумму прошел успешно. ") # run long-polling if __name__ == "__main__": executor.start_polling(dp, skip_updates=False)
Тут можно выдать пользователю тот самый месяц подписки, за которую он заплатил или любую другую услугу.
Как бот работает на практике
Получив invoice на оплату от бота, нажимаем «Оплатить». Поскольку сначала мы проводим тестирование бота, воспользуемся специальной тестовой картой.
Вводим данные и оплачиваем подписку — все работает. При переходе на боевой проект важно не забыть выбрать правильный счет.
Теперь возвращаемся в BotFather, чтобы получить реальный токен от выбранного платежного шлюза. Если есть запрос на разные тарифы или способы оплаты, лучше запросить сразу 2-3 токена от разных платежных шлюзов. Далее нужно будет генерировать invoice с помощью токена выбранного провайдера.
Перенос бота на боевой сервер
Чтобы бот работал 24/7 вне зависимости от того, включен компьютер или нет, зальем его на реальный сервер.
Для этого воспользуемся облачным сервером линейки Shared Line от Selectel. Калькулятор панели управления позволяет выбрать гибкую конфигурацию сервера и сразу узнать, сколько будет стоить решение. Все продукты и услуги собраны у провайдера в одном месте, поэтому ими легко управлять. Арендовать сервер можно от 10 ₽/день, а в консоли есть возможность быстро масштабировать вычислительные ресурсы при необходимости.
Регистрируемся и входим в панель управления my.selectel.ru. Переходим в раздел «Облачная платформа» и выбираем «Серверы». Создаем сервер — после этого шага он загорится в списке как «ACTIVE».
Настраиваем конфигурацию. Для примера используем 1 ядро, 512 МБ DDR4 и 5 ГБ на диске.
Теперь переходим к выгрузке бота на боевой сервер. Сначала нужно подключиться к серверу через SSH. Для этого мы можем воспользоваться программой WinSCP для Windows. В Linux и MAC для этого есть свои встроенные инструменты.
Запускаем WinSCP. В качестве имени хоста указываем IP адрес нашего нового сервера. Логин и пароль можно взять во вкладке «Консоль» в панели управления.
Теперь перенесем сюда файлы нашего бота: config.py и main.py. Далее открываем отдельное соединение с сервером по SSH в консоли.
Для этого в WinSCP нажать кнопку и открыть PuTTY. Можно также воспользоваться командной строкой, принципиальной разницы нет.
Настройка бота с Payments 2.0
Подключившись к серверу, нужно выполнить ряд простых действий.
- Обновить Python до версии 3.10.
- Установить PIP.
- Поставить библиотеку Aiogram.
Если оставить все в таком виде, то при закрытии SSH-соединения вместе с ним закроется и процесс бота. Что делать?
Есть несколько способов, как решить этот вопрос. Рассмотрим самый простой – использование команды screen.
Пишем команду screen и жмем Enter. Запускаем бота из обычного терминала и закрываем соединение.
Бот продолжит работу. Чтобы в любой момент вернуться к этому экрану, достаточно ввести команду screen -r $screen_running. На этом деплой в облаке Selectel закончен.
Заключение
Описанная схема запуска Telegram-бота не предел того, как можно настроить прием платежей. К боту всегда можно добавить дополнительные возможности: запрашивать адрес доставки или менять цену в зависимости от адреса.
Идеальное решение для pet-проектов
Сервер для решения задач, которые не требуют полной загрузки vCPU.
Урок №12. Подключение системы оплаты в telegram боте
В этом уроке мы добавим платежную систему для оформления платежей внутри нашего telegram бота.
1.1K показов
1.7K открытий
Интеграция системы оплаты.
Для подключения системы оплаты мы должны перейти в BotFather и прописать команду /mybots. За счет этой команды мы можем выполнить редактирование наших ботов. Выбираем нашего бота. Тут мы можем узнать токен нашего бота, отредактировать его и так далее. Нас же интересует такая кнопка, как Payments, то есть настройка платежей в боте.
Telegram позволяет настроить сразу несколько различных систем оплаты для вашего бота. Также важно, что для настройки какой-либо систем платежей вы должны быть зарегистрированы в самой этой системе. Я буду регистрировать такую систему как ЮKassa. Если мы хотим подключить основную систему оплаты, то заходите на сайт ЮKassa, в организации и вводите свои данные, и буквально через 1 день вам пришлют договор с подписанием контракта с ЮKassa. Мы же пока подключим с вами тестовый магазин в нашем боте. Для этого в BotFather мы выбираем ЮKassa.
Теперь если у вас уже подключена основная система оплаты, то нажимаем на кнопку Connect ЮKassa Live. В моем случае я подключаю тестовый магазин, поэтому нажимаю на кнопку Connect ЮKassa Test. Далее нас перебрасывает в бота юкассы. Нажимаем кнопку start. Далее бот нас просит отправить ему идентификатор нашего магазина. Бот сформирует вам его и останется только переслать это число ему в ответ. Далее он попросит скинуть ваш shopArticleId, который он также сам сгенерирует. После чего ЮKassa зарегистрирует ваш тестовый магазин в BotFather.
Теперь возвращаемся в BotFather, где уже зарегистрирована наша платежная система. Он выводит нам токен, по которому м теперь сможем проводить оплату.
Импортируем токен в программу
Добавляем наш токен в файл token.csv, где у нас уже храниться token нашего бота. Сохраняем его в переменную, например, PAYMENT_TOKEN.
Теперь мы можем описать код, за счет которого мы будем высылать счет на оплату пользователю и при нажатии на специальную кнопку пользователь сможет перейти на систему оплаты и выполнить платеж через нашего бота.
Создание счета (invoice).
Давайте теперь напишем код, за счет которого мы будем высылать invoice пользователю. По сути это будет счет для оплаты и при нажатии на специальную кнопку, пользователь будет переходить на систему оплаты и выполнить платеж. Давайте будет отправлять пользователю счет для оплаты, когда нам будет приходить такая команда, как /pay. Так как в прошлом уроке мы работали с библиотекой aiogram, чтобы закрепить то, что мы узнали, продолжим работать на ней.
Мы обращаемся к диспетчеру (то есть объекту dis), затем обращаемся к message_handler() и также указываем commands = ['pay']. Затем мы должны создать функцию, например, payment. В функции мы указываем параметр message и указываем тип этого параметра. Для этого ставим двоеточие, затем указываем types и тип этого параметра, то есть message. Теперь давайте отправим счет нашему пользователю. Для этого прописываем await bot.send_invoise. Данная функция принимает много параметров, давайте разберемся в них. Первым параметром передаем message.chat.id.
Title, где указываем название нашего товара.
Description - в нем мы пишем описание к нашему товару.(является не обязательным в передаче)
Provider_token, тут же мы обращаемся к нашему csv файлу и берем из него PAYMENT_TOKEN.
Currency необходимо передать трехзначный код валюты в формате ISO 4217. Полный список валют можно найти здесь.
Photo_url мы должны передать ссылку на наше фото(является не обязательным в передаче) Если вы добавили фото, то нужно указать параметры photo_height и photo_width, иначе изображение либо вообще не отобразится, либо отобразится некорректно.
Is_flexible отвечает за то, что финальная цена зависит от способа доставки (когда передаем True). При значении False этот параметр можно не писать.
Prices принимает массив из цен, поэтому передаем туда [price]. Переменную price мы напишем чуть позже.
Start_parameter является обязательным, документация утверждает, что можно использовать уникальный диплинкинг параметр, чтобы создать эту квитанцию.
Payload. Объем 1-128 байт. Рекомендуется использовать его для того чтобы идентифицировать инвойсы - он не показывается пользователю, но мы можем его прочитать при получении успешной оплаты.
Сейчас при запуске у нас будет выдаваться ошибка, так как у нас неизвестная переменная price. Давайте создадим ее. Для этого перед диспетчером мы пишем переменную price, куда должны указать цену товара. Мы обращаемся к types, к LabeledPrice(). Далее в label мы указываем название товара, а в amount передаем стоимость.
ВАЖНО! Нужно передавать целочисленное значение в минимально возможных единицах валюты. То есть если мы говорим о рублях, то передавать нужно копейки (123руб. как 123* 100).
Теперь при запуске бота и отправке команды /pay, нашему пользователю будет отправляться счет на оплату.