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)
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)
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)
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)
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})
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})
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)
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})
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})
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})
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})
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})