@Verese

Как сделать webhook активным внутри функции?

Пытаюсь создать бота ВКонтакте с оплатой через ЮКассу. Настроил адрес, на который должны приходить HTTP-уведомления с информацией о платеже, но не могу перехватить эти уведомления из самого бота, так как функция webhook_handler является неактивной. Как правильно настроить перехват из бота?

from yookassa import Payment
from flask import Flask, request

async def payment_handler(message):
    app = Flask(__name__)

    payment = Payment.create({
        'amount': {
            'value': '100.00',
            'currency': 'RUB'
        },
        'confirmation': {
            'type': 'redirect',
            'return_url': 'url'
        },
        'capture': True,
        'description': 'Описание платежа'
    })

    await message.answer(f'Оплатить можно по ссылке: {payment.confirmation.confirmation_url}')

    @app.route('/vk/webhook', methods=['POST'])
    async def webhook_handler():
        data = request.json
        if data["event"] == "payment.succeeded":
            await message.answer('Успех')
        elif data["event"] == "payment.canceled":
            await message.answer('Отмена')

    app.run(host='0.0.0.0', port=5000)
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 1
YooMoneyHelp
@YooMoneyHelp
В ЛК ЮKassa в разделе Интеграция нужно прописать адрес в http уведомлениях. После получения callback от ЮKassa заказ перейдет в успешный статус. На вашей стороне нужно организовать информационное уведомление об успешной оплате товара/услуги.
Дополнительно посмотрите эту информацию:
https://git.yoomoney.ru/projects/SUP/repos/yoomone...
https://git.yoomoney.ru/projects/SUP/repos/yoomone...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы