Exemplo n.º 1
0
def api_checkout(request):
    cart = Cart(request)

    data = json.loads(request.body)
    jsonresponse = {"success": True}
    first_name = data["first_name"]
    last_name = data["last_name"]
    email = data["email"]
    address = data["address"]
    zipcode = data["zipcode"]
    place = data["place"]

    orderid = checkout(request, first_name, last_name, email, address, zipcode,
                       place)

    paid = True

    if paid == True:
        order = Order.objects.get(pk=orderid)
        order.paid = True
        order.paid_amount = cart.get_total_cost()
        order.save()

        cart.clear()

    return JsonResponse(jsonresponse)
Exemplo n.º 2
0
def api_checkout(request):

    cart = Cart(request)

    data = json.loads(request.body)
    jsonresponse = {'success': True}
    first_name = data['first_name']
    last_name = data['last_name']
    email = data['email']
    city = data['city']
    address = data['address']
    phone = data['phone']
    orderid = checkout(request, first_name, last_name, email, city, address,
                       phone)

    cod = True

    if cod:
        order = Order.objects.get(pk=orderid)
        order.cod = True
        order.amount_to_be_paid = cart.get_total_cost()
        order.save()
        html = render_to_string('core/email_confirmation.html')
        send_mail('Order Confirmation',
                  'Your order has been sent',
                  '*****@*****.**', ['*****@*****.**', order.email],
                  fail_silently=True,
                  html_message=html)
        cart.clear()

    return JsonResponse(jsonresponse)
Exemplo n.º 3
0
def api_checkout(request):
    cart = Cart(request)
    data = json.loads(request.body)
    jsonresponse = {'success': True}
    first_name = data['first_name']
    last_name = data['last_name']
    email = data['email']
    address = data['address']
    zipcode = data['zipcode']
    place = data['place']

    orderid = checkout(request, first_name, last_name, email, address, zipcode,
                       place)

    paid = True

    if paid == True:
        order = Order.objects.get(pk=orderid)
        order.paid = True
        order.paid_amount = cart.get_total_cost()
        order.save()

        cart.clear()

    return JsonResponse(jsonresponse)
Exemplo n.º 4
0
def api_checkout(request):
    cart = Cart(request)

    data = json.loads(request.body)
    json_response = {'success': True}
    first_name = data['first_name']
    last_name = data['last_name']
    email = data['email']
    address = data['address']
    zipcode = data['zipcode']
    city = data['city']
    country = data['country']

    orderid = checkout(request, first_name, last_name, email, address, zipcode,
                       city, country)

    paid = True  # Update payment if Stripe gets a response back

    if paid:
        order = Order.objects.get(pk=orderid)
        order.paid = True
        order.paid_amount = cart.get_total_cost()
        order.save()

        cart.clear()  # When order is complete and paid clear the cart

    return JsonResponse(json_response)
Exemplo n.º 5
0
def checkout(request):
    cart = Cart(request)
    total_cost = cart.get_total_cost()
    if request.method == "POST":
        form = CheckOutForm
        if form.is_valid():
            Cart(request).clear()
            return redirect('successpage')

    form = CheckOutForm
    return render(request, 'checkout.html', {'cost': total_cost, 'form': form})
Exemplo n.º 6
0
def create_checkout_session(request):
    cart = Cart(request)
    stripe.api_key = settings.STRIPE_API_KEY_HIDDEN

    items = []

    for item in cart:
        product = item['product']

        obj = {
            'price_data': {
                'currency': 'usd',
                'product_data': {
                    'name': product.title
                },
                'unit_amount': int(product.price * 100)
            },
            'quantity': item['quantity']
        }

        items.append(obj)
    session = stripe.checkout.Session.create(
        payment_method_types=['card'],
        line_items=items,
        mode='payment',
        success_url='http://127.0.0.1:8000/cart/success/',
        cancel_url='http://127.0.0.1:8000/cart/',
    )

    data = json.loads(request.body)
    first_name = data['first_name']
    last_name = data['last_name']
    email = data['email']
    address = data['address']
    zipcode = data['zipcode']
    place = data['place']
    phone = data['phone']
    payment_intent = session.payment_intent
    orderid = checkoutCreate(request, first_name, last_name, email, address,
                             zipcode, place, phone)

    order = Order.objects.get(pk=orderid)
    order.payment_intent = payment_intent
    order.paid = True
    order.paid_amount = cart.get_total_cost()

    order.save()

    print(items)

    return JsonResponse({'session': session})
Exemplo n.º 7
0
def api_checkout(request):
    cart = Cart(request)

    data = json.loads(request.body)
    jsonresponse = {'success': True}
    first_name = data['first_name']
    last_name = data['last_name']
    email = data['email']
    address = data['address']
    zipcode = data['zipcode']
    place = data['place']
    phone = data['phone']

    orderid = checkout(request, first_name, last_name, email, address, zipcode,
                       place, phone)

    paid = True

    order = Order.objects.get(pk=orderid)
    for item in order.items.all():
        product = item.product
        product.num_available = product.num_available - item.quantity
        product.save()

    #mail
    # html = render_to_string('order_confirmation.html', {'order': order})
    # send_mail('Order confirmation', 'Your order is successful!', '*****@*****.**', ['*****@*****.**', order.email], fail_silently=False, html_message=html)

    if paid == True:
        order = Order.objects.get(pk=orderid)
        order.paid = True
        order.paid_amount = cart.get_total_cost()
        order.save()

        cart.clear()
        send_order_confirmation(order)

    return JsonResponse(jsonresponse)
Exemplo n.º 8
0
def create_checkout_session(request):
    data = json.loads(request.body)

    # Coupon

    coupon_code = data['coupon_code']
    coupon_value = 0

    if coupon_code != '':
        coupon = get_object_or_404(Coupon, code=coupon_code)

        if coupon.can_use():
            coupon_value = coupon.value
            coupon.use()

    #
    cart = Cart(request)

    stripe.api_key = settings.STRIPE_API_KEY_HIDDEN

    items = []

    for item in cart:
        product = item['product']

        price = int(product.price * 100)

        if coupon_value > 0:
            price = int(price * (int(coupon_value) / 100))

        obj = {
            'price_data': {
                'currency': 'usd',
                'product_data': {
                    'name': product.title
                },
                'unit_amount': price
            },
            'quantity': item['quantity']
        }

        items.append(obj)

    session = stripe.checkout.Session.create(
        payment_method_types=['card'],
        line_items=items,
        mode='payment',
        success_url='http://127.0.0.1:8000/cart/success/',
        cancel_url='http://127.0.0.1:8000/cart/')

    #
    #Create Order

    first_name = data['first_name']
    last_name = data['last_name']
    email = data['email']
    address = data['address']
    zipcode = data['zipcode']
    place = data['place']
    phone = data['phone']
    payment_intent = session.payment_intent

    orderid = checkout(request, first_name, last_name, email, address, zipcode,
                       place, phone)

    total_price = 0.00
    for item in cart:
        product = item['product']
        total_price = total_price + (float(product.price) *
                                     int(item['quantity']))

    if coupon_value > 0:
        total_price = total_price * (coupon_value / 100)

    order = Order.objects.get(pk=orderid)
    order.payment_intent = payment_intent
    order.paid_amount = cart.get_total_cost()
    order.used_coupon = coupon_code
    order.save()

    #

    return JsonResponse({'session': session})