Beispiel #1
0
def buy_now(request, id):
    if request.method == 'POST':
        print(request.POST)
        form = MakePaymentForm(request.POST)
        if form.is_valid():
            try:
                product = get_object_or_404(Products, pk=id)
                customer = stripe.Charge.create(
                    amount= int(product.price * 100),
                    currency="EUR",
                    description=product.name,
                    card=form.cleaned_data['stripe_id'],
                )
            except (stripe.error.CardError, e):
                messages.error(request, "Your card was declined!")

            if customer.paid:
                messages.success(request, "You have successfully paid")
                return redirect(reverse('products'))
            else:
                messages.error(request, "Unable to take payment")
        else:
            messages.error(request, "We were unable to take a payment with that card!")

    else:
        form = MakePaymentForm()
        product = get_object_or_404(Products, pk=id)

    args = {'form': form, 'publishable': settings.STRIPE_PUBLISHABLE_KEY, 'product': product}
    args.update(csrf(request))

    return render(request, 'pay.html', args)
Beispiel #2
0
def buy_now(request, id):
    if request.method == 'POST':
        form = MakePaymentForm(request.POST)
        if form.is_valid():
            try:
                product = get_object_or_404(Product, pk=id)
                customer = stripe.Charge.create(
                    amount=int(product.price * 100),
                    currency="EUR",
                    description=product.name,
                    card=form.cleaned_data['stripe_id'],
                )
            except stripe.error.CardError, e:
                messages.error(request, "Your card was declined!")

            if customer.paid:
                messages.success(
                    request,
                    "Thanks! You have successfully paid, soon you'll receive an email from us."
                )
                return redirect(reverse('products'))
            else:
                messages.error(request, "Unable to take payment")
        else:
            messages.error(request,
                           "We were unable to take a payment with that card!")
Beispiel #3
0
def user_cart(request):
    cartItems = CartItem.objects.filter(user=request.user)
    total = 0
    for item in cartItems:
        total += item.product.price

    if request.method == 'POST':
        form = MakePaymentForm(request.POST)
        if form.is_valid():
            try:
                customer = stripe.Charge.create(
                    amount=int(total * 100),
                    currency="EUR",
                    description=request.user.email,
                    card=form.cleaned_data['stripe_id'],
                )
            except stripe.error.CardError, e:
                messages.error(request, "Your card was declined!")

            if customer.paid:
                messages.success(request, "You have successfully paid")
                CartItem.objects.filter(user=request.user).delete()
                return redirect(reverse('product_list'))
            else:
                messages.error(request, "Unable to take payment")
        else:
            messages.error(request, "We were unable to take a payment with that card!")
def user_cart(request):
    cartItems = CartItem.objects.filter(user=request.user)
    total = 0
    for item in cartItems:
        total += item.quantity * item.product.price

    if request.method == 'POST':
        form = MakePaymentForm(request.POST)
        if form.is_valid():
            try:
                customer = stripe.Charge.create(
                    amount=int(total * 100),
                    currency="EUR",
                    description=request.user.email,
                    card=form.cleaned_data['stripe_id'],
                )
            except (stripe.error.CardError, e):
                messages.error(request, "Your card was declined!")

            if customer.paid:
                messages.success(
                    request,
                    "You have successfully paid & will recieve your items within 5 working days!"
                )
                CartItem.objects.filter(user=request.user).delete()
                return redirect(reverse('products'))
            else:
                messages.error(request, "Unable to take payment")
        else:
            messages.error(request,
                           "We were unable to take a payment with that card!")
    else:
        if len(cartItems) == 0:
            return render(request, 'empty_cart.html')

        form = MakePaymentForm()

    args = {
        'form': form,
        'items': cartItems,
        'total': total,
        'publishable': settings.STRIPE_PUBLISHABLE_KEY
    }
    args.update(csrf(request))

    return render(request, 'cart.html', args)
Beispiel #5
0
def make_payment(request):
    if request.method == 'POST':
        form = MakePaymentForm(request.POST)
        if form.is_valid():
            try:
                customer = stripe.Charge.create(
                    amount=499,
                    currency="USD",
                    description='From Richard',
                    card=form.cleaned_data['stripe_id'],
                )
            except stripe.error.CardError, e:
                messages.error(request, "Your card was declined!")

            if customer.paid:
                messages.success(request, "You have successfully paid")
            else:
                messages.error(request, "Unable to take payment")
            messages.error(request, "We were unable to take a payment with that card!")
def user_cart(request):
    cartItems = CartItem.objects.filter(user=request.user)
    total = 0
    for item in cartItems:
        total += item.quantity * item.product.price

    if request.method == 'POST':
        form = MakePaymentForm(request.POST)
        if form.is_valid():
            try:
                customer = stripe.Charge.create(
                    amount=int(total * 100),
                    currency="EUR",
                    description=request.user.email,
                    card=form.cleaned_data['stripe_id'],
                )
            except (stripe.error.CardError, e):
                messages.error(request, "Your card was declined!")

            if customer.paid:
                messages.success(request, "You have successfully paid & will recieve your items within 5 working days!")
                CartItem.objects.filter(user=request.user).delete()
                return redirect(reverse('products'))
            else:
                messages.error(request, "Unable to take payment")
        else:
            messages.error(request, "We were unable to take a payment with that card!")
    else:
        if len(cartItems) == 0:
            return render(request, 'empty_cart.html')

        form = MakePaymentForm()

    args = {'form': form,
            'items': cartItems,
            'total': total,
            'publishable': settings.STRIPE_PUBLISHABLE_KEY}
    args.update(csrf(request))

    return render(request, 'cart.html', args)
Beispiel #7
0
def buy_now(request, id):
    if request.method == 'POST':
        form = MakePaymentForm(request.POST)
        if form.is_valid():
            try:
                advert = get_object_or_404(Advert, pk=id)
                customer = stripe.Charge.create(
                    amount= int(advert.daily_rental_rate * 100),
                    currency="EUR",
                    description=advert.item,
                    card=form.cleaned_data['stripe_id'],
                )
            except stripe.error.CardError, e:
                messages.error(request, "Your card was declined!")

            if customer.paid:
                messages.success(request, "You have successfully paid")
                return redirect(reverse('advertlist'))
            else:
                messages.error(request, "Unable to take payment")
        else:
            messages.error(request, "We were unable to take a payment with that card!")
Beispiel #8
0
def buy_now(request, id):
    if request.method == 'POST':
        form = MakePaymentForm(request.POST)
        if form.is_valid():
            try:
                advert = get_object_or_404(Advert, pk=id)
                customer = stripe.Charge.create(
                    amount= int(advert.daily_rental_rate * 100),
                    currency="EUR",
                    description=advert.item,
                    card=form.cleaned_data['stripe_id'],
                )
            except stripe.error.CardError, e:
                messages.error(request, "Your card was declined!")

            if customer.paid:
                messages.success(request, "You have successfully paid")
                return redirect(reverse('advertlist'))
            else:
                messages.error(request, "Unable to take payment")
        else:
            messages.error(request, "We were unable to take a payment with that card!")

    else:
        form = MakePaymentForm()
        advert = get_object_or_404(Advert, pk=id)

    args = {'form': form, 'publishable': settings.STRIPE_PUBLISHABLE, 'advert': advert}
    args.update(csrf(request))

    return render(request, 'pay.html', args)
Beispiel #9
0
            except stripe.error.CardError, e:
                messages.error(request, "Your card was declined!")

            if customer.paid:
                messages.success(request, "You have successfully paid")
                CartItem.objects.filter(user=request.user).delete()
                return redirect(reverse('index'))
            else:
                messages.error(request, "Unable to take payment")
        else:
            messages.error(request, "We were unable to take a payment with that card!")
    else:
        if len(cartItems) == 0: # if no. of item in the cart is 0. return empty cart httml
            return render(request, 'empty_cart.html')

        form = MakePaymentForm() # if we have something in the cart, we create the makepaymentform
    categories = Category.objects.filter(parent=None)
    args = {'form': form,
            'items': cartItems,
            'total': total,
            'publishable': settings.STRIPE_PUBLISHABLE,
            'categories': categories
            }
    args.update(csrf(request))# adding csrf token to the form

    return render(request, 'cart.html', args)


@login_required(login_url="/accounts/login")
def add_to_cart(request, id):
    product = get_object_or_404(Product, pk=id)
Beispiel #10
0
def make_payment(request):
    '''
    Allows users to make a donation for the chosen appeal
    '''
    appeal = Appeal.objects.get(id=request.GET.get('id'))
    previous = request.GET.get('next', '/')
    userprofile = UserProfile.objects.get(user=request.user)
    if request.method == "POST":
        order_form = OrderForm(request.POST)
        payment_form = MakePaymentForm(request.POST)
        if order_form.is_valid() and payment_form.is_valid():
            total = 0
            order = order_form.save(commit=False)
            total = order.amount
            try:
                customer = stripe.Charge.create(
                    amount=int(total * 100),
                    currency="GBP",
                    description=request.user.email,
                    card=payment_form.cleaned_data['stripe_id'])
            except stripe.error.CardError:
                messages.error(request, "Your card was declined!")
                return HttpResponseRedirect(previous)
            if customer.paid:
                order.user = request.user
                order.userprofile = userprofile
                order.appeal = Appeal.objects.get(id=request.GET.get('id'))
                order.org = Org.objects.get(id=appeal.org.id)
                order.created_date = timezone.now()
                order.successful = True
                order.save()
                appeal.money_raised += total
                appeal.save()
                messages.error(
                    request, "Congratulations, you have successfully donated!")
                return HttpResponseRedirect(previous)
            else:
                order.user = request.user
                order.appeal = Appeal.objects.get(id=request.GET.get('id'))
                order.org = Org.objects.get(id=appeal.org.id)
                order.created_date = timezone.now()
                order.successful = False
                order.save()
                messages.error(request, "Unable to take payment")
                return render(
                    request, "payment.html", {
                        "appeal": appeal,
                        "order_form": order_form,
                        "payment_form": payment_form,
                        "publishable": settings.STRIPE_PUB_KEY,
                        "previous": previous,
                        'userprofile': userprofile
                    })
        else:
            messages.error(request,
                           "We were unable to take a payment with that card!")
            return render(
                request, "payment.html", {
                    "appeal": appeal,
                    "order_form": order_form,
                    "payment_form": payment_form,
                    "publishable": settings.STRIPE_PUB_KEY,
                    "previous": previous,
                    'userprofile': userprofile
                })
    else:
        payment_form = MakePaymentForm()
        order_form = OrderForm()
        return render(
            request, "payment.html", {
                "appeal": appeal,
                "order_form": order_form,
                "payment_form": payment_form,
                "publishable": settings.STRIPE_PUB_KEY,
                "previous": previous,
                'userprofile': userprofile
            })