lingo: handle callback calls with POST method (#9360)

This commit is contained in:
Serghei Mihai 2015-12-17 09:53:22 +01:00 committed by Frédéric Péters
parent a33f6d4200
commit 1b6b570981
1 changed files with 12 additions and 2 deletions

View File

@ -170,10 +170,10 @@ class PayView(View):
class CallbackView(View):
def get(self, request, *args, **kwargs):
def handle_callback(self, request, backend_response, **kwargs):
regie = Regie.objects.get(id=kwargs.get('regie_pk'))
payment = eopayment.Payment(regie.service, regie.service_options)
payment_response = payment.response(request.environ['QUERY_STRING'])
payment_response = payment.response(backend_response)
if not payment_response.result == eopayment.CANCELLED:
# cancellation are not signed...
assert payment_response.signed is True
@ -204,6 +204,16 @@ class CallbackView(View):
return HttpResponse()
def get(self, request, *args, **kwargs):
return self.handle_callback(request, request.environ['QUERY_STRING'], **kwargs)
def post(self, request, *args, **kwargs):
return self.handle_callback(request, request.body, **kwargs)
@csrf_exempt
def dispatch(self, *args, **kwargs):
return super(CallbackView, self).dispatch(*args, **kwargs)
class ReturnView(View):