def charge(request, amount): if request.method == 'POST': if amount == '0': return redirect('sales:checkout') u = User.objects.get(username=request.user) sale = Sale() #stripe charge success, instance = sale.charge(amount, request.POST['stripeToken'], u.email) if not success: print(instance) return HttpResponse("Error reading card.") else: try: billing = Billing.objects.get(user=u) except Billing.DoesNotExist: billing = Billing(user=u) billing.address = request.POST['args[billing_address_line1]'] billing.city = request.POST['args[billing_address_city]'] billing.state = request.POST['args[billing_address_state]'] billing.zipcode = request.POST['args[billing_address_zip]'] billing.country = request.POST['args[billing_address_country]'] billing.save() try: shipping = Shipping.objects.get(user=u) except Shipping.DoesNotExist: shipping = Shipping(user=u) shipping.address = request.POST['args[shipping_address_line1]'] shipping.city = request.POST['args[shipping_address_city]'] shipping.state = request.POST['args[shipping_address_state]'] shipping.zipcode = request.POST['args[shipping_address_zip]'] shipping.country = request.POST['args[shipping_address_country]'] shipping.save() sale.date = timezone.now() sale.amount = amount sale.user = u sale.save() request.session['sale_id'] = sale.id #Send Confirmation email. subject = "Master Faster Confirmation Email." message = "Thank you for shopping with Master Faster. \ Your payment successfully went through.\n\nConfirmation number: %s\n\n\ Shipping Address is:\n\n%s\n%s, %s\n%s %s\n\nBilling Address:\n\n%s\n%s, %s\n%s %s\n\n\ You will be receiving your receipt shortly.\n\n\ Please email us at %s to correct any order detail errors." % ( sale.charge_id, shipping.address, shipping.city, shipping.state, shipping.zipcode, shipping.country, billing.address, billing.city, billing.state, billing.zipcode, billing.country, settings.EMAIL_HOST_USER) from_email = settings.EMAIL_HOST_USER to_email = request.POST.get('emailAddress', '') send_email(subject, message, from_email, to_email) return HttpResponse('Successful Charge.') return HttpResponse("Invalid match.")