Beispiel #1
0
def show_checkout(request, template_name):
    """ checkout form page to collect user shipping and billing information """
    if cart.is_empty(request):
        cart_url = reverse('cart:show_cart')
        return HttpResponseRedirect(cart_url)

    if request.method == 'POST':
        postdata = request.POST.copy()
        form = CheckoutForm(postdata)
        if form.is_valid():
            response = checkout.process(request)
            order_number = response.get('order_number', 0)
            error_message = response.get('message', '')
            if order_number:
                request.session['order_number'] = order_number
                receipt_url = reverse('checkout:checkout_receipt')
                return HttpResponseRedirect(receipt_url)
        else:
            error_message = 'Please correct the errors below'
    else:
        if request.user.is_authenticated():
            user_p = profile.retrieve(request)
            form = CheckoutForm(instance=user_p)
        else:
            form = CheckoutForm()
    page_title = 'Checkout'

    return render(request, template_name, locals(),
                  RequestContext(request, processors=[context_processors]))
Beispiel #2
0
def show_checkout(request, template_name='checkout/checkout.html'):
    page_title = 'Checkout'

    if cart.is_empty(request):
        cart_url = urlresolvers.reverse('cart:show_cart')
        return HttpResponseRedirect(cart_url)

    if request.method == 'POST':
        postdata = request.POST.copy()
        form = CheckoutForm(postdata)
        print "comm"
        if form.is_valid():
            print "formvalid"
            response = checkout.process(request)
            order_number = response.get('order_number', 0)
            error_message = response.get('message', '')

            if order_number:
                request.session['order_number'] = order_number
                receipt_url = urlresolvers.reverse('checkout:receipt')
                return HttpResponseRedirect(receipt_url)
    else:
        if request.user.is_authenticated():
            user_profile = profile.retrieve(request)
            form = CheckoutForm(instance=user_profile)
        else:
            form = CheckoutForm()

    context = {'page_title': page_title, 'form': form}
    return render(request, template_name, context)
Beispiel #3
0
def show_checkout(request, template_name="checkout/checkout.html"):
    if cart.is_empty(request):
        cart_url = reverse("cart:show_cart")
        return HttpResponseRedirect(cart_url)
    if request.method == "POST":
        postdata = request.POST.copy()
        form = CheckoutForm(postdata)
        if form.is_valid():
            response = checkout.process(request)
            order_number = response.get("order_number", 0)
            error_message = response.get("message", "")
            if order_number:
                request.session["order_number"] = order_number
                receipt_url = reverse("checkout:checkout_receipt")
                return HttpResponseRedirect(receipt_url)
        else:
            error_message = "Correct the errors below"
    else:
        if request.user.is_authenticated:
            user_profile = profile.retrieve(request)
            form = CheckoutForm(instance=user_profile)
        else:
            form = CheckoutForm()
    page_title = "Checkout"
    return render(request, template_name, locals())
Beispiel #4
0
def show_checkout(request , template_name = "checkout/checkout.html" ):
    if cart.is_empty(request):
        cart_url = urlresolvers.reverse('show_cart')
        return HttpResponseRedirect(cart_url)
    if request.method == 'POST':
        postdata = request.POST.copy()
        form = CheckoutForm(postdata)
        if form.is_valid():
            response = process1(request)
            order_number = response.get('order_number',0)
            if order_number:
                request.session['order_number'] = order_number
                receipt_url = urlresolvers.reverse('payment')
                return HttpResponseRedirect(receipt_url)
        else:
            error_message = 'Correct the errors below'
    else:
        if request.user.is_authenticated():
            user_profile = profile.retrieve(request)
            form = CheckoutForm(instance = user_profile)
        else:
            form = CheckoutForm()

    page_title = 'Checkout'
    return render_to_response(template_name , locals(),context_instance = RequestContext(request))
Beispiel #5
0
def show_checkout(request, template_name='checkout/checkout.html'):
    if cart.is_empty(request):
        cart_url = urlresolvers.reverse('show_cart')
        return HttpResponseRedirect(cart_url)
    if request.method == 'POST':
        postdata = request.POST.copy()
        form = CheckoutForm(postdata)
        if form.is_valid(): 
            response = checkout.process(request)
            if postdata.get('payment_method',False) == "credit_card":
                order_number = response.get('order_number',0)
                error_message = response.get('message','')   
                if order_number:
                    request.session['order_number'] = order_number
                    receipt_url = urlresolvers.reverse('checkout_receipt')
                    return HttpResponseRedirect(receipt_url)  
            if postdata.get('payment_method',False) == "paypal":
                if response:
                    order_number = response.get('order_number',0)
                    error_message = response.get('message','')   
                    request.session['order_number'] = order_number
                    approval_link = response.get('approval_link',False)
                    return HttpResponseRedirect(approval_link[0].get('href',"."))
                else:
                    pass
        else:
            error_message = 'Correct the errors below'
    else:
        if request.user.is_authenticated(): 
            user_profile = profile.retrieve(request)
            form = CheckoutForm(instance=user_profile)
        else:
            form = CheckoutForm()
    page_title = 'Checkout'
    return render_to_response(template_name, locals(), context_instance=RequestContext(request)) 
Beispiel #6
0
def show_checkout(request):
    if cart.is_empty(request):
        cart_url = urlresolvers.reverse('show_cart')
        return HttpResponseRedirect(cart_url)

    if request.method == 'POST':
        post_data = request.POST.copy()
        form = CheckoutForm(post_data)
        if form.is_valid():
            response = checkout.process(request)
            order_number = response.get('order_number', 0)
            error_message = response.get('message', '')
            if order_number:
                request.session['order_number'] = order_number
                receipt_url = urlresolvers.reverse('checkout_receipt')
                return HttpResponseRedirect(receipt_url)
            else:
                return HttpResponse(error_message)
        else:
            error_message = 'Corrige los errores abajo'
    else:
        # si la peticion es get, tratar de vincular el form con los datos del perfil del usuario
        if request.user.is_authenticated():
            user_profile = profile.get_profile(request)
            form = CheckoutForm(instance=user_profile, label_suffix="")
        else:
            form = CheckoutForm(label_suffix="")
    page_title = 'Checkout'
    small_text = u"Total en el carrito"
    big_text = "%.2fcuc" % OrderTotal.objects.get(
        id=request.session['ordertotalid']).total
    return render_to_response('checkout/checkout.html',
                              locals(),
                              context_instance=RequestContext(request))
Beispiel #7
0
def show_checkout(request):
    """ checkout form page to collect user shipping and billing information """
    if cart.is_empty(request):
        return redirect('show_cart')
    error_message = ''
    if request.method == 'POST':
        postdata = request.POST.copy()
        form = CheckoutForm(postdata)
        if form.is_valid():
            # If form is valid, pass along the request to the process checkout
            response = checkout.process(request)
            order_number = response.get('order_number', 0)
            error_message = response.get('message', '')
            if order_number:
                # If order number was valid, redirect user to the receipt page.
                # Store User's order number in the user's session for later use
                request.session['order_number'] = order_number
                return redirect('checkout_receipt')
        else:
            error_message = 'Correct the errors below'
    else:
        if request.user.is_authenticated:
            user_profile = profile.retrieve(request)
            form = CheckoutForm(instance=user_profile)
        else:
            form = CheckoutForm()
    page_title = 'Checkout'
    template_name = 'checkout/checkout.html'
    context = {
        'page_title': page_title,
        'form': form,
        'error_message': error_message
    }
    return render(request, template_name, context)
Beispiel #8
0
def show_checkout(request, template_name='checkout/checkout.djhtml'):
    if cart.is_empty(request):
        cart_url = urlresolvers.reverse('show_cart')
        return HttpResponseRedirect(cart_url)
    if request.method == 'POST':
        postdata = request.POST.copy()
        form = CheckoutForm(postdata)
        if form.is_valid():
            response = checkout.process(request)
            order_number = response.get('order_number', 0)
            error_message = response.get('message', '')
            if order_number:
                request.session['order_number'] = order_number
                receipt_url = urlresolvers.reverse('checkout_receipt')
                return HttpResponseRedirect(receipt_url)
        else:
            error_message = 'Correct the errors below'
    else:
        if request.user.is_authenticated():
            user_profile = profile.retrieve(request)
            form = CheckoutForm(instance=user_profile)
        else:
            form = CheckoutForm()
    page_title = 'Checkout'
    return render(request, template_name, locals())
Beispiel #9
0
def show_checkout(request, template_name='checkout/checkout.html'):
	page_title = 'Checkout'
	
	if cart.is_empty(request):
		cart_url = urlresolvers.reverse('cart:show_cart')
		return HttpResponseRedirect(cart_url)

	if request.method == 'POST':
		postdata = request.POST.copy()
		form = CheckoutForm(postdata)
		print "comm"
		if form.is_valid():
			print "formvalid"
			response = checkout.process(request)
			order_number = response.get('order_number',0)
			error_message = response.get('message','')

			if order_number :
				request.session['order_number'] = order_number
				receipt_url = urlresolvers.reverse('checkout:receipt')
				return HttpResponseRedirect(receipt_url)
	else:
		if request.user.is_authenticated():
			user_profile = profile.retrieve(request)
			form = CheckoutForm(instance=user_profile)
		else:
			form = CheckoutForm()
	
	context = {'page_title':page_title, 'form':form}
	return render(request,template_name, context)
Beispiel #10
0
def show_checkout(request, template_name="checkout/checkout.html"):
    if cart.is_empty(request):
        cart_url = urlresolvers.reverse('show_cart')
        return HttpResponseRedirect(cart_url)

    error_message = ''
    if request.method == 'POST':
        form = CheckoutForm(request.POST)
        if form.is_valid():
            response = checkout.process(request)
            order_number = response.get('order_number', 0)
            error_message = response.get('message', '')
            if order_number:
                request.session['order_number'] = order_number
                receipt_url = urlresolvers.reverse('checkout_receipt')
                return HttpResponseRedirect(receipt_url)
        else:
            error_message = 'Correct the errors below'
    else:
        if request.user.is_authenticated():
            user_profile = profile.retrieve(request)
            form = CheckoutForm(instance=user_profile)
        else:
            form = CheckoutForm()
    ctx_dict = {
        'error_message': error_message,
        'form': form,
        'page_title': 'Checkout',
    }
    return render_to_response(template_name, ctx_dict, context_instance=RequestContext(request))
Beispiel #11
0
def show_checkout(request,
                  checkout_type,
                  template_name="checkout/checkout.html"):
    print(request.GET.copy())
    # request1 = locals()
    # print(request1)
    print('ian')
    print(request)
    if cart.is_empty(request):
        cart_url = reverse('show_cart')
        return HttpResponseRedirect(cart_url)
    if request.method == 'POST' and request.POST.copy(
    )['submit'] == "Mpesa Payment":
        postdata = request.POST.copy()
        form = MpesaCheckoutForm(postdata)
        if form.is_valid():
            response = mpesa_processor.process(request)
            order_number = response.get('order_number', 0)
            error_message = response.get('message', '')
            if order_number:
                request.session['order_number'] = order_number
                receipt_url = reverse('checkout_receipt')
                CART_ID_SESSION_KEY = cart.CART_ID_SESSION_KEY
                pending = PendingMpesa.objects.filter(
                    cart=request.session[CART_ID_SESSION_KEY])
                pending.delete()
                return HttpResponseRedirect(receipt_url)
        else:
            error_message = "Correct the errors below"
    if request.method == 'POST' and request.POST.copy(
    )['submit'] == "Place Order":
        postdata = request.POST.copy()
        form = CheckoutForm(postdata)
        if form.is_valid():
            response = checkout.process(request)
            order_number = response.get('order_number', 0)
            error_message = response.get('message', '')
            if order_number:
                request.session['order_number'] = order_number
                receipt_url = reverse('checkout_receipt')
                return HttpResponseRedirect(receipt_url)
        else:
            error_message = 'Correct the errors below'
    else:
        if request.user.is_authenticated:
            user_profile = profile.retrieve(request)
            form = CheckoutForm(instance=user_profile)
        else:
            form = CheckoutForm()
    page_title = 'Checkout'
    if request.method == 'POST' and checkout_type == "Lipa":
        postdata = request.POST.copy()
        form = MpesaCheckoutForm(postdata)
    if request.GET and checkout_type == "Lipa":
        form = MpesaCheckoutForm()
    checkout_type = checkout_type
    return render(request, template_name, locals(), RequestContext(request))
Beispiel #12
0
def show_checkout(request):
    error_message = ''
    if cart.is_empty(request):
        cart_url = reverse('show_cart')
        return HttpResponseRedirect(cart_url)

    if request.method == 'POST':
        postdata = request.POST.copy()
        form = CheckoutForm(postdata)
        order_number = request.session.get('order_number', '')

        if form.is_valid():
            response = checkout.process(request)
            order_number = response.get('order_number', 0)
            error_message = response.get('message', '')
            if order_number:
                request.session['order_number'] = order_number
                receipt_url = reverse('checkout_receipt')
                return HttpResponseRedirect(receipt_url)
        else:
            error_message = 'Correct the errors below'
    else:
        if request.user.is_authenticated:
            user_profile = profile.retrieve(request)
            form = CheckoutForm(instance=user_profile)
        else:
            form = CheckoutForm()

    page_title = 'Checkout'
    total = cart.cart_subtotal(request)
    template = 'checkout/checkout.html'
    context = {
        'page_title': page_title,
        'error_message': error_message,
        'form': form,
        'total': total,
    }
    return render(request, template, context)
Beispiel #13
0
def show_checkout(request, template_name='checkout/checkout.html'):
    if cart.is_empty(request):
        cart_url = urlresolvers.reverse('show_cart')
        return HttpResponseRedirect(cart_url)
    if request.method == 'POST':
        postdata = request.POST.copy()
        form = CheckoutForm(postdata)
        if form.is_valid():
            response = checkout.process(request)
            if postdata.get('payment_method', False) == "credit_card":
                order_number = response.get('order_number', 0)
                error_message = response.get('message', '')
                if order_number:
                    request.session['order_number'] = order_number
                    receipt_url = urlresolvers.reverse('checkout_receipt')
                    return HttpResponseRedirect(receipt_url)
            if postdata.get('payment_method', False) == "paypal":
                if response:
                    order_number = response.get('order_number', 0)
                    error_message = response.get('message', '')
                    request.session['order_number'] = order_number
                    approval_link = response.get('approval_link', False)
                    return HttpResponseRedirect(approval_link[0].get(
                        'href', "."))
                else:
                    pass
        else:
            error_message = 'Correct the errors below'
    else:
        if request.user.is_authenticated():
            user_profile = profile.retrieve(request)
            form = CheckoutForm(instance=user_profile)
        else:
            form = CheckoutForm()
    page_title = 'Checkout'
    return render_to_response(template_name,
                              locals(),
                              context_instance=RequestContext(request))
Beispiel #14
0
def show_checkout(request,
                  checkout_type,
                  template_name="checkout/checkout.html"):
    # print(request.POST.copy())
    # request1 = locals()
    # print(request1)
    print('ian')
    print(request.method)
    error_message = ''
    if cart.is_empty(request):
        cart_url = reverse('show_cart')
        return HttpResponseRedirect(cart_url)
    if request.method == 'POST' and request.POST.copy()['payment'] == "Mpesa Payment" or request.method == 'POST' and\
            request.POST.copy()['phone2'] != '' and request.POST.copy()['credit_card_number'] == '' and\
            request.POST.copy()['credit_card_cvv'] == '':
        postdata = request.POST.copy()
        postdata['billing_name'] = postdata['shipping_name']
        postdata['billing_address_1'] = postdata['shipping_address_1']
        postdata['billing_address_2'] = postdata['shipping_address_2']
        postdata['billing_city'] = postdata['shipping_city']
        postdata['billing_zip'] = postdata['shipping_zip']
        postdata['billing_country'] = postdata['shipping_country']
        postdata['payment'] = postdata['payment']
        form = CheckoutForm(postdata)
        if form.is_valid():
            response = mpesa_processor.process(request)
            order_number = response.get('order_number', 0)
            error_message = response.get('message', '')
            if order_number:
                request.session['order_number'] = order_number
                receipt_url = reverse('checkout_receipt')
                CART_ID_SESSION_KEY = cart.CART_ID_SESSION_KEY
                pending = PendingMpesa.objects.filter(
                    cart=request.session[CART_ID_SESSION_KEY])
                if pending.count() == 1:
                    pending.delete()
                return HttpResponseRedirect(receipt_url)
        else:
            error_message = "Correct the errors below"
    if request.method == 'POST' and request.POST.copy()['payment'] == "Place Order" or request.method == 'POST' and\
            request.POST.copy()['credit_card_number'] != '' and request.POST.copy()['credit_card_cvv'] != '' and\
            request.POST.copy()['phone2'] == '':
        postdata = request.POST.copy()
        if 'billing' in request.POST.copy():
            if postdata['billing_name'] == '':
                error_message = 'Input billing name'
            if postdata['billing_address_1'] == '':
                error_message = 'Input billing address'
            if postdata['billing_city'] == '':
                error_message = 'Input billing city'
            if postdata['billing_zip'] == '':
                error_message = 'Input billing zip/postal code'
            if postdata['billing_country'] == '':
                error_message = 'Input billing country'
        if not 'billing' in request.POST.copy():
            postdata['billing_name'] = postdata['shipping_name']
            postdata['billing_address_1'] = postdata['shipping_address_1']
            postdata['billing_address_2'] = postdata['shipping_address_2']
            postdata['billing_city'] = postdata['shipping_city']
            postdata['billing_zip'] = postdata['shipping_zip']
            postdata['billing_country'] = postdata['shipping_country']
        form = CheckoutForm(postdata)
        # print(postdata)
        # print(form)
        # print("frm")
        if form.is_valid():
            response = checkout.process(request)
            order_number = response.get('order_number', 0)
            error_message = response.get('message', '')
            if order_number:
                request.session['order_number'] = order_number
                receipt_url = reverse('checkout_receipt')
                return HttpResponseRedirect(receipt_url)
        else:
            error_message = 'Correct the errors below'
    else:
        if request.user.is_authenticated:
            user_profile = profile.retrieve(request)
            form = CheckoutForm(instance=user_profile)
        else:
            form = CheckoutForm()
            """if request.method == 'GET' and checkout_type != 'Lipa' and checkout_type != 'PendingLipa':
                form = CheckoutForm(instance=user_profile)
            if request.method == 'POST' and checkout_type == "Lipa":
                postdata = request.POST.copy()
                form = MpesaCheckoutForm(postdata)
            if request.GET and checkout_type == "Lipa":
                form = MpesaCheckoutForm(instance=user_profile)
            if request.GET and checkout_type == "PendingLipa":
                form = MpesaCheckoutForm(instance=user_profile)"""

        if request.method == 'POST' and checkout_type == "Lipa":
            postdata = request.POST.copy()
            # print(postdata)
            form = CheckoutForm(postdata)
            # print(request.POST.copy()['payment'])
            if request.POST.copy()['payment'] == 'on' and postdata['phone2'] == '' and postdata['credit_card_number']\
                    == '' and postdata['credit_card_cvv'] == '':
                empty1 = 'Please select payment method'
                error_message = 'Correct the errors below'
            if request.POST.copy()['payment'] == 'on' and postdata['phone2'] != '' and postdata['credit_card_number']\
                    != '' or postdata['credit_card_cvv'] != '':
                empty1 = 'Please select payment method'
                error_message = 'Correct the errors below'
        if request.GET and checkout_type == "Lipa":
            form = CheckoutForm()
            """if request.method == 'POST' and checkout_type == "Lipa":
                postdata = request.POST.copy()
                form = MpesaCheckoutForm(postdata)
            if request.GET and checkout_type == "Lipa":
                form = MpesaCheckoutForm()
            if request.GET and checkout_type == "PendingLipa":
                form = MpesaCheckoutForm()"""
    page_title = 'Checkout'
    cart_items = cart.get_cart_items(request)
    cart_subtotal = cart.cart_subtotal(request)
    checkout_type = checkout_type
    return render(request, template_name, locals(), RequestContext(request))