YooKassa (Яндекс.Касса) — платежный процессор, поддерживающий банковские карты и другие методы в России и странах СНГ.
Требования
- Регистрация бизнеса (ИП/ООО или самозанятость)
- Торговый аккаунт YooKassa
- API учетные данные (ID магазина и секретный ключ)
- Публичный HTTPS-домен бота для приема вебхуков
Как это работает
- Пользователь выбирает тариф и оплату картой — бот создает платеж через API YooKassa и выдает ссылку на оплату.
- После оплаты YooKassa отправляет вебхук (
payment.succeededилиpayment.canceled) на адресYOOKASA_WEBHOOK_URL. - Бот повторно проверяет статус платежа через API YooKassa и активирует подписку через Remnawave.
Важно
Без настроенного вебхука платежи не будут подтверждаться автоматически.
Инструкции по настройке
Шаг 1: Создайте аккаунт YooKassa
- Посетите yookassa.ru
- Зарегистрируйтесь как торговец
- Подтвердите информацию о бизнесе
- Дождитесь одобрения
Шаг 2: Сгенерируйте API учетные данные
- Войдите в панель управления
- Перейдите в раздел «Интеграция» → «Ключи API»
- Создайте секретный ключ
- Запишите ваш ID магазина (shopId)
Шаг 3: Настройте переменные окружения
YOOKASA_ENABLED=true
YOOKASA_URL=https://api.yookassa.ru/v3
YOOKASA_SHOP_ID=123456
YOOKASA_SECRET_KEY=ваш_секретный_ключ
YOOKASA_EMAIL=contact@example.com
YOOKASA_WEBHOOK_URL=/webhook/yookassa/СЛУЧАЙНЫЙ_СЕКРЕТСлучайный секрет для пути вебхука сгенерируйте командой:
openssl rand -hex 32Шаг 4: Зарегистрируйте вебхук в YooKassa
В панели YooKassa («Интеграция» → «HTTP-уведомления») укажите URL:
https://ваш-домен.com/webhook/yookassa/СЛУЧАЙНЫЙ_СЕКРЕТВключите события payment.succeeded и payment.canceled.
Шаг 5: Перезагрузите бота
docker compose down && docker compose up -dШаг 6: Протестируйте платеж
- Отправьте
/startботу - Выберите подписку
- Выберите платеж YooKassa
- Используйте тестовую карту:
4111 1111 1111 1111
Переменные конфигурации
| Переменная | Обязательна | Описание |
|---|---|---|
YOOKASA_ENABLED | да | Включить/отключить YooKassa (true/false) |
YOOKASA_URL | да | Endpoint API: https://api.yookassa.ru/v3 |
YOOKASA_SHOP_ID | да | Идентификатор магазина (shopId) |
YOOKASA_SECRET_KEY | да | Секретный ключ API |
YOOKASA_EMAIL | да | Email для чеков покупателя |
YOOKASA_WEBHOOK_URL | да | Путь вебхука, например /webhook/yookassa/секрет |
При включенной интеграции с Мой Налог (MOYNALOG_ENABLED=true) чеки по платежам YooKassa автоматически отправляются в ФНС — см. Мой налог.
Тестовые карты
| Карта | Статус |
|---|---|
| 4111 1111 1111 1111 | Успех |
| 4000 0000 0000 0002 | Отклонение |
Срок действия: Любая будущая дата CVC: Любые 3 цифры
Устранение неполадок
Платеж завис в статусе «ожидание»
- Проверьте, что
YOOKASA_WEBHOOK_URLзадан и URL зарегистрирован в панели YooKassa - Проверьте, что домен бота доступен извне по HTTPS
- Просмотрите логи бота:
docker compose logs -f remnawave-telegram-shop-bot
Неправильный ID магазина / 401 от API
- Проверьте правильность
YOOKASA_SHOP_IDиYOOKASA_SECRET_KEY - Пересгенерируйте секретный ключ, если не уверены
Timeout API
- Проверьте соединение с api.yookassa.ru из контейнера
- Проверьте логи бота на ошибки
Поддержка
- Справка YooKassa: yookassa.ru/help
- API документация: yookassa.ru/developers/api
- Проблемы: Сообщайте на GitHub или свяжитесь с YooKassa