Exemplo n.º 1
0
def success(request,
            template_name='robokassa/success.html',
            extra_context=None,
            error_template_name='robokassa/error.html'):
    """ обработчик для SuccessURL """

    data = request.POST if USE_POST else request.GET
    form = SuccessRedirectForm(data)
    if form.is_valid():
        id, sum = form.cleaned_data['InvId'], form.cleaned_data['OutSum']

        # в случае, когда не используется строгая проверка, действия с заказом
        # можно осуществлять в обработчике сигнала robokassa.signals.success_page_visited
        success_page_visited.send(sender=form,
                                  InvId=id,
                                  OutSum=sum,
                                  extra=form.extra_params())

        context = {'InvId': id, 'OutSum': sum, 'form': form}
        context.update(form.extra_params())
        context.update(extra_context or {})
        return direct_to_template(request,
                                  template_name,
                                  extra_context=context)

    return direct_to_template(request,
                              error_template_name,
                              extra_context={'form': form})
Exemplo n.º 2
0
    def dispatch(self, request, *args, **kwargs):
        data = self.get_data(request)
        if data is None:
            return self.http_method_not_allowed(request, *args, **kwargs)
        self.process_data(data)
        if self.robokassa_cleaned_data is None:
            messages.error(
                self.request,
                (u"Возникли ошибки при обработке Вашего платежа, пожалуйста, "
                 u"свяжитесь с нами по телефону"))
            log.error("SuccessRedirect error: bad data")
            return HttpResponseRedirect(reverse('basket:summary'))

        # lets find the basket
        try:
            self.basket = Basket.objects.get(id=self.basket_num)
        except Basket.DoesNotExist:
            messages.error(
                self.request,
                u"Данному платежу не соответствует ни одна корзина")
            return HttpResponseRedirect(reverse('basket:summary'))

        # keep this for legacy
        success_page_visited.send(sender=self,
                                  InvId=self.basket_num,
                                  OutSum=self.robokassa_amount,
                                  extra=self.robokassa_extra_params)
        # if everything OK render thank-you page

        return super(SuccessResponseView, self).get(request, *args, **kwargs)
Exemplo n.º 3
0
def success(
    request,
    template_name="robokassa/success.html",
    extra_context=None,
    error_template_name="robokassa/error.html",
):
    """Обработчик для SuccessURL"""

    data = request.POST if USE_POST else request.GET
    form = SuccessRedirectForm(data)
    if form.is_valid():
        inv_id, out_sum = form.cleaned_data["InvId"], form.cleaned_data[
            "OutSum"]

        # в случае, когда не используется строгая проверка, действия с заказом
        # можно осуществлять в обработчике сигнала robokassa.signals.success_page_visited
        success_page_visited.send(sender=form,
                                  InvId=inv_id,
                                  OutSum=out_sum,
                                  extra=form.extra_params())

        context = {"InvId": inv_id, "OutSum": out_sum, "form": form}
        context.update(form.extra_params())
        context.update(extra_context or {})
        return TemplateResponse(request, template_name, context)

    return TemplateResponse(request, error_template_name, {"form": form})
Exemplo n.º 4
0
    def dispatch(self, request, *args, **kwargs):
        data = self.get_data(request)
        if data is None:
            return self.http_method_not_allowed(request, *args, **kwargs)
        self.process_data(data)
        if self.robokassa_cleaned_data is None:
            messages.error(
                self.request,
                (u"Возникли ошибки при обработке Вашего платежа, пожалуйста, "
                u"свяжитесь с нами по телефону"))
            log.error("SuccessRedirect error: bad data")
            return HttpResponseRedirect(reverse('basket:summary'))

        # lets find the basket
        try:
            self.basket = Basket.objects.get(id=self.basket_num)
        except Basket.DoesNotExist:
            messages.error(
                self.request,
                u"Данному платежу не соответствует ни одна корзина")
            return HttpResponseRedirect(reverse('basket:summary'))

        # keep this for legacy
        success_page_visited.send(sender = self, 
                InvId = self.basket_num, OutSum = self.robokassa_amount,
                             extra = self.robokassa_extra_params)
        # if everything OK render thank-you page

        return super(SuccessResponseView, self).get(request, *args, **kwargs)
Exemplo n.º 5
0
def success(
    request, template_name="robokassa/success.html", extra_context=None, error_template_name="robokassa/error.html"
):
    """ обработчик для SuccessURL """

    data = request.POST if USE_POST else request.GET
    form = SuccessRedirectForm(data)
    if form.is_valid():
        id, sum = form.cleaned_data["InvId"], form.cleaned_data["OutSum"]

        # в случае, когда не используется строгая проверка, действия с заказом
        # можно осуществлять в обработчике сигнала robokassa.signals.success_page_visited
        success_page_visited.send(sender=form, InvId=id, OutSum=sum, extra=form.extra_params())

        context = {"InvId": id, "OutSum": sum, "form": form}
        context.update(form.extra_params())
        context.update(extra_context or {})
        return direct_to_template(request, template_name, extra_context=context)

    return direct_to_template(request, error_template_name, extra_context={"form": form})
Exemplo n.º 6
0
def success(request, template_name='robokassa/success.jinja', extra_context=None,
            error_template_name = 'robokassa/error.jinja'):
    """ обработчик для SuccessURL """

    data = request.POST if USE_POST else request.GET
    form = SuccessRedirectForm(data)
    if form.is_valid():
        id, sum = form.cleaned_data['InvId'], form.cleaned_data['OutSum']

        # в случае, когда не используется строгая проверка, действия с заказом
        # можно осуществлять в обработчике сигнала robokassa.signals.success_page_visited
        success_page_visited.send(sender = form, InvId = id, OutSum = sum,
                                  extra = form.extra_params())

        context = {'InvId': id, 'OutSum': sum, 'form': form}
        context.update(form.extra_params())
        context.update(extra_context or {})
        return TemplateResponse(request, template_name, context)

    return TemplateResponse(request, error_template_name, {'form': form})
Exemplo n.º 7
0
def payment_success(request):
    data = request.POST if USE_POST else request.GET
    form = SuccessRedirectForm(data)
    #context = {'InvId': data.get('InvId'), 'OutSum': data.get('OutSum'), 'form': form}
    #return render(request, template_name, context)
    if form.is_valid():
        order_id, order_sum = form.cleaned_data['InvId'], form.cleaned_data['OutSum']

        # в случае, когда не используется строгая проверка, действия с заказом
        # можно осуществлять в обработчике сигнала robokassa.signals.success_page_visited
        success_page_visited.send(sender = form, InvId = order_id, OutSum = order_sum,
                                  extra = form.extra_params())

        messages.success(request, 'Оплата прошла успешно')
        # context = {'InvId': order_id, 'OutSum': order_sum, 'form': form}
        # context.update(form.extra_params())
        # context.update(extra_context or {})
        #return render(request, template_name, context)
        order_obj = get_object_or_404(Order, pk=order_id)
        return redirect(to=reverse('get_order', kwargs={'order_num': order_obj.number}))

    messages.error(request, 'При оплате произошла ошибка')
    order_obj = get_order(request)
    return redirect(to=reverse('get_order', kwargs={'order_num': order_obj.number}))