Как получить уведомление от Юкассы?

Как реализовать на питоне чтобы я мог получить уведомление с Юкассы чтобы понять что оплата прошла. Использую так же библиотеку Aiogram 2.x. Оплату + проверку по кнопку через API я реализовал, а вот чтобы оплата и само пришло и я обработал не получается. Сервер у меня есть но там только IP а не домен.

Код который использую

from yookassa import Configuration, Webhook

Configuration.account_id = ""
Configuration.secret_key = ""


Webhook.add({
    "event": "payment.succeeded",
    "url": "https://Указал свой ip сервера /yookassa-webhook"
})

Webhook.add({
    "event": "payment.waiting_for_capture",
    "url": "https://Указал свой ip сервера /yookassa-webhook"
})


from fastapi import FastAPI, Request
from yookassa import Payment, Webhook

app = FastAPI()

@app.post('/yookassa-webhook')
async def handle_payment(request: Request):
    event_json = await request.json()
    payment_id = event_json['object']['id']
    user_id = event_json['object']['metadata']['user_id']
    
    if event_json['event'] == 'payment.succeeded':

        amount = event_json['object']['amount']['value']
        payment_method_id = event_json['object']['payment_method']['id']
        
        print(f"Платеж {payment_id} успешен! User: {user_id}, Amount: {amount}")
        
        
        await bot.send_message(user_id, f"✅ Платеж на {amount} руб. успешно завершен!")

    elif event_json['event'] == 'payment.waiting_for_capture':

        Payment.capture(payment_id)
        
    return {"status": "ok"}

Ошибка такая на старте:

yookassa.domain.exceptions.unauthorized_error.UnauthorizedError: {'type': 'error', 'id': '0198c236-0756-7626-b04c-66af3998d8a0', 'description': 'Authentication type is not allowed', 'parameter': 'Authorization', 'code': 'invalid_credentials'}

Читал и документацию и прописывал HTTP-Уведомление и увидел такое:

Требования к URL для уведомлений — протокол HTTPS и TCP-порт 443 или 8443. TLS/SSL-сертификат подойдет любой: самоподписанный или выданный центром сертификации. Версия TLS/SSL — 1.2 или выше.

Мне может надо использовать не IP Сервера а прям настоящий DNS? с сертификатом


Ответы (0 шт):