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