lingo: handle ResponseError from eopayment (#10260)

This commit is contained in:
Frédéric Péters 2016-05-06 15:20:16 +02:00
parent 732b001fde
commit ff8de18a6d
1 changed files with 10 additions and 3 deletions

View File

@ -17,11 +17,12 @@
from decimal import Decimal, ROUND_HALF_UP
import json
import logging
import requests
from django.contrib.auth.models import User
from django.core.urlresolvers import reverse
from django.http import HttpResponse, HttpResponseRedirect
from django.http import HttpResponse, HttpResponseRedirect, HttpResponseBadRequest
from django.http import HttpResponseForbidden, Http404
from django.template.response import TemplateResponse
from django.utils import timezone
@ -209,7 +210,12 @@ class CallbackView(View):
def handle_callback(self, request, backend_response, **kwargs):
regie = Regie.objects.get(id=kwargs.get('regie_pk'))
payment = get_eopayment_object(request, regie)
payment_response = payment.response(backend_response)
try:
payment_response = payment.response(backend_response)
except eopayment.ResponseError as e:
logging.error('failed to process payment response (%r)', e)
return HttpResponseBadRequest()
if not payment_response.result == eopayment.CANCELLED:
# cancellation are not signed...
assert payment_response.signed is True
@ -271,9 +277,10 @@ class ReturnView(View):
payment = get_eopayment_object(request, regie)
try:
payment_response = payment.response(backend_response)
except:
except eopayment.ResponseError as e:
# if eopayment can't get response from query string redirect to
# homepage
logging.error('failed to process payment response (%r)', e)
return HttpResponseRedirect('/')
if payment_response.result == eopayment.PAID: