Как получить уведомление от Юкассы?
Как реализовать на питоне чтобы я мог получить уведомление с Юкассы чтобы понять что оплата прошла. Использую так же библиотеку 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? с сертификатом