def checkout_pg(sender, shipping, cart): pagseguro = PagSeguro(email=app.config['EMAIL'], token=app.config['TOKEN']) pagseguro.sender = sender shipping['type'] = pagseguro.SEDEX pagseguro.shipping = shipping pagseguro.extra_amount = "%.2f" % float(app.config['EXTRA_AMOUNT']) pagseguro.redirect_url = app.config['REDIRECT_URL'] pagseguro.notification_url = app.config['NOTIFICATION_URL'] pagseguro.items = cart.items for item in cart.items: item['amount'] = "%.2f" % float(app.config['EXTRA_AMOUNT']) return pagseguro
def checkout_pg(sender, shipping, cart): pg = PagSeguro(email=app.config['EMAIL'], token=app.config['TOKEN']) pg.sender = sender shipping['type'] = pg.SEDEX pg.shipping = shipping pg.extra_amount = "%.2f" % float(app.config['EXTRA_AMOUNT']) pg.redirect_url = app.config['REDIRECT_URL'] pg.notification_url = app.config['NOTIFICATION_URL'] pg.items = cart.items for item in cart.items: item['amount'] = "%.2f" % float(app.config['EXTRA_AMOUNT']) return pg
def make_pg(): pg = PagSeguro(email="*****@*****.**", token="ABCDEFGHIJKLMNO") pg.sender = { "name": "Bruno Rocha", "area_code": 11, "phone": 981001213, "email": "*****@*****.**", } pg.shipping = { "type": pg.SEDEX, "street": "Av Brig Faria Lima", "number": 1234, "complement": "5 andar", "district": "Jardim Paulistano", "postal_code": "06650030", "city": "Sao Paulo", "state": "SP", "country": "BRA" } pg.extra_amount = 12.70 pg.redirect_url = "http://meusite.com/obrigado" pg.notification_url = "http://meusite.com/notification" return pg
def paymentValidation(order_id): config = {'sandbox': True, 'USE_SHIPPING': False} pg = PagSeguro(email="*****@*****.**", token="ABCDEFGHIJKLMNO", config=config) pg.sender = { "name": current_user.name + current_user.surname, "area_code": current_user.phone[:2], "phone": current_user.phone[2:], "email": current_user.email, } pg.reference = order_id pg.extra_amount = 0 order = Order.query.filter_by(id=order_id).first() itens = order.itens for item in itens: product = Product.query.filter_by(id=item.id) pg.items.append( { "id": product.id, "description": product.desc, "amount": product.price, "quantity": item.quantity, "weight": None }, ) pg.redirect_url = url_for('views.thanks') return
def payment_post(): if request.method == 'POST': config = { 'sandbox': True, 'CURRENCY': 'BRL', 'USE_SHIPPING': 'false', } pg = PagSeguro(email="*****@*****.**", token="6B1E3EF957F84EF4913EFDA3B76D6D84", config=config) pg.sender = { "name": current_user.name + ' ' + current_user.surname, "area_code": current_user.phone[:2], "phone": current_user.phone[2:], "email": current_user.email, } orders = session['orders'] street = session['street'] number = session['number'] district = session['district'] city = session['city'] cep = session['cep'] complement = session['complement'] pg.shipping = { "type": pg.SEDEX, "street": street, "number": number, "complement": complement, "district": district, "postal_code": cep, "city": city, "state": "CE", "country": "BRA" } new_order = Order(client_id=current_user.id, street=street, address_number=number, district=district, city=city, cep=cep, complement=complement, price=session['subtotal']) db.session.add(new_order) db.session.flush() pg.reference = new_order.id pg.extra_amount = 0 itens = [] # É possivel adicionar um record ao db usando uma lista ao invés de instanciar um objeto como feito anteriormente for product, quantity in orders.items( ): # cria uma lista de dicionários, dicionários esses que representam um objeto da tabela item = {} item['quantity'] = quantity item['product_id'] = Product.query.filter_by( title=product).first().id item['order_id'] = new_order.id itens.append(item) for item in itens: #Passa pela lista de dicionarios e adiciona cada um ao banco de dados new_order_item = ItemOrder(**item) db.session.add(new_order_item) product = Product.query.filter_by(id=item['product_id']).first() pg.items.append( { "id": product.id, "description": product.desc, "amount": "{:.2f}".format(product.price), "quantity": item['quantity'], "weight": None }, ) pg.notification_url = request.url_root + "/notificacao" pg.redirect_url = request.url_root response = pg.checkout() new_response = PagSeguroResponse(code=response.code, date=response.date, payment_url=response.payment_url, errors=response.errors, order_id=new_order.id) db.session.add(new_response) db.session.commit() return redirect(response.payment_url)