Ejemplo 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)
Ejemplo 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)
Ejemplo 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)
Ejemplo 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)
Ejemplo n.º 5
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://localhost:8000/cart/success/",
        cancel_url="http://localhost:8000/cart/",
    )

    #

    # Create order

    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"]
    payment_intent = session.payment_intent

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

    order = Order.objects.get(pk=orderid)
    order.payment_intent = payment_intent
    order.save()

    #
    return JsonResponse({"session": session})
Ejemplo 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': 'twd',
                'product_data': {
                    'name': product.title
                },
                'unit_amount': int(product.price * 1)
            },
            '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

    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']
    payment_intent = session.payment_intent

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

    order = Order.objects.get(pk=orderid)
    order.payment_intent = payment_intent
    order.save()

    return JsonResponse({'session': session})
Ejemplo 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)
Ejemplo 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 = Coupon.objects.get(code=coupon_code)

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

    #

    cart = Cart(request)
    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)

    gateway = data['gateway']
    session = ''
    order_id = ''
    payment_intent = ''
    
    if gateway == 'stripe':
        stripe.api_key = settings.STRIPE_API_KEY_HIDDEN
        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/'
        )
        payment_intent = session.payment_intent

    #
    # Create order

    orderid = checkout(request, data['first_name'], data['last_name'], data['email'], data['address'], data['zipcode'], data['place'], data['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)
    
    if gateway == 'razorpay':
        order_amount = total_price * 100
        order_currency = 'INR'
        client = razorpay.Client(auth=(settings.RAZORPAY_API_KEY_PUBLISHABLE, settings.RAZORPAY_API_KEY_HIDDEN))
        data = {
            'amount': order_amount,
            'currency': order_currency
        }

        payment_intent = client.order.create(data=data)
    
    # PayPal

    if gateway == 'paypal':
        order_id = data['order_id']
        environment = SandboxEnvironment(client_id=settings.PAYPAL_API_KEY_PUBLISHABLE, client_secret=settings.PAYPAL_API_KEY_HIDDEN)
        client = PayPalHttpClient(environment)

        request = OrdersCaptureRequest(order_id)
        response = client.execute(request)

        order = Order.objects.get(pk=orderid)
        order.paid_amount = total_price
        order.used_coupon = coupon_code

        if response.result.status == 'COMPLETED':
            order.paid = True
            order.payment_intent = order_id
            order.save()

            decrement_product_quantity(order)
            send_order_confirmation(order)
        else:
            order.paid = False
            order.save()
    else:
        order = Order.objects.get(pk=orderid)
        if gateway == 'razorpay':
            order.payment_intent = payment_intent['id']
        else:
            order.payment_intent = payment_intent
        order.paid_amount = total_price
        order.used_coupon = coupon_code
        order.save()

    #

    return JsonResponse({'session': session, 'order': payment_intent})
Ejemplo n.º 9
0
def create_checkout_session(request):

    data = json.loads(request.body)

    # Coupon
    coupon_code = data['coupon_code']
    coupon_value = 0

    if coupon_code != '':
        coupon = Coupon.objects.get(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']
    payment_intent = session.payment_intent

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

    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 = True
    order.paid_amount = total_price
    order.used_coupon = coupon_code

    order.save()
    #
    return JsonResponse({'session': session})
Ejemplo n.º 10
0
def create_checkout_session(request):
    data = json.loads(request.body)

    # Coupon

    coupon_code = data['coupon_code']
    coupon_value = 0

    if coupon_code != '':
        coupon = Coupon.objects.get(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': 'ngn',
                'product_data': {
                    'name': product.title
                },
                'unit_amount': price
            },
            'quantity': item['quantity']
        }

        items.append(obj)

    gateway = data['gateway']
    session = ''
    order_id = ''

    if gateway == 'stripe':
        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/')
        payment_intent = session.payment_intent

    #
    # Create order

    first_name = data['first_name']
    last_name = data['last_name']
    email = data['email']
    address = data['address']
    zipcode = data['zipcode']
    state = data['state']
    phone = data['phone']

    orderid = checkout(request, first_name, last_name, email, address, zipcode,
                       state, 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)

    if gateway == 'razorpay':
        order_amount = total_price * 100
        order_currency = 'NGN'
        client = razorpay.Client(auth=(settings.RAZORPAY_API_KEY_PUBLISHABLE,
                                       settings.RAZORPAY_API_KEY_HIDDEN))
        data = {'amount': order_amount, 'currency': order_currency}

        payment_intent = client.order.create(data=data)

    order = Order.objects.get(pk=orderid)
    order.paid_amount = total_price
    order.used_coupon = coupon_code
    order.save()

    #

    return JsonResponse({'session': session})
Ejemplo n.º 11
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']

        price = int(
            product.price * 100
        )  # Stripe does the conversion in cents so we need to multiple by 100

        obj = {
            'price_data': {
                'currency': 'eur',
                'product_data': {
                    'name': product.title
                },
                'unit_amount':
                price  # Cents not dollars! Stripe does conversion (Stripe docs)
            },
            'quantity': item['quantity']
        }
        items.append(obj)

    session = stripe.checkout.Session.create(
        payment_method_types=['card'],
        line_items=items,
        mode='payment',
        success_url=
        'http://localhost:8000/cart/success/',  # Change these in production otherwise user gets a 404
        cancel_url=
        'http://localhost:8000/cart/'  # Change these in production otherwise user gets a 404
    )
    """ Create Order Block Start """

    data = json.loads(request.body)
    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']
    payment_intent = session.payment_intent

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

    total_price = 0.00  # Might add VAT here later

    # Loop through each product and update total price
    for item in cart:
        product = item['product']
        total_price += (float(product.price) * int(item['quantity'])
                        )  # Add total price to admin page data

    order = Order.objects.get(pk=orderid)
    order.payment_intent = payment_intent
    order.paid_amount = total_price
    order.save()
    """ Create Order Block End """

    return JsonResponse({'session': session})
Ejemplo n.º 12
0
def api_create_checkout_session(request):
    data = json.loads(request.body)

    #Coupon stuff
    coupon_code = data['coupon_code']
    coupon_value = 0

    if coupon_code:
        coupon = Coupon.objects.get(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 = price * int(coupon_value) / 100

        obj = {
            'price_data': {
                'currency': 'usd',
                'product_data': {
                    'name': product.title
                },
                #need to convert unit amount to 'cents' before sending it to stripe
                'unit_amount': int(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
    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']
    payment_intent = session.payment_intent

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

    #because 'cart.get_total_price()' was not working
    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 * int(coupon_value / 100)

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

    return JsonResponse({'id': session.id})