def buy(request): if request.method == 'POST': from robokassa.forms import RobokassaForm from datetime import datetime deal_id = request.POST.get('deal_id',False) if not deal_id: return direct_to_template(request,'error.html') deal = Dealings.objects.get(pk = deal_id) deal.state = "WP" deal.product.last_purchase = datetime.now() deal.product.save() deal.save() form = RobokassaForm(initial={ 'OutSum': str(deal.cost), 'InvId': deal.id, 'Desc': '', 'Email': request.user.email, # 'IncCurrLabel': '', 'Culture': 'ru', }) return redirect(form.get_redirect_url()) return direct_to_template(request,'error.html')
def get_payment_template(request, order_id=''): if order_id == '': return HttpResponse() else: cur_site_name = get_current_site(request).name order = Order.objects.get(pk=order_id) if settings.LUGATI_TESTING: form = RobokassaForm(initial={ 'OutSum': 1, 'InvId': order_id, }) else: form = RobokassaForm( initial={ 'OutSum': float(order.delivery_price) + float(order.get_total_sum()), 'InvId': order_id, }) return render( request, 'ligati_payment/lugati_robokassa/robokassa_payment_template.html', { 'form': form, 'cur_site_name': cur_site_name })
class RobokassaFormTest(TestCase): def setUp(self): self.form = RobokassaForm( initial={ 'OutSum': 100.00, 'InvId': 58, 'Desc': u'Холодильник "Бирюса"', 'Email': '*****@*****.**' }) def testSignature(self): self.assertEqual( self.form._get_signature_string(), '%s:100.0:58:%s:shpparam1=None:shpparam2=None' % (LOGIN, PASSWORD1)) self.assertEqual(len(self.form.fields['SignatureValue'].initial), 32) def testSignatureMissingParams(self): form = RobokassaForm(initial={'InvId': 5}) self.assertEqual( form._get_signature_string(), '%s::5:%s:shpparam1=None:shpparam2=None' % (LOGIN, PASSWORD1)) def testRedirectUrl(self): url = "https://merchant.roboxchange.com/Index.aspx?MrchLogin="******"test_login&OutSum=100.0&InvId=58&Desc=%D5%EE%EB%EE%E4%" \ "E8%EB%FC%ED%E8%EA+%22%C1%E8%F0%FE%F1%E0%22&SignatureVa" \ "lue=0EC23BE40003640B35EC07F6615FFB57&Email=vasia%40exa" \ "mple.com&shpparam1=None&shpparam2=None" self.assertEqual(self.form.get_redirect_url(), url)
class RobokassaFormTest(TestCase): def setUp(self): self.form = RobokassaForm( initial={ 'OutSum': 100.00, 'InvId': 58, 'Desc': u'Холодильник "Бирюса"', 'Email': '*****@*****.**' }) def testSignature(self): self.assertEqual( self.form._get_signature_string(), '%s:100.0:58:%s:shpparam1=None:shpparam2=None' % (LOGIN, PASSWORD1) ) self.assertEqual(len(self.form.fields['SignatureValue'].initial), 32) def testSignatureMissingParams(self): form = RobokassaForm(initial={'InvId': 5}) self.assertEqual( form._get_signature_string(), '%s::5:%s:shpparam1=None:shpparam2=None' % (LOGIN, PASSWORD1) ) def testRedirectUrl(self): url = "https://merchant.roboxchange.com/Index.aspx?MrchLogin="******"test_login&OutSum=100.0&InvId=58&Desc=%D5%EE%EB%EE%E4%" \ "E8%EB%FC%ED%E8%EA+%22%C1%E8%F0%FE%F1%E0%22&SignatureVa" \ "lue=0EC23BE40003640B35EC07F6615FFB57&Email=vasia%40exa" \ "mple.com&shpparam1=None&shpparam2=None" self.assertEqual(self.form.get_redirect_url(), url)
class RobokassaFormTest(TestCase): def setUp(self): self.form = RobokassaForm( initial={ "OutSum": 100.00, "InvId": 58, "Desc": 'Холодильник "Бирюса"', "Email": "*****@*****.**", }) def testSignature(self): self.assertEqual( self.form._get_signature_string(), "%s:100.0:58:%s:shpparam1=None:shpparam2=None" % (LOGIN, PASSWORD1), ) self.assertEqual(len(self.form.fields["SignatureValue"].initial), 32) def testSignatureMissingParams(self): form = RobokassaForm(initial={"InvId": 5}) self.assertEqual( form._get_signature_string(), "%s::5:%s:shpparam1=None:shpparam2=None" % (LOGIN, PASSWORD1), ) def testRedirectUrl(self): url = "https://merchant.roboxchange.com/Index.aspx?MrchLogin=test_login&OutSum=100.0&InvId=58&Desc=%D5%EE%EB%EE%E4%E8%EB%FC%ED%E8%EA+%22%C1%E8%F0%FE%F1%E0%22&SignatureValue=0EC23BE40003640B35EC07F6615FFB57&Email=vasia%40example.com&shpparam1=None&shpparam2=None" # noqa self.assertEqual(self.form.get_redirect_url(), url)
def setUp(self): self.form = RobokassaForm(initial = { 'OutSum': 100.00, 'InvId': 58, 'Desc' : u'Холодильник "Бирюса"', 'Email' : '*****@*****.**' })
def setUp(self): self.form = RobokassaForm( initial={ "OutSum": 100.00, "InvId": 58, "Desc": 'Холодильник "Бирюса"', "Email": "*****@*****.**", })
def testExtra(self): form = RobokassaForm(initial={ 'InvId': 58, 'OutSum': 100, 'param1': 'value1', 'param2': 'value2' }) self.assertEqual(form._get_signature_string(), '%s:100:58:%s:shpparam1=value1:shpparam2=value2' % (LOGIN, PASSWORD1))
def save(self): order = Order.objects.get(id=self.checkout.storage['order_id']) order.comment = self.request.POST.get('comment', '').strip() # Выбор пользователем типа оплаты payment_type = self.request.POST.get('payment') if payment_type not in ('cash', 'robokassa'): payment_type = None # Нет доставки - заказ оптового покупателя if not order.delivery: self.checkout.storage['is_payed'] = True order.status = Order.STATUS_PAYMENT_WAITING order.is_emails_sended = True order.save() self.checkout.save() send_order_mails(order, self.request.user) self.checkout.storage['is_notified'] = True return # Самовывоз - не нужна оплата # Оплата наличкой - не нужна оплата elif payment_type == 'cash': self.checkout.storage['is_payed'] = True order.payment_type = Order.PAYMENT_CASHPICK order.status = Order.STATUS_PAYED order.is_emails_sended = True order.save() self.checkout.save() send_order_mails(order, self.request.user) self.checkout.storage['is_notified'] = True return order.payment_type = Order.PAYMENT_ROBOKASSA order.save() form = RobokassaForm(initial={ 'OutSum': order.net, 'InvId': order.id, 'Desc': u'Заказ №%s в интернет-магазине «Томат»' % order.id, 'Email': self.request.user.email, 'Culture': 'ru', }) if settings.DEBUG: form.target = reverse('checkout.views.rk_test_start') url = form.get_redirect_url() else: url = form.get_redirect_url() self.checkout.save() return HttpResponseRedirect(url)
def testSignatureMissingParams(self): form = RobokassaForm( initial={'InvId': 5}, login=CUSTOM_LOGIN, password1=CUSTOM_PASS1, password2=CUSTOM_PASS2) self.assertEqual( form._get_signature_string(), '%s::5:%s:shpparam1=None:shpparam2=None' % ( CUSTOM_LOGIN, CUSTOM_PASS1) )
def testSignatureMissingParams(self): form = RobokassaForm(initial={'InvId': 5}, login=CUSTOM_LOGIN, password1=CUSTOM_PASS1, password2=CUSTOM_PASS2) self.assertEqual( form._get_signature_string(), '%s::5:%s:shpparam1=None:shpparam2=None' % (CUSTOM_LOGIN, CUSTOM_PASS1))
def setUp(self): self.form = RobokassaForm(initial={ 'OutSum': 100.00, 'InvId': 58, 'Desc': u'Холодильник "Бирюса"', 'Email': '*****@*****.**' }, login=CUSTOM_LOGIN, password1=CUSTOM_PASS1, password2=CUSTOM_PASS2)
def testExtra(self): form = RobokassaForm(initial={ "InvId": 58, "OutSum": 100, "param1": "value1", "param2": "value2" }) self.assertEqual( form._get_signature_string(), "%s:100:58:%s:shpparam1=value1:shpparam2=value2" % (LOGIN, PASSWORD1), )
def testExtra(self): form = RobokassaForm(initial={ 'InvId': 58, 'OutSum': 100, 'param1': 'value1', 'param2': 'value2' }, login=CUSTOM_LOGIN, password1=CUSTOM_PASS1, password2=CUSTOM_PASS2) self.assertEqual( form._get_signature_string(), '%s:100:58:%s:shpparam1=value1:shpparam2=value2' % (CUSTOM_LOGIN, CUSTOM_PASS1))
def testExtra(self): form = RobokassaForm( initial={ 'InvId': 58, 'OutSum': 100, 'param1': 'value1', 'param2': 'value2' }, login=CUSTOM_LOGIN, password1=CUSTOM_PASS1, password2=CUSTOM_PASS2 ) self.assertEqual( form._get_signature_string(), '%s:100:58:%s:shpparam1=value1:shpparam2=value2' % ( CUSTOM_LOGIN, CUSTOM_PASS1) )
def order(request, order_num=None): """ """ custom_context = {'editable': False, 'uc_form': MagnetForm()} if order_num is not None: custom_context.update({'order_num': order_num}) order_obj = get_object_or_404(Order, number=order_num) if order_obj.status == 'new': raise Http404 custom_context['pay_form'] = RobokassaForm(initial={ 'OutSum': order_obj.get_total_sum_with_delivery(), 'InvId': order_obj.pk, 'Desc': order_obj.fio, 'Email': order_obj.email, #'IncCurrLabel': 'UAH', 'Culture': 'ru' }) else: custom_context['editable'] = True order_obj = get_order(request, draft=True) form = OrderForm(instance=order_obj) custom_context.update({'order': order_obj}) custom_context.update({'form': form}) return render(request, 'order.html', custom_context)
def setUp(self): self.form = RobokassaForm(initial = { 'OutSum': 100.00, 'InvId': 58, 'Desc' : 'Холодильник "Бирюса"', 'Email' : '*****@*****.**' })
def confirmation_view(request, template_name="cart/confirmation.html"): # получить пользователя # нужно получить заказ # нужно получить доставку if request.user.is_authenticated(): if request.method == 'GET' and "cart_id" in request.GET: cart_id = request.GET['cart_id'] user = request.user order = Order.objects.get(cart_id=cart_id) form = RobokassaForm(initial={ 'OutSum': order.total_price(), 'InvId': order.id, }) order.save() subject = u'заявка от %s' % order.user.first_name message = u'Номер заказа: %s \n Имя: %s \n телефон: %s' % ( order.id, order.user.last_name, order.user.phone) send_mail(subject, message, '*****@*****.**', [ADMIN_EMAIL], fail_silently=False) # subject = u'Пользователь не оплатил %s' % order.user.first_name # message = u'Номер заказа: %s \n Имя: %s \n телефон: %s' % (order.id, order.user.last_name, order.user.phone) # send_mail(subject, message, '*****@*****.**', [ADMIN_EMAIL], fail_silently=False) # else: # if request.method == 'POST' and "mail" in request.POST: # cart_id = request.POST['cart_id'] # order = Order.objects.get(cart_id=cart_id) # items = CartItem.objects.filter(cart_id=cart_id) # context_dict = { # 'name': request.user.get_full_name(), # 'cart_items': items, # 'price': order.total_price(), # } # # # subject = u'Супер письмо' # message = render_to_string( # 'core/email.html', context_dict) # # from_email = '*****@*****.**' # to = "*****@*****.**" # msg = EmailMultiAlternatives(subject, message, from_email, [to]) # msg.content_subtype = "html" # msg.send() # return HttpResponseRedirect('/') else: return HttpResponseRedirect('/login') return render_to_response(template_name, locals(), context_instance=RequestContext(request))
def setUp(self): self.form = RobokassaForm( initial={ 'OutSum': 100.00, 'InvId': 58, 'Desc': u'Холодильник "Бирюса"', 'Email': '*****@*****.**' }, login=CUSTOM_LOGIN, password1=CUSTOM_PASS1, password2=CUSTOM_PASS2 )
class RobokassaFormTest(TestCase): def setUp(self): self.form = RobokassaForm( initial={ 'OutSum': 100.00, 'InvId': 58, 'Desc': u'Холодильник "Бирюса"', 'Email': '*****@*****.**' }) def testSignature(self): self.assertEqual( self.form._get_signature_string(), '%s:100.0:58:%s:shpparam1=None:shpparam2=None' % (LOGIN, PASSWORD1)) self.assertEqual(len(self.form.fields['SignatureValue'].initial), 32) def testSignatureMissingParams(self): form = RobokassaForm(initial={'InvId': 5}) self.assertEqual( form._get_signature_string(), '%s::5:%s:shpparam1=None:shpparam2=None' % (LOGIN, PASSWORD1)) def testGetRedirectParams(self): self.assertEqual( dict(self.form.get_redirect_params()), { 'MrchLogin': '******', 'OutSum': '100.0', 'InvId': '58', 'Desc': 'Холодильник "Бирюса"', 'SignatureValue': '0EC23BE40003640B35EC07F6615FFB57', 'Email': '*****@*****.**', 'Encoding': 'utf-8', 'shpparam1': 'None', 'shpparam2': 'None' }) def testRedirectUrl(self): url = "https://merchant.roboxchange.com/Index.aspx?MrchLogin=test_login&OutSum=100.0&InvId=58" \ "&Desc=%D0%A5%D0%BE%D0%BB%D0%BE%D0%B4%D0%B8%D0%BB%D1%8C%D0%BD%D0%B8%D0%BA+%22%D0%91%D0%B8%D1%80%D1%8E%D1%81%D0%B0%22" \ "&SignatureValue=0EC23BE40003640B35EC07F6615FFB57&Email=vasia%40example.com&Encoding=utf-8&shpparam1=None&shpparam2=None" self.assertEqual(self.form.get_redirect_url(), url)
class RobokassaFormTest(TestCase): def setUp(self): self.form = RobokassaForm(initial = { 'OutSum': 100.00, 'InvId': 58, 'Desc' : u'Холодильник "Бирюса"', 'Email' : '*****@*****.**' }) def testSignature(self): self.assertEqual(self.form._get_signature_string(), '%s:100.0:58:%s:shpparam1=None:shpparam2=None' % (LOGIN, PASSWORD1)) self.assertEqual(len(self.form.fields['SignatureValue'].initial), 32) def testSignatureMissingParams(self): form = RobokassaForm(initial = {'InvId': 5}) self.assertEqual(form._get_signature_string(), '%s::5:%s:shpparam1=None:shpparam2=None' % (LOGIN, PASSWORD1)) def testGetRedirectParams(self): self.assertEqual( dict(self.form.get_redirect_params()), { 'MrchLogin': '******', 'OutSum': '100.0', 'InvId': '58', 'Desc': 'Холодильник "Бирюса"', 'SignatureValue': '0EC23BE40003640B35EC07F6615FFB57', 'Email': '*****@*****.**', 'Encoding': 'utf-8', 'shpparam1': 'None', 'shpparam2': 'None' } ) def testRedirectUrl(self): url = "https://merchant.roboxchange.com/Index.aspx?MrchLogin=test_login&OutSum=100.0&InvId=58" \ "&Desc=%D0%A5%D0%BE%D0%BB%D0%BE%D0%B4%D0%B8%D0%BB%D1%8C%D0%BD%D0%B8%D0%BA+%22%D0%91%D0%B8%D1%80%D1%8E%D1%81%D0%B0%22" \ "&SignatureValue=0EC23BE40003640B35EC07F6615FFB57&Email=vasia%40example.com&Encoding=utf-8&shpparam1=None&shpparam2=None" self.assertEqual(self.form.get_redirect_url(), url)
def pay(request, id): order = Order.objects.get(id=id) CURRENCY = getattr(settings, 'ROBOKASSA_CURRENCY', False) if CURRENCY: valute = Valute.objects.get(slug=settings.ROBOKASSA_CURRENCY.lower()) amount = order.retail_price_with_discount / valute.rate else: amount = order.retail_price_with_discount robokassa_form = RobokassaForm(initial={ 'OutSum': amount, 'InvId': order.id, 'Desc': 'Order #%s' % order.id, 'Email': order.email, 'Encoding': 'utf8', 'Culture': 'ru' }) return redirect(robokassa_form.get_redirect_url())
def robokassa_redirect(request, basket_num, amount, **kwargs): """ This will be called from PaymentDetailsView.handle_payment, it supposed to generate url for Robokassa, inject it into RedirectRequired error and raise it We also have to save the session and to use its number as parameter """ initial={'OutSum': amount, 'InvId': basket_num} for key in kwargs: if key in EXTRA_PARAMS or key in OPTIONAL_PARAMS: initial[key] = kwargs[key] session = request.session session.save() if session.session_key is not None: initial['session_key'] = session.session_key else: log.error('session_key is empty') form = RobokassaForm(initial=initial) err = RedirectRequired(form.get_redirect_url()) raise err
def robokassa_redirect(request, basket_num, amount, **kwargs): """ This will be called from PaymentDetailsView.handle_payment, it supposed to generate url for Robokassa, inject it into RedirectRequired error and raise it We also have to save the session and to use its number as parameter """ initial = {'OutSum': amount, 'InvId': basket_num} for key in kwargs: if key in EXTRA_PARAMS or key in OPTIONAL_PARAMS: initial[key] = kwargs[key] session = request.session session.save() if session.session_key is not None: initial['session_key'] = session.session_key else: log.error('session_key is empty') form = RobokassaForm(initial=initial) err = RedirectRequired(form.get_redirect_url()) raise err
def pay_with_robokassa(request): form = RobokassaForm( initial={ 'OutSum': '100.00', 'InvId': '1', 'Desc': 'Some item', 'Email': request.user.email or '*****@*****.**', # 'UserId': request.user.pk, # 'SiteId': 1 }) return render(request, 'robokassa/form.html', {'form': form})
def get_context_data(self, **kwargs): context = super(SubscribeView, self).get_context_data(**kwargs) payment_id = self.request.session.get('payment') payment = get_object_or_404(Payment, pk=payment_id) if not self.form: self.form = RobokassaForm(initial={ 'OutSum': payment.sum, 'InvId': payment.pk, 'Desc': payment.description, 'Culture': 'ru' }) context['form'] = self.form return context
def pay_with_robokassa(request, order_id): order = get_object_or_404(Order, pk=order_id) form = RobokassaForm( initial={ 'OutSum': order.total, 'InvId': order.id, 'Desc': order.name, 'Email': request.user.email, # 'IncCurrLabel': '', # 'Culture': 'ru' }) return render(request, 'app/pay_with_robokassa.html', {'form': form})
def pay_with_robokassa(request, order_id): order = get_object_or_404(Order, pk=order_id) form = RobokassaForm( initial={ "OutSum": order.total, "InvId": order.id, "Desc": order.name, "Email": request.user.email, # 'IncCurrLabel': '', # 'Culture': 'ru' }) return render(request, "app/pay_with_robokassa.html", {"form": form})
class RobokassaCustomCredentialFormTest(TestCase): def setUp(self): self.form = RobokassaForm( initial={ 'OutSum': 100.00, 'InvId': 58, 'Desc': u'Холодильник "Бирюса"', 'Email': '*****@*****.**' }, login=CUSTOM_LOGIN, password1=CUSTOM_PASS1, password2=CUSTOM_PASS2 ) def testSignature(self): self.assertEqual( self.form._get_signature_string(), '%s:100.0:58:%s:shpparam1=None:shpparam2=None' % ( CUSTOM_LOGIN, CUSTOM_PASS1) ) self.assertEqual(len(self.form.fields['SignatureValue'].initial), 32) def testSignatureMissingParams(self): form = RobokassaForm( initial={'InvId': 5}, login=CUSTOM_LOGIN, password1=CUSTOM_PASS1, password2=CUSTOM_PASS2) self.assertEqual( form._get_signature_string(), '%s::5:%s:shpparam1=None:shpparam2=None' % ( CUSTOM_LOGIN, CUSTOM_PASS1) ) def testRedirectUrl(self): url = "https://merchant.roboxchange.com/Index.aspx?MrchLogin="******"test_login2&OutSum=100.0&InvId=58&Desc=%D5%EE%EB%EE%E4%E8%" \ "EB%FC%ED%E8%EA+%22%C1%E8%F0%FE%F1%E0%22&SignatureValue=659" \ "9E0D576E94D4E8616A40B16B8288F&Email=vasia%40example.com&sh" \ "pparam1=None&shpparam2=None" self.assertEqual(self.form.get_redirect_url(), url)
class RobokassaCustomCredentialFormTest(TestCase): def setUp(self): self.form = RobokassaForm(initial={ 'OutSum': 100.00, 'InvId': 58, 'Desc': u'Холодильник "Бирюса"', 'Email': '*****@*****.**' }, login=CUSTOM_LOGIN, password1=CUSTOM_PASS1, password2=CUSTOM_PASS2) def testSignature(self): self.assertEqual( self.form._get_signature_string(), '%s:100.0:58:%s:shpparam1=None:shpparam2=None' % (CUSTOM_LOGIN, CUSTOM_PASS1)) self.assertEqual(len(self.form.fields['SignatureValue'].initial), 32) def testSignatureMissingParams(self): form = RobokassaForm(initial={'InvId': 5}, login=CUSTOM_LOGIN, password1=CUSTOM_PASS1, password2=CUSTOM_PASS2) self.assertEqual( form._get_signature_string(), '%s::5:%s:shpparam1=None:shpparam2=None' % (CUSTOM_LOGIN, CUSTOM_PASS1)) def testRedirectUrl(self): url = "https://merchant.roboxchange.com/Index.aspx?MrchLogin="******"test_login2&OutSum=100.0&InvId=58&Desc=%D5%EE%EB%EE%E4%E8%" \ "EB%FC%ED%E8%EA+%22%C1%E8%F0%FE%F1%E0%22&SignatureValue=659" \ "9E0D576E94D4E8616A40B16B8288F&Email=vasia%40example.com&sh" \ "pparam1=None&shpparam2=None" self.assertEqual(self.form.get_redirect_url(), url)
def payment(request): if not request.user.is_authenticated(): return HttpResponseRedirect('/login/') #TODO:перенести в одно место form = RobokassaForm( initial={ 'OutSum': 900, #order.total, 'InvId': request.user.id + int(time.time()), #order.id, 'Desc': 'Premium аккаунт Heliard', #order.name, 'Email': request.user.email, 'user': request.user.id # 'IncCurrLabel': '', # 'Culture': 'ru' }) return render(request, 'robokassa/payment.html', { 'request': request, 'form': form })
def post(self, *args, **kwargs): order_pk = self.request.session['order_pk'] order = Order.objects.get(pk=order_pk, is_ordered=False) amount = order.get_total_order_price() print(amount) form = RobokassaForm(initial={ 'OutSum': amount, 'InvId': order_pk, 'Desc': 'Тестовая оплата', 'IsTest': 1, 'MerchantLogin': '******', 'Pass1': 's6pS1LpEhZO0m6iWHT4i', 'SignatureValue': 'U4aTMmo8mF4dIhHP5hJ9', }) context = { 'form': form, } return render(self.request, 'cart/payment_robokassa.html', context)
def likeAPro(request): from robokassa.forms import RobokassaForm userFee = Fee.objects.filter(user=request.user).order_by('-id') c = RequestContext(request) fee = userFee.aggregate(Sum('value'))['value__sum'] or 0 feeLatId = userFee[0].id if userFee else None if feeLatId: form = RobokassaForm( initial={ 'OutSum': fee, # order.total, 'InvId': feeLatId, # order.id, 'Desc': 'Пополнение счета Heliard', # order.name, 'Email': request.user.email, 'user': request.user.id, 'request': '' }) c.update({'fee': fee, 'form': form}) return HttpResponse(loader.get_template('main/pro.html').render(c))
def testSignatureMissingParams(self): form = RobokassaForm(initial = {'InvId': 5}) self.assertEqual(form._get_signature_string(), '%s::5:%s:shpparam1=None:shpparam2=None' % (LOGIN, PASSWORD1))
def testSignatureMissingParams(self): form = RobokassaForm(initial={'InvId': 5}) self.assertEqual( form._get_signature_string(), '%s::5:%s:shpparam1=None:shpparam2=None' % (LOGIN, PASSWORD1))
def receipt_view(request, template_name='checkout/receipt.html'): """Представление отображающее сделанный заказ""" request.breadcrumbs(u'Подтверждение данных', request.path_info) order_id = request.session.get('order_id', '') if order_id: # если в cookies есть номер заказа, выводим его содержимое order = Order.objects.get(id=order_id) order_items = OrderItem.objects.filter(order=order) delivery = order.delivery total = order.total if request.user.username == 'admin': total = 1 if order.payment_method == 2: form = RobokassaForm(initial={ 'OutSum': total, 'InvId': order.id, }) else: """на данный момент следующий код не работает потому что отключена возможность выбора способа оплаты""" """отправка писем""" items = '' for item in order_items: items = items + '%s \n' % item.name if order.payment_method == 1: payment_method = u'Оплата на карту' else: payment_method = u'Оплата онлайн' subject = u'polythai.ru заявка от %s' % order.shipping_name message = u'Номер транзакции №: %s \n Имя: %s \n телефон: %s \n \ почта: %s \n id заказа: %s \n Товары: %s \n %s \n \ Тип доставки: %s \n Вес доставки: %s \n Адрес: %s \n \ Стоимость доставки: %s \n Общая стоимость: %s \n \ ссылка на заказ : http://polythai.ru%s' % ( order.transaction_id, order.shipping_name, order.phone, order.email, order.id, items, payment_method, delivery.delivery_type, delivery.weight, order.shipping_address_1, delivery.delivery_price, order.total, order.get_absolute_url()) send_mail(subject, message, '*****@*****.**', [ADMIN_EMAIL], fail_silently=False) context_dict = { 'transaction': order.transaction_id, 'id': order.id, 'items': items, 'total': order.total, 'payment_method': payment_method, } message = render_to_string('checkout/email_1.html', context_dict) from_email = '*****@*****.**' to = '%s' % order.email msg = EmailMultiAlternatives(subject, message, from_email, [to]) msg.content_subtype = "html" msg.send() cupon_done = Cupon.objects.get(id=order.cupon.id) cupon_done.percent = '0' cupon_done.save() price_order = '%s' % order.total price_order = price_order.split(".") template_name = 'checkout/receipt_print.html' if request.POST == 'POST': del request.session['order_id'] else: # иначе перенаправляем пользователя на страницу корзины cart_url = urlresolvers.reverse('show_cart') return HttpResponseRedirect(cart_url) return render_to_response(template_name, locals(), context_instance=RequestContext(request))