Ejemplo n.º 1
0
    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()
Ejemplo n.º 2
0
    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()