Files
2026-07-23 11:37:37 +02:00

28 lines
780 B
Python

import logging
from django.http.response import HttpResponse
from django.shortcuts import get_object_or_404
from django.views.decorators.csrf import csrf_exempt
from shop.models import Order
from shop.utils import add_payment_to_order, validate_payment_for_order
logger = logging.getLogger(__name__)
@csrf_exempt
def webhook(request, uuid):
order = get_object_or_404(Order, uuid=uuid)
try:
amount_paid = validate_payment_for_order(request, order)
add_payment_to_order(order, amount_paid)
return HttpResponse(status=200)
except Exception:
logger.exception('Error processing payment webhook for order %s', order.uuid)
order.status = Order.Statuses.STATUS_ERROR
order.save()
return HttpResponse(status=409)