From d98fce35942e767d7dadad534412d16db40b63c8 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Thu, 14 Nov 2019 12:10:45 +0100 Subject: [PATCH] Fix cancelling payments through the API --- src/pretix/api/views/order.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/pretix/api/views/order.py b/src/pretix/api/views/order.py index 6de433685..f50003675 100644 --- a/src/pretix/api/views/order.py +++ b/src/pretix/api/views/order.py @@ -913,16 +913,16 @@ class PaymentViewSet(viewsets.ReadOnlyModelViewSet): if payment.state not in (OrderPayment.PAYMENT_STATE_PENDING, OrderPayment.PAYMENT_STATE_CREATED): return Response({'detail': 'Invalid state of payment'}, status=status.HTTP_400_BAD_REQUEST) - try: - with transaction.atomic(): - payment.payment_provider.cancel_payment(payment) - payment.order.log_action('pretix.event.order.payment.canceled', { - 'local_id': payment.local_id, - 'provider': payment.provider, - }, user=self.request.user if self.request.user.is_authenticated else None, auth=self.request.auth) - except PaymentException as e: - return Response({'detail': 'External error: {}'.format(str(e))}, - status=status.HTTP_400_BAD_REQUEST) + try: + with transaction.atomic(): + payment.payment_provider.cancel_payment(payment) + payment.order.log_action('pretix.event.order.payment.canceled', { + 'local_id': payment.local_id, + 'provider': payment.provider, + }, user=self.request.user if self.request.user.is_authenticated else None, auth=self.request.auth) + except PaymentException as e: + return Response({'detail': 'External error: {}'.format(str(e))}, + status=status.HTTP_400_BAD_REQUEST) return self.retrieve(request, [], **kwargs)