Esempio n. 1
0
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.")