diff --git a/combo/apps/lingo/views.py b/combo/apps/lingo/views.py index 67282f69..0684ac0e 100644 --- a/combo/apps/lingo/views.py +++ b/combo/apps/lingo/views.py @@ -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):