diff --git a/src/pretix/api/serializers/order.py b/src/pretix/api/serializers/order.py index 111b7cdbc6..8d1788435f 100644 --- a/src/pretix/api/serializers/order.py +++ b/src/pretix/api/serializers/order.py @@ -1819,7 +1819,7 @@ class OrderCreateSerializer(I18nAwareModelSerializer): }, state=OrderPayment.PAYMENT_STATE_CREATED ) - gift_card_payment_provider.execute_payment(request=None, payment=payment, is_early_special_case=not self._send_mail) + gift_card_payment_provider.execute_payment(request=None, payment=payment, is_early_special_case=True) if order.pending_sum <= Decimal('0.00'): order.status = Order.STATUS_PAID diff --git a/src/pretix/base/payment.py b/src/pretix/base/payment.py index ef550bc337..5e7913f457 100644 --- a/src/pretix/base/payment.py +++ b/src/pretix/base/payment.py @@ -1657,7 +1657,7 @@ class GiftCardPayment(BasePaymentProvider): } ) except PaymentException as e: - payment.fail(info={'error': str(e)}) + payment.fail(info={'error': str(e)}, send_mail=not is_early_special_case) raise e def payment_is_valid_session(self, request: HttpRequest) -> bool: diff --git a/src/tests/api/test_order_create.py b/src/tests/api/test_order_create.py index fd492583d0..22159fa95c 100644 --- a/src/tests/api/test_order_create.py +++ b/src/tests/api/test_order_create.py @@ -3420,7 +3420,7 @@ def test_order_create_use_gift_cards_only_pending(token_client, organizer, event False, 0 ), ( - True, 2 # TODO check why we get 3 mails, one order receivend and two payments + True, 2 ), ], )