PPv2: Fix invalid cart payments in edge case (PRETIXEU-7QG)

This commit is contained in:
Raphael Michel
2023-01-02 10:19:31 +01:00
parent ddbe38ca53
commit db06ed132a

View File

@@ -321,6 +321,10 @@ def success(request, *args, **kwargs):
'secret': payment.order.secret 'secret': payment.order.secret
}) + ('?paid=yes' if payment.order.status == Order.STATUS_PAID else '')) }) + ('?paid=yes' if payment.order.status == Order.STATUS_PAID else ''))
else: else:
# There can only be one payment method that does not have multi_use_supported, remove all
# previous ones.
cs = cart_session(request)
cs['payments'] = [p for p in cs.get('payments', []) if p.get('multi_use_supported')]
add_payment_to_cart(request, PaypalWallet(request.event), None, None, None) add_payment_to_cart(request, PaypalWallet(request.event), None, None, None)
urlkwargs['step'] = 'confirm' urlkwargs['step'] = 'confirm'
return redirect(eventreverse(request.event, 'presale:event.checkout', kwargs=urlkwargs)) return redirect(eventreverse(request.event, 'presale:event.checkout', kwargs=urlkwargs))