def form_valid(self, form): from getpaid.models import Payment try: order_additional_validation.send( sender=None, request=self.request, order=form.cleaned_data['order'], backend=form.cleaned_data['backend']) except ValidationError: return self.form_invalid(form) payment = Payment.create(form.cleaned_data['order'], form.cleaned_data['backend']) processor = payment.get_processor()(payment) gateway_url_tuple = processor.get_gateway_url(self.request) payment.change_status('in_progress') redirecting_to_payment_gateway_signal.send( sender=None, request=self.request, order=form.cleaned_data['order'], payment=payment, backend=form.cleaned_data['backend']) if gateway_url_tuple[1].upper() == 'GET': return http.HttpResponseRedirect(gateway_url_tuple[0]) elif gateway_url_tuple[1].upper() == 'POST': context = self.get_context_data() context['gateway_url'] = processor.get_gateway_url(self.request)[0] context['form'] = processor.get_form(gateway_url_tuple[2]) return TemplateResponse( request=self.request, template=self.get_template_names(), context=context) else: raise ImproperlyConfigured()
def form_valid(self, form): from getpaid.models import Payment try: order_additional_validation.send( sender=None, request=self.request, order=form.cleaned_data['order'], backend=form.cleaned_data['backend']) except ValidationError: return self.form_invalid(form) payment = Payment.create(form.cleaned_data['order'], form.cleaned_data['backend']) processor = payment.get_processor()(payment) gateway_url_tuple = processor.get_gateway_url(self.request) payment.change_status('in_progress') redirecting_to_payment_gateway_signal.send( sender=None, request=self.request, order=form.cleaned_data['order'], payment=payment, backend=form.cleaned_data['backend']) if gateway_url_tuple[1].upper() == 'GET': return http.HttpResponseRedirect(gateway_url_tuple[0]) elif gateway_url_tuple[1].upper() == 'POST': context = self.get_context_data() context['gateway_url'] = processor.get_gateway_url(self.request)[0] context['form'] = processor.get_form(gateway_url_tuple[2]) return TemplateResponse(request=self.request, template=self.get_template_names(), context=context) else: raise ImproperlyConfigured()