예제 #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})
예제 #2
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})
예제 #3
0
def success(request):
    """ обработчик для SuccessURL """

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

        url = reverse('checkout.step', args=('receipt', ))
        return HttpResponseRedirect('%s?order=%s' % (url, id))

    return render(request, 'robokassa/error.html', {'form': form})
예제 #4
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})
예제 #5
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})
예제 #6
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}))