Если у вас есть Telegram-бот и вы хотите принимать через него оплату, например, за товары или услуги, вам может пригодиться платежная система ЮKassa. Не переживайте, настройка не такая сложная, как может показаться на первый взгляд. В этой статье я расскажу, как это сделать по шагам.
Создание учетной записи на ЮKassa
Первое, что нужно сделать, это зарегистрироваться на платформе ЮKassa (бывшая Яндекс.Касса).
- Перейдите на сайт ЮKassa и зарегистрируйтесь.
- Заполните все необходимые поля и подтвердите вашу учетную запись.
Получение API ключей
После того, как вы создали аккаунт, вам нужно получить API ключи. Это специальные "ключи", которые позволяют вашему боту "общаться" с сервисом ЮKassa.
- Зайдите в личный кабинет ЮKassa.
- Перейдите в раздел "Настройки" и найдите вкладку "API".
- Сгенерируйте новый ключ и сохраните его. Он будет вам нужен позже.
Создаем Telegram-бота
Если у вас уже есть бот, можете перейти к следующему шагу. Если нет – давайте его создадим:
Вот подробная инструкция как это сделать
greenballoon.ru/veb-razrabotka/kak-sdelat-telegramm-bota
Если в кратце то :
- Откройте Telegram и найдите бота BotFather.
- Следуйте инструкциям, чтобы создать нового бота.
- Получите API токен вашего нового бота.
Написание кода для бота
Теперь самое интересное – программирование. Не бойтесь, если вы новичок, я постараюсь объяснить все максимально просто. Для примера, будем использовать Python и библиотеку aiogram для работы с Telegram API.
-
Установите необходимые библиотеки:
pip install aiogram requests
-
Создайте файл bot.py и начните с основ:
from aiogram import Bot, Dispatcher, types from aiogram.utils import executor import requests API_TOKEN = 'ТОКЕН_ВАШЕГО_Бота' YOOKASSA_API_KEY = 'ВАШ_ЮКасса_КЛЮЧ' bot = Bot(token=API_TOKEN) dp = Dispatcher(bot) @dp.message_handler(commands=['start']) async def send_welcome(message: types.Message): await message.reply("Привет! Нажмите на кнопку ниже, чтобы оплатить.")
-
Создаем функцию для обработки платежей:
import json @dp.message_handler(commands=['pay']) async def process_payment(message: types.Message): payment_url = create_payment(100, 'Тестовый платёж') # Здесь 100 - это сумма, а 'Тестовый платёж' - описание await message.reply(f"Перейдите по ссылке для оплаты: {payment_url}") def create_payment(amount, description): url = 'https://api.yookassa.ru/v3/payments' headers = { 'Content-Type': 'application/json', 'Authorization': f'Bearer {YOOKASSA_API_KEY}' } data = { "amount": { "value": str(amount), "currency": "RUB" }, "confirmation": { "type": "redirect", "return_url": "https://t.me/ваш_бот" }, "capture": True, "description": description } response = requests.post(url, headers=headers, data=json.dumps(data)) response_data = response.json() return response_data['confirmation']['confirmation_url']
-
Запускаем нашего бота:
if __name__ == '__main__': executor.start_polling(dp, skip_updates=True)
Тестируем
Теперь запустите ваш бот командой:
python bot.py
Зайдите в свой Telegram, найдите вашего бота и введите команду /pay
. Бот должен ответить ссылкой на оплату. Перейдите по ней и завершите платеж.
Поздравляем! Вы успешно интегрировали ЮKassa в вашего Telegram-бота. Теперь ваши пользователи могут совершать платежи напрямую через ваш бот.
Надеюсь, эта статья помогла вам разобраться, как всё работает. Если у вас возникли вопросы, не стесняйтесь задавать их в комментариях. Удачи!