def fail( request, template_name="robokassa/fail.html", extra_context=None, error_template_name="robokassa/error.html", ): """Обработчик для FailURL""" data = request.POST if USE_POST else request.GET form = FailRedirectForm(data) if form.is_valid(): inv_id, out_sum = form.cleaned_data["InvId"], form.cleaned_data[ "OutSum"] # дополнительные действия с заказом (например, смену его статуса для # разблокировки товара на складе) можно осуществить в обработчике # сигнала robokassa.signals.fail_page_visited fail_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})
def fail(request, template_name='robokassa/fail.html', extra_context=None, error_template_name='robokassa/error.html'): """ обработчик для FailURL """ data = request.POST if USE_POST else request.GET form = FailRedirectForm(data) if form.is_valid(): id, sum = form.cleaned_data['InvId'], form.cleaned_data['OutSum'] # дополнительные действия с заказом (например, смену его статуса для # разблокировки товара на складе) можно осуществить в обработчике # сигнала robokassa.signals.fail_page_visited fail_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})
def payment_fail(request): data = request.POST if USE_POST else request.GET form = FailRedirectForm(data) messages.error(request, 'При оплате произошла ошибка') if form.is_valid(): order_id, order_sum = form.cleaned_data['InvId'], form.cleaned_data['OutSum'] # дополнительные действия с заказом (например, смену его статуса для # разблокировки товара на складе) можно осуществить в обработчике # сигнала robokassa.signals.fail_page_visited fail_page_visited.send(sender = form, InvId = order_id, OutSum = order_sum, extra = form.extra_params()) order_obj = get_object_or_404(Order, pk=order_id) return redirect(to=reverse('get_order', kwargs={'order_num': order_obj.number})) order_obj = get_order(request, False) return redirect(to=reverse('get_order', kwargs={'order_num': order_obj.number}))