forked from CGM_Public/pretix_original
Catch PaymentException on paypal return view
This commit is contained in:
@@ -230,7 +230,6 @@ class Paypal(BasePaymentProvider):
|
|||||||
logger.error('Invalid state: %s' % str(payment))
|
logger.error('Invalid state: %s' % str(payment))
|
||||||
raise PaymentException(_('We were unable to process your payment. See below for details on how to '
|
raise PaymentException(_('We were unable to process your payment. See below for details on how to '
|
||||||
'proceed.'))
|
'proceed.'))
|
||||||
return
|
|
||||||
|
|
||||||
if order.status == Order.STATUS_PAID:
|
if order.status == Order.STATUS_PAID:
|
||||||
logger.warning('PayPal success event even though order is already marked as paid')
|
logger.warning('PayPal success event even though order is already marked as paid')
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ from django.views.decorators.csrf import csrf_exempt
|
|||||||
from django.views.decorators.http import require_POST
|
from django.views.decorators.http import require_POST
|
||||||
|
|
||||||
from pretix.base.models import Order, Quota, RequiredAction
|
from pretix.base.models import Order, Quota, RequiredAction
|
||||||
|
from pretix.base.payment import PaymentException
|
||||||
from pretix.base.services.orders import mark_order_paid, mark_order_refunded
|
from pretix.base.services.orders import mark_order_paid, mark_order_refunded
|
||||||
from pretix.control.permissions import event_permission_required
|
from pretix.control.permissions import event_permission_required
|
||||||
from pretix.multidomain.urlreverse import eventreverse
|
from pretix.multidomain.urlreverse import eventreverse
|
||||||
@@ -57,7 +58,12 @@ def success(request, *args, **kwargs):
|
|||||||
if pid == request.session.get('payment_paypal_id', None):
|
if pid == request.session.get('payment_paypal_id', None):
|
||||||
if order:
|
if order:
|
||||||
prov = Paypal(request.event)
|
prov = Paypal(request.event)
|
||||||
resp = prov.payment_perform(request, order)
|
try:
|
||||||
|
resp = prov.payment_perform(request, order)
|
||||||
|
except PaymentException as e:
|
||||||
|
messages.error(request, str(e))
|
||||||
|
urlkwargs['step'] = 'payment'
|
||||||
|
return redirect(eventreverse(request.event, 'presale:event.checkout', kwargs=urlkwargs))
|
||||||
if resp:
|
if resp:
|
||||||
return resp
|
return resp
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user