def test_invalid_amount(self): self.data['amount'] = 'invalid' self.assertRaises(Exception, lambda: PagSeguroItem(**self.data)) self.data['amount'] = '10.0' self.assertRaises(Exception, lambda: PagSeguroItem(**self.data)) self.data['amount'] = '10.000' self.assertRaises(Exception, lambda: PagSeguroItem(**self.data))
def test_invalid_shipping_cost(self): self.data['shipping_cost'] = 'invalid' self.assertRaises(Exception, lambda: PagSeguroItem(**self.data)) self.data['shipping_cost'] = '10.0' self.assertRaises(Exception, lambda: PagSeguroItem(**self.data)) self.data['shipping_cost'] = '10.000' self.assertRaises(Exception, lambda: PagSeguroItem(**self.data))
def test_min_max_amount(self): self.data['amount'] = '0.00' self.assertRaises(Exception, lambda: PagSeguroItem(**self.data)) self.data['amount'] = '0.01' self.assertTrue(PagSeguroItem(**self.data)) self.data['amount'] = '9999999.01' self.assertRaises(Exception, lambda: PagSeguroItem(**self.data)) self.data['amount'] = '9999999.00' self.assertTrue(PagSeguroItem(**self.data))
def test_min_max_shipping_cost(self): self.data['shipping_cost'] = '0.00' self.assertRaises(Exception, lambda: PagSeguroItem(**self.data)) self.data['shipping_cost'] = '0.01' self.assertTrue(PagSeguroItem(**self.data)) self.data['shipping_cost'] = '9999999.01' self.assertRaises(Exception, lambda: PagSeguroItem(**self.data)) self.data['shipping_cost'] = '9999999.00' self.assertTrue(PagSeguroItem(**self.data))
def test_valid_item(self): item = PagSeguroItem(**self.data) self.assertEqual(item.id, '0001') self.assertEqual(item.description, 'My item 1') self.assertEqual(item.amount, Decimal('10.00')) self.assertEqual(item.quantity, 1) self.assertEqual(item.shipping_cost, None) self.assertEqual(item.weight, None) self.data['shipping_cost'] = '10.00' self.data['weight'] = 300 item = PagSeguroItem(**self.data) self.assertEqual(item.shipping_cost, Decimal('10.00')) self.assertEqual(item.weight, 300)
def test_checkout_realizado_com_erro(self): from pagseguro.signals import checkout_realizado_com_erro # load signal function def load_signal(sender, data, **kwargs): self.assertEqual(data['success'], False) self.assertEqual(data['status_code'], 401) self.assertEqual(data['message'], 'Unauthorized') # mock requests responses.add( responses.POST, CHECKOUT_URL, body='Unauthorized', status=401, ) # connect to signal checkout_realizado_com_erro.connect(load_signal) # create new checkout pagseguro_api = PagSeguroApi() pagseguro_api.add_item( PagSeguroItem(id='1', description='My item', amount='10.00', quantity=1)) # load notification pagseguro_api.checkout()
def setUp(self): self.item1 = PagSeguroItem(id='1', description='My item 1', amount='10.00', quantity=1) self.item2 = PagSeguroItem(id='2', description='My item 2', amount='10.00', quantity=1) self.item3 = PagSeguroItem(id='3', description='My item 3', amount='10.00', quantity=1, shipping_cost='10.00', weight=300) self.pagseguro_api = PagSeguroApi()
def test_checkout_realizado(self): from pagseguro.signals import checkout_realizado # load signal function def load_signal(sender, data, **kwargs): self.assertEqual(data['success'], True) self.assertEqual(data['code'], '67DB59D3BDBD84EAA4396F929DB350A7') self.assertEqual(data['status_code'], 200) # mock requests responses.add( responses.POST, CHECKOUT_URL, body=checkout_response_xml, status=200, ) # connect to signal checkout_realizado.connect(load_signal) # create new checkout pagseguro_api = PagSeguroApi() pagseguro_api.add_item( PagSeguroItem(id='1', description='My item', amount='10.00', quantity=1)) # load notification pagseguro_api.checkout()
def setUp(self): self.item1 = PagSeguroItem( id='0001', description='Notebook Prata', amount='24300.00', quantity=1 ) self.pagseguro_api = PagSeguroApiTransparent()
def create_pagseguro_item(rental): """ Create PagSeguro item to add on Cart based on rental information :param rental: Rental used to create the item :return: PagSeguroItem """ two_decimals = Decimal(10)**-2 return PagSeguroItem(id=rental.id, description=rental.get_rental_type_display(), quantity=1, amount=rental.total.quantize(two_decimals))
def teste_pagseguro(request): pagseguro_api = PagSeguroApi( reference='id-unico-de-referencia-do-seu-sistema') item1 = PagSeguroItem(id='0001', description='Notebook Prata', amount='24300.00', quantity=1) item2 = PagSeguroItem(id='0002', description='Meu item 0002', amount='150.00', quantity=1, shipping_cost='25.00', weight=500) pagseguro_api.add_item(item1) pagseguro_api.add_item(item2) api = PagSeguroApiTransparent() api.add_item(item1) sender = { 'name': 'Jose Comprador', 'area_code': 11, 'phone': 56273440, 'email': '*****@*****.**', 'cpf': '22111944785', } api.set_sender(**sender) shipping = { 'street': "Av. Brigadeiro Faria Lima", 'number': 1384, 'complement': '5o andar', 'district': 'Jardim Paulistano', 'postal_code': '01452002', 'city': 'Sao Paulo', 'state': 'SP', 'country': 'BRA', } api.set_shipping(**shipping) api.set_payment_method('creditcard')
def pagseguro_do_checkout(self, request, show_id): api = PagSeguroApiTransparent() ingresso = self.get_ingresso_disponvel(show_id) item = PagSeguroItem(id=ingresso.codigo, description='Ingresso do show {}'.format(ingresso.show.nome), amount=ingresso.show.valor, quantity=1) api.add_item(item) api.set_payment_method('creditcard') # usando cartão de crédito # dados do comprador. Deve vir no post ou do banco. Pra facilitar o teste, coloquei fixo. comprador = {'name': 'Tio Patinhas', 'area_code': 41, 'phone': 987654321, 'email': '*****@*****.**', 'cpf': '22111944785', } api.set_sender(**comprador) # dados do pedido e do comprador. Deve vir no post ou do banco. Pra facilitar o teste, coloquei fixo. pedido = {'quantity': 1, 'value': ingresso.show.valor, 'name': 'Tio Patinhas', 'birth_date': '27/10/1987', 'cpf': '22111944785', 'area_code': 11, 'phone': 56273440, 'no_interest_quantity': 5} api.set_creditcard_data(**pedido) # dados do endereço do comprador. Deve vir no post ou do banco. Pra facilitar o teste, coloquei fixo. endereco = {'street': 'Av. Sete de setembro', 'number': 123, 'district': 'Centro', 'postal_code': '01234500', 'city': 'Curitiba', 'state': 'PR', 'country': 'BRA', } api.set_creditcard_billing_address(**endereco) shipping = {'street': "Av. Brigadeiro Faria Lima", 'number': 1384, 'complement': '5o andar', 'district': 'Jardim Paulistano', 'postal_code': '01452002', 'city': 'Sao Paulo', 'state': 'SP', 'country': 'BRA', } api.set_shipping(**shipping) # cartão adicionado via token gerado pela aplicação frontend api.set_creditcard_token(request.POST.get('card_token')) # adicionando o hash do usuario que vem via post, da aplicação frontend api.set_sender_hash(request.POST.get('sender_hash')) data = api.checkout() checkout = Checkout.objects.filter(code=data['transaction']['code']).get() # a id do usuario logado vem via POST, na aplicação frontend id_usuario = request.POST.get('id_usuario') usuario = User.objects.filter(id=id_usuario).get() self.salvar_venda(ingresso, checkout, usuario) # atualizando ingresso caso vendido == False if not ingresso.vendido: ingresso.vendido = True ingresso.save() return Response(data)
def post(self, request): f = CompraForm(request.POST) item = PagSeguroItem(id=Red_Pontos.id, description=Red_Pontos.description, amount=Red_Pontos.get_preco(f['quantidade'].data), quantity=str(f['quantidade'].data)) pagseguro_api = PagSeguroApi(email=config('PAGSEGURO_EMAIL'), token=config('PAGSEGURO_TOKEN')) pagseguro_api.add_item(item) data = pagseguro_api.checkout() return redirect(data['redirect_url'])
def pagamento(request): codigo_cliente = request.GET.get('codigo_cliente') recarga_id = request.GET.get('recarga_id') request.session['codigo_cliente'] = codigo_cliente recarga = Recarga.objects.get(pk=recarga_id) cliente = Cliente.objects.get(pk=codigo_cliente) item1 = PagSeguroItem(id=recarga.pk, description='Recarga Keep Mensagens - %s' % recarga.valor.valor, amount=recarga.valor.valor, quantity=1) pagseguro_api = PagSeguroApi( reference='%s-%s' % (codigo_cliente, recarga.pk), senderEmail=cliente.email, senderName=cliente.nome, ) pagseguro_api.add_item(item1) data = pagseguro_api.checkout() if data['status_code'] != 200: recarga.data_cancelamento = datetime.datetime.now() recarga.save() messages.error( request, 'Ocorreu um erro para prosseguir a recarga, contate o suporte.') return HttpResponseRedirect('/recargas/' % cliente.url) requests.post("%s/cria-recarga-cliente/" % cliente.url, data={ 'recarga_id': recarga_id, 'valor_id': recarga.valor_id, 'token': '92817488F00646D0$sso09asada' }) dados = { 'titulo': "Pagamento", 'recarga': recarga, 'cliente': cliente, 'redirect_url': data['redirect_url'], 'menu': "menu_mensagens", } return render(request, 'recarga/pagamento.html', dados)
def handle_successful_order(self, order): super(SuccessResponseView, self).handle_successful_order(order) reference = order.number pagseguro_api = PagSeguroApi(reference=reference) for line in order.lines.all(): item = PagSeguroItem(id=line.pk, description=line.description, amount='{0:.2f}'.format( line.stockrecord.price_excl_tax), quantity=line.quantity) pagseguro_api.add_item(item) data = pagseguro_api.checkout() return redirect(data['redirect_url'])
def create_checkout(self, cart): purchase = self.create_purchase(cart) pagseguro_api = PagSeguroApi(reference=str(purchase.id)) for cart_item in cart.cart_items.all(): ticket = cart_item.ticket item = PagSeguroItem(id=str(ticket.id), description=ticket.title, amount=str(cart_item.unit_price), quantity=cart_item.quantity) pagseguro_api.add_item(item) pagseguro_data = pagseguro_api.checkout() if pagseguro_data['success'] is False: raise CheckoutException(pagseguro_data['message']) purchase.pagseguro_redirect_url = pagseguro_data['redirect_url'] purchase.save() cart.closed = True cart.save() return purchase
def aniversario_doar(request, slug_usuario, slug_missao): aniversario_instance = get_object_or_404(Aniversario, usuario__slug=slug_usuario, missao__slug=slug_missao) if aniversario_instance.finalizado: messages.error( request, 'Aniversário Solidário já foi finalizado. Por isso você não editar mais nenhuma informação!' ) return redirect( reverse('aniversario:index', kwargs={ 'slug_usuario': slug_usuario, 'slug_missao': slug_missao })) valor = request.GET.get('valor') if valor: if int(valor) < 25: messages.error(request, 'O valor minimo em uma doação é de 25 reais') else: pagamento = Pagamento.objects.create(valor=valor) doacao = Doacao.objects.create( usuario=request.user if request.user.is_authenticated() else None, aniversario=aniversario_instance, pagamento=pagamento) pagseguro_item = PagSeguroItem(id=str(doacao.aniversario.id), description=str(doacao), amount='%.2f' % float(doacao.pagamento.valor), quantity=1) pagseguro_api = PagSeguroApi(reference=str(doacao.id)) pagseguro_api.add_item(pagseguro_item) pagseguro_data = pagseguro_api.checkout() doacao.pagamento.checkout = Checkout.objects.get( code=pagseguro_data.get('code')) doacao.pagamento.save(update_fields=['checkout']) return redirect(pagseguro_data.get('redirect_url')) return render(request, 'nucleo/aniversario_doar.html', {'aniversario': aniversario_instance})
def pagseguroAPI_transparente(request, pk): print("pagseguroAPI_transparente") session = request.GET.get('session') id = request.GET.get('pk') description = request.GET.get('pk') api = PagSeguroApiTransparent() item1 = PagSeguroItem(id=id, description='passagem', amount='200.00', quantity=1) api.add_item(item1) api.set_payment_method('eft') api.set_bank_name('itau') if request.method == "GET": context = {'session': session, 'item': item1} return render(request, 'dev_radioanori/pagseguro_transparente.html', context)
def CartPageView(request): cart = Cart(request) pagseguro_api = PagSeguroApi(reference='2309238123939293') if request.method == 'POST': for item in cart.getall(): print(item) pag_item = PagSeguroItem(id=item['id'], description=item['title'], amount=item['price'], quantity=item['quantity'], shipping_cost='25.00', weight=500) pagseguro_api.add_item(pag_item) data = pagseguro_api.checkout() return redirect(data['redirect_url']) return render(request, 'cart.html', { 'products': cart.getall(), 'totalprice': cart.totalprice() })
def get_redirect_url(self, *args, **kwargs): sett = Settings.get() if not sett.require_payment: add_message(self.request, ERROR, 'Pagamentos desabilitados') return '/' item = PagSeguroItem( id='1', description=f'Ingresso para {settings.EVENT_NAME}', amount=f'{sett.ticket_price}', quantity=1 ) reference = get_random_string(length=32) api = PagSeguroApi(reference=reference) api.add_item(item) checkout = api.checkout() if checkout['success']: hacker = self.request.user.profile.hacker hacker.transaction_reference = reference hacker.save() return checkout['redirect_url'] else: add_message(self.request, ERROR, 'Erro ao criar pedido de pagamento. Tente novamente mais tarde.') return '/'
def checkout(self, request): # print(request.data) pagseguro_api = PagSeguroApi( currency=request.data["currency"], reference=request.data["reference"], senderEmail=request.data[ "senderEmail"], #"*****@*****.**",#request.data["senderEmail"], senderName=request.data["senderName"], senderAreaCode=request.data["senderAreaCode"], senderPhone=request.data["senderPhone"], shipping_cost=0, ) # request.data["senderPhone"]) item1 = PagSeguroItem( id=request.data["itemId"], description=request.data["itemDescription"], amount=request.data["itemAmount"], quantity=request.data["itemQuantity"], ) pagseguro_api.add_item(item1) data = pagseguro_api.checkout() return Response(data)
def start_payment(request, order, variant): """ waiting_payments = order.payments.filter(status='waiting').exists() if waiting_payments: return redirect('order:payment', token=order.token) billing = order.billing_address total = order.get_total() defaults = {'total': total.gross, 'tax': total.tax, 'currency': total.currency, 'delivery': order.get_delivery_total().gross, 'billing_first_name': billing.first_name, 'billing_last_name': billing.last_name, 'billing_address_1': billing.street_address_1, 'billing_address_2': billing.street_address_2, 'billing_city': billing.city, 'billing_postcode': billing.postal_code, 'billing_country_code': billing.country, 'billing_email': order.user_email, 'description': _('Order %(order_number)s') % { 'order_number': order}, 'billing_country_area': billing.country_area, 'customer_ip_address': get_client_ip(request)} variant_choices = settings.CHECKOUT_PAYMENT_CHOICES if variant not in [code for code, dummy_name in variant_choices]: raise Http404('%r is not a valid payment variant' % (variant,)) with transaction.atomic(): order.change_status('payment-pending') payment, dummy_created = Payment.objects.get_or_create( variant=variant, status='waiting', order=order, defaults=defaults) try: form = payment.get_form(data=request.POST or None) except RedirectNeeded as redirect_to: return redirect(str(redirect_to)) except Exception: logger.exception('Error communicating with the payment gateway') messages.error( request, _('Oops, it looks like we were unable to contact the selected' ' payment service')) payment.change_status('error') return redirect('order:payment', token=order.token) template = 'order/payment/%s.html' % variant return TemplateResponse(request, [template, 'order/payment/default.html'], {'form': form, 'payment': payment}) """ order.change_status('payment-pending') items = order.get_items() total = 0 for item in items: total += item.quantity * item.unit_price_net if total >= int(settings.DISCOUNT_THRESHOLD): pagseguro_api = PagSeguroApi(reference='luanavizzon', sender_email=order.user_email, extraAmount="%0.2f" % (-float(total) * (0.4))) elif order.discount_amount is not None: pagseguro_api = PagSeguroApi(reference='luanavizzon', sender_email=order.user_email, extraAmount="%0.2f" % -order.discount_amount.gross) else: pagseguro_api = PagSeguroApi(reference='luanavizzon', sender_email=order.user_email) flag = 0 for item in items: if flag == 0 and float(order.get_delivery_total().gross) > 0: pagseguro_api.add_item( PagSeguroItem(id=item.product_sku, description=item.product, amount="%0.2f" % item.unit_price_net, quantity=item.quantity, shipping_cost="%0.2f" % (float(order.get_delivery_total().gross) / float(item.quantity)))) flag = 1 else: pagseguro_api.add_item( PagSeguroItem(id=item.product_sku, description=item.product, amount="%0.2f" % item.unit_price_net, quantity=item.quantity)) data = pagseguro_api.checkout() return redirect(data['redirect_url'])
def test_invalid_weight(self): self.data['weight'] = 'ten' self.assertRaises(Exception, lambda: PagSeguroItem(**self.data))
def completar_pagamento(request, doacao_id): if not request.method == 'POST': return redirect( reverse('financeiro:doacao_pagamento:index', kwargs={'doacao_id': doacao_id})) doacao = get_object_or_404(Doacao, id=doacao_id, usuario=request.user) payment_method = request.POST.get('payment_method') pagseguro_item = PagSeguroItem(id=str(doacao.aniversario.id), description=str(doacao), amount='%.2f' % float(doacao.pagamento.valor), quantity=1) if payment_method == 'pagseguro': pagseguro_api = PagSeguroApi(reference=str(doacao.id)) pagseguro_api.add_item(pagseguro_item) pagseguro_data = pagseguro_api.checkout() doacao.pagamento.checkout = Checkout.objects.get( code=pagseguro_data.get('code')) doacao.pagamento.save(update_fields=['checkout']) return redirect(pagseguro_data.get('redirect_url')) sender = { 'name': request.user.nome, 'area_code': request.user.telefone_ddd, 'phone': request.user.telefone_numero, 'email': request.user.email, 'cpf': request.user.cleaned_cpf } endereco = None if request.POST.get('endereco') == 'novo': endereco = Endereco.objects.create( usuario=request.user, lagradouro=request.POST.get('endereco-lagradouro'), numero=int(request.POST.get('endereco-numero')), complemento=request.POST.get('endereco-complemento'), bairro=request.POST.get('endereco-bairro'), cep=request.POST.get('endereco-cep'), cidade=request.POST.get('endereco-cidade'), estado=request.POST.get('endereco-estado')) else: endereco = Endereco.objects.get(usuario=request.user, id=int(request.POST.get('endereco'))) if endereco: pagseguro_api = PagSeguroApiTransparent(reference=str(doacao.id)) pagseguro_api.add_item(pagseguro_item) pagseguro_api.set_sender(**sender) pagseguro_api.set_shipping(**endereco.pagseguro_serialize()) pagseguro_api.set_payment_method(payment_method) pagseguro_api.set_sender_hash(request.POST.get('sender_hash')) if payment_method == 'boleto': pagseguro_data = pagseguro_api.checkout() doacao.pagamento.boleto_link = pagseguro_data.get( 'transaction').get('paymentLink') doacao.pagamento.save(update_fields=['boleto_link']) return redirect( reverse('financeiro:doacao_pagamento:gerar_boleto', kwargs={'doacao_id': doacao.id})) if payment_method == 'creditcard': pagseguro_api.set_creditcard_token(request.POST.get('card_token')) pagseguro_api.set_creditcard_data( quantity=1, value='%.2f' % doacao.pagamento.valor, name=request.POST.get('nome-no-cartao'), birth_date=request.POST.get('data-nascimento-cartao'), cpf=request.POST.get('cpf-cartao'), area_code=request.POST.get('telefone-ddd'), phone=request.POST.get('telefone')) endereco_cartao = None endereco_cartao_opt = request.POST.get('endereco-cartao') if endereco_cartao_opt == 'mesmo': endereco_cartao = endereco elif endereco_cartao_opt == 'novo': endereco_cartao = Endereco.objects.create( usuario=request.user, lagradouro=request.POST.get('endereco-cartao-lagradouro'), numero=int(request.POST.get('endereco-cartao-numero')), complemento=request.POST.get( 'endereco-cartao-complemento'), bairro=request.POST.get('endereco-cartao-bairro'), cep=request.POST.get('endereco-cartao-cep'), cidade=request.POST.get('endereco-cartao-cidade'), estado=request.POST.get('endereco-cartao-estado')) else: endereco_cartao = Endereco.objects.get( usuario=request.user, id=int(request.POST.get('endereco-cartao'))) pagseguro_api.set_creditcard_billing_address( **endereco_cartao.pagseguro_serialize()) pagseguro_data = pagseguro_api.checkout() doacao.pagamento.cartao = Checkout.objects.get( code=pagseguro_data.get('code')) doacao.pagamento.save(update_fields=['cartao']) return redirect( reverse('aniversario:doacao_realizada', kwargs={ 'slug_usuario': doacao.aniversario.usuario.slug, 'slug_missao': doacao.aniversario.missao.slug })) raise Http404()
def test_invalid_description(self): self.data['description'] = 'a' * 101 self.assertRaises(Exception, lambda: PagSeguroItem(**self.data))
def test_invalid_id(self): self.data['id'] = '0' * 101 self.assertRaises(Exception, lambda: PagSeguroItem(**self.data))
def test_invalid_quantity(self): self.data['quantity'] = 'ten' self.assertRaises(Exception, lambda: PagSeguroItem(**self.data))
def payment_card(request): api = PagSeguroApiTransparent() print '---- api' print api data = request.POST print '-----data' print data token_card = data['token'] hash_sender = data['hash'] # for product in data['items']: # item = PagSeguroItem(id=product['id'], description=product['description'], amount=product['amount'], # quantity=product['quantity']) item = PagSeguroItem(id='0001', description='Notebook Prata', amount='24300.00', quantity=1) api.add_item(item) sender = { 'name': 'Jose Comprador', 'area_code': 11, 'phone': 56273440, 'email': '*****@*****.**', 'cpf': '22111944785', } api.set_sender(**sender) shipping = { 'street': "Av. Brigadeiro Faria Lima", 'number': 1384, 'complement': '5o andar', 'district': 'Jardim Paulistano', 'postal_code': '01452002', 'city': 'Sao Paulo', 'state': 'SP', 'country': 'BRA', } api.set_shipping(**shipping) api.set_payment_method('creditcard') data_card = { 'quantity': 5, 'value': 125.22, 'name': 'Jose Comprador', 'birth_date': '27/10/1987', 'cpf': '22111944785', 'area_code': 11, 'phone': 56273440, } api.set_creditcard_data(**data_card) billing_address = { 'street': 'Av. Brig. Faria Lima', 'number': 1384, 'district': 'Jardim Paulistano', 'postal_code': '01452002', 'city': 'Sao Paulo', 'state': 'SP', 'country': 'BRA', } api.set_creditcard_billing_address(**billing_address) api.set_creditcard_token(token_card) api.set_sender_hash(hash_sender) data_checkout = api.checkout() print data_checkout return Response({"message": "payment", "data": data_checkout})
def sandbox(request): print("sandbox") c = request.GET.get('pk', None) qnt = request.GET.get('qnt_passagens', None) carrinho = get_object_or_404(Carrinho, pk=c) car = carrinho.total car = '{:.2f}'.format(car) pagseguro_api = PagSeguroApiTransparent() data = pagseguro_api.get_session_id() session_id = data['session_id'] if request.method == 'POST': print("post") bandeira = request.POST.get('brand') nome = request.POST.get('username') token = request.POST.get('token') hashPagseguro = request.POST.get('hash') api = PagSeguroApiTransparent() descricao = carrinho.viagem.destino item1 = PagSeguroItem(id=c, description=descricao, amount=car, quantity=1) api.add_item(item1) sender = { 'name': 'Jose Comprador', 'area_code': 92, 'phone': 56273440, 'email': '*****@*****.**', 'cpf': '22111944785', } api.set_sender(**sender) shipping = { 'street': "Av. Brigadeiro Faria Lima", 'number': 1384, 'complement': '5o andar', 'district': 'Jardim Paulistano', 'postal_code': '01452002', 'city': 'Sao Paulo', 'state': 'SP', 'country': 'BRA', } api.set_shipping(**shipping) api.set_payment_method('creditcard') data = { 'quantity': 1, 'value': car, 'name': 'Jose Comprador', 'birth_date': '27/10/1987', 'cpf': '22111944785', 'area_code': 11, 'phone': 56273440, 'no_interest_quantity': 5 } api.set_creditcard_data(**data) billing_address = { 'street': 'Av. Brig. Faria Lima', 'number': 1384, 'district': 'Jardim Paulistano', 'postal_code': '01452002', 'city': 'Sao Paulo', 'state': 'SP', 'country': 'BRA', } api.set_creditcard_billing_address(**billing_address) api.set_creditcard_token(token) api.set_sender_hash(hashPagseguro) data = api.checkout() print("data", data) if data['success'] is False: raise CheckoutException(data['message']) print(notificacao_recebida.connect(load_signal)) return HttpResponse(notificacao_recebida.connect(load_signal)) context = { 'session': session_id, 'cart': carrinho, 'qnt': qnt, } return render(request, 'dev_radioanori/sandbox-pagamento.html', context)
def sandbox_debito(request): if request.method == "POST": print("post/sandbox-debito") pk = request.POST.get('pk', None) carrinho = get_object_or_404(Carrinho, pk=pk) amount = carrinho.total amount = '{:.2f}'.format(amount) nome = request.POST.get('username') cpf = request.POST.get('cpf') brand = request.POST.get('brand_radio') hashPagseguro = request.POST.get('hash') qnt = carrinho.qnt_inteira + carrinho.qnt_meia descricao = "beiraonline " + carrinho.viagem.origem + "-" + carrinho.viagem.destino print('brand:', brand) print('nome:', nome) print('cpf', cpf) item1 = PagSeguroItem(id=pk, description=descricao, amount=amount, quantity=qnt) api = PagSeguroApiTransparent() api.add_item(item1) sender = { 'name': nome, 'area_code': 92, 'phone': 56273440, 'email': '*****@*****.**', 'cpf': '22111944785', } api.set_sender(**sender) shipping = { 'street': "Av. Brigadeiro Faria Lima", 'number': 1384, 'complement': '5o andar', 'district': 'Jardim Paulistano', 'postal_code': '01452002', 'city': 'Sao Paulo', 'state': 'SP', 'country': 'BRA', } api.set_shipping(**shipping) api.set_payment_method('eft') api.set_bank_name('itau') api.set_sender_hash(hashPagseguro) data = api.checkout() #print("data", data) if data['success'] is False: raise CheckoutException(data['message']) payment_url = data['transaction']['paymentLink'] return redirect(payment_url) return HttpResponse("deu certo")