Пример #1
0
    def form_valid(self, form):
        # save the current order
        order = self.object = form.save()
        if not order.user or order.user != self.request.user:
            order.user = self.request.user
        order.proceed_to_confirm()
        order.confirm()
        # proceed this payment according to payment method
        method = form.cleaned_data['payment_method']
        for backend in payment_backend_pool.get_backend_list():
            if backend.backend_name == method:
                break
        else:
            # fool, the method not found
            raise ValueError("Invalid payment method selected")

        # clear the session
        session = getattr(self.request, 'session', None)
        if session is not None:
            session['order_id'] = None

        redirect_to = backend.process_order(order, self.request)
        return HttpResponseRedirect(redirect_to)
Пример #2
0
def get_backend_choices():
    backends = payment_backend_pool.get_backend_list()
    list_backends = [(x.backend_name, getattr(x, 'backend_verbose_name', x.backend_name)) for x in backends]
    return tuple(list_backends)