Esempio n. 1
0
def product_detail(request, slug):
    '''
    It is a smaple funcation that could be used to send only one item to
    Paypal. it will send the information of the select  product to be paied
    in Paypal.
    '''
    product = get_object_or_404(Product, pk=slug)
    paypal = {
        'amount': product.price,
        'item_name': product.name,
        'item_number': product.slug,
        
        # PayPal wants a unique invoice ID
        'invoice': str(uuid.uuid1()), 
        
        # It'll be a good idea to setup a SITE_DOMAIN inside settings
        # so you don't need to hardcode these values.
        'return_url': settings.SITE_DOMAIN + 'return_url', #reverse('return_url'),
        'cancel_return': settings.SITE_DOMAIN + 'cancel_url', #reverse('cancel_url'),
    }
    form = PayPalPaymentsForm(initial=paypal)
    if settings.DEBUG:
        rendered_form = form.sandbox()
    else:
        rendered_form = form.render()
    return render_to_response('products/product_detail.html', {
        'product' : product,
        'form' : rendered_form,
    }, RequestContext(request))
Esempio n. 2
0
def paypal_form(order):
    #res = {}
    paypal = {
        'business': settings.PAYPAL_RECEIVER_EMAIL,
        'amount': order.total(),
        'item_name': settings.PAYPAL_SUBJECT_LINE,
        #'item_number': 1,
        #'quantity':1,
        # PayPal wants a unique invoice ID
        'invoice': order.uid,
        # It'll be a good idea to setup a SITE_DOMAIN inside settings
        # so you don't need to hardcode these values.
        'currency_code': 'EUR',
        'lc': 'es_ES',
        #'notify_url': settings.SITE_DOMAIN + "/tienda/checkout/paypal/ipn",
        'notify_url': settings.SITE_DOMAIN + reverse('paypal-ipn'),
        'return_url': settings.SITE_DOMAIN + reverse('return_url'),
        'cancel_return': settings.SITE_DOMAIN + reverse('cancel_url'),
    }
    form = PayPalPaymentsForm(initial=paypal)
    if settings.DEBUG:
        rendered_form = form.sandbox()
    else:
        rendered_form = form.render()
    return rendered_form
Esempio n. 3
0
def purchase_item(request):
	if request.method == "POST":
		item_purchase = int(request.POST['item'])
		_item = get_object_or_404(item, id=item_purchase)
		if _item.user == request.user:
			ctx = {'title':'This item belongs to you.','message':'This item belongs to you, you can not buy'}
			return render_to_response('message/message.html',ctx,context_instance=RequestContext(request))
		frmPurchase = purchases(item=_item,user=request.user)
		frmPurchase.save()
		paypal = {
		'amount':frmPurchase.item.price,
		'item_name': frmPurchase.item.title,
		'item_number': frmPurchase.item.id,
		# PayPal wants a unique invoice ID
		'invoice': str(uuid.uuid1()),
		# It'll be a good idea to setup a SITE_DOMAIN inside settings
		# so you don't need to hardcode these values.
		'return_url': settings.SITE_DOMAIN + reverse('return_url'),
		'cancel_return': settings.SITE_DOMAIN + reverse('cancel_url'),
		}
		form = PayPalPaymentsForm(initial=paypal)
		if settings.DEBUG:
			rendered_form = form.sandbox()
		else:
			rendered_form = form.render()
		ctx = {'item' : _item,'form' : rendered_form,}
		return render_to_response('store/purchase_thanks.html',ctx,context_instance=RequestContext(request))
	else:
		return HttpResponseRedirect('/store/')
Esempio n. 4
0
def pay_item(request,idItem):
	idIt = idItem
	_item 	= get_object_or_404(item,id=idIt)
	_purch	= get_object_or_404(purchases,item=_item)
	if _purch.user == request.user:
		paypal = {
		'amount':_purch.item.price,
		'item_name': _purch.item.title,
		'item_number': _purch.item.id,
		# PayPal wants a unique invoice ID
		'invoice': str(uuid.uuid1()),
		# It'll be a good idea to setup a SITE_DOMAIN inside settings
		# so you don't need to hardcode these values.
		'return_url': settings.SITE_DOMAIN + reverse('return_url'),
		'cancel_return': settings.SITE_DOMAIN + reverse('cancel_url'),
		}
		form = PayPalPaymentsForm(initial=paypal)
		if settings.DEBUG:
			rendered_form = form.sandbox()
		else:
			rendered_form = form.render()
		ctx = {'item' : _item,'form' : rendered_form,}
		return render_to_response('store/purchase_thanks.html',ctx,context_instance=RequestContext(request))
	else:
		return HttpResponseRedirect('/profile/purchased/images/')
def scientist_research_payment_paypal(request, research_id, template='scientist/research_payment_paypal.html',
                                      extra_context=None):
    research = get_object_or_404(Research, id=research_id, scientistresearch__scientist=request.user)

    # What you want the button to do.
    paypal_dict = {
        'business': settings.PAYPAL_RECEIVER_EMAIL,
        'amount': research.total_credit - request.user.userprofile.available_balance,
        'item_name': research.name,
        'invoice': '%s-%d' % (research.name, research.id),
        'notify_url': '%s%s' % (settings.SITE_NAME, reverse_lazy('paypal-ipn')),
        'return_url': '%s%s' % (settings.SITE_NAME, reverse_lazy('research_paypal_complete', args=[research.id, ])),
        'cancel_return': 'http://www.example.com/your-cancel-location/',
        'custom': research.id,
    }

    # Create the instance.
    form = PayPalPaymentsForm(initial=paypal_dict)
    if settings.PAYPAL_API_ENVIRONMENT == 'SANDBOX':
        paypal_form = form.sandbox()
    else:
        paypal_form = form.render()

    context = {
        'form': paypal_form,
        'research': research,
    }

    if extra_context:
        context.update(extra_context)
    return render_to_response(template, context, context_instance=RequestContext(request))
Esempio n. 6
0
def paypal_form(order):
    # res = {}
    paypal = {
        "business": settings.PAYPAL_RECEIVER_EMAIL,
        "amount": order.total(),
        "item_name": settings.PAYPAL_SUBJECT_LINE,
        #'item_number': 1,
        #'quantity':1,
        # PayPal wants a unique invoice ID
        "invoice": order.uid,
        # It'll be a good idea to setup a SITE_DOMAIN inside settings
        # so you don't need to hardcode these values.
        "currency_code": "EUR",
        "lc": "es_ES",
        #'notify_url': settings.SITE_DOMAIN + "/tienda/checkout/paypal/ipn",
        "notify_url": settings.SITE_DOMAIN + reverse("paypal-ipn"),
        "return_url": settings.SITE_DOMAIN + reverse("return_url"),
        "cancel_return": settings.SITE_DOMAIN + reverse("cancel_url"),
    }
    form = PayPalPaymentsForm(initial=paypal)
    if settings.DEBUG:
        rendered_form = form.sandbox()
    else:
        rendered_form = form.render()
    return rendered_form
Esempio n. 7
0
def ServicesPayment(request, serviceId, csrf, payStatus, date_created):

    import datetime
    import time

    service = Service.objects.all().get(id=int(serviceId))
    user = request.user
    if date_created == "0":
        date_created = str(time.time())
    invoice_number = date_created + '-service-' + str(serviceId) + "-" \
                     + str(user.id)

    paypal_dict = {
        "business": settings.PAYPAL_RECEIVER_EMAIL,
        "amount": service.service_cost,
        "item_name": service.name,
        "invoice": invoice_number,
        "notify_url": "%s%s" % (settings.SITE_NAME, reverse('paypal-ipn')),
        "return_url": settings.SITE_NAME + "/paypal/payment/service/"
                      + serviceId + "/1/" + csrf + "/" + date_created + "/",
        "cancel_return": settings.SITE_NAME + "/paypal/payment/service/"
                         + serviceId + "/0/" + csrf + "/" + date_created + "/",
    }

    if payStatus == "2":
        if len(Invoice.objects.all().filter(number=invoice_number)) > 0:
            payStatus = "3"
        else:
            dateTime = datetime.datetime.\
                fromtimestamp(float(date_created)/1000)
            i = Invoice.objects.create(date_created=dateTime, service=service,
                                       buyer=user, amount=1, is_paid=False,
                                       number=invoice_number)
            i.save()
    if payStatus == "1":
        if len(Invoice.objects.all().filter(number=invoice_number)) == 0:
            payStatus = "3"
        else:
            i = Invoice.objects.all().get(number=invoice_number)
            i.is_paid = True
            i.save()
    if payStatus == "0":
        if len(Invoice.objects.all().filter(number=invoice_number)) == 0:
            payStatus = "3"
        else:
            i = Invoice.objects.all().get(number=invoice_number)
            i.is_paid = False
            i.save()

    form = PayPalPaymentsForm(initial=paypal_dict)
    context = {"form": form.sandbox(), "service": service,
               "payStatus": payStatus, "invoice_number": invoice_number,
               "date_created": date_created, "serviceId": serviceId, }

    return render_with_user(request, "paypal/payment.html", context)
Esempio n. 8
0
 def render_page(request, order, selectdiscountform=None, claimdiscountform=None, dropforms=None):
     context = {}
     if float(order.get_full_price()) < 0.01: # Free service. Don't show discount forms. Clear coupons so they are not wasted.
         context['show_discounts'] = False
         order.reset_discount_claims()
         order.save()
     else:
         context['show_discounts'] = True
         # Define forms for managing discounts on order
         if not dropforms:
             dropforms = [];
             for claim in order.get_discount_claims():
                 dropforms.append({
                         'label': claim.discount.display_text, 
                         'form': coupons.forms.RemoveDiscountForm(initial={u'discount': claim.pk})
                         })
         context['dropforms'] = dropforms
         if not selectdiscountform:
             available_claims = order.get_unused_discount_claims()
             if available_claims:
                 selectdiscountform = coupons.forms.SelectDiscountForm(request.user, available_claims=available_claims)
             else:
                 selectdiscountform = None
         context['selectdiscountform'] = selectdiscountform
         if not claimdiscountform:
             claimdiscountform = coupons.forms.ClaimOrSelectDiscountForm(request.user)
         context['claimdiscountform'] = claimdiscountform
     # Define invoice data
     invoice = order.calculate_price()
     order.save()
     context['invoice'] = invoice
     if float(order.get_amount_to_pay()) < 0.01: # No payment due. Free service or 100% covered with discounts
         context['paid_service'] = False
         return render_to_response("order/submit_payment.html", RequestContext(request, context))
     else:
         context['paid_service'] = True
         # paypal button
         paypal_dict = {
             "business": settings.PAYPAL_RECEIVER_EMAIL,
             "amount": invoice['amount_due'],
             "item_name": order.get_service_description(),
             "invoice": order.invoice_id,
             "notify_url": "%s%s" % (settings.ROOT_URL, reverse('paypal-ipn')),
             "return_url": "%s%s" % (settings.ROOT_URL, 'paymentreceived/'),
             "cancel_return": "%s%s" % (settings.ROOT_URL, 'paymentcanceled/'),
             }
         form = PayPalPaymentsForm(initial=paypal_dict)
         if settings.RACK_ENV=='production':
             context["pay_button"] = form.render()
         else:
             context["pay_button"] = form.sandbox()
         context["pay_button_message"] = mark_safe(_('Clicking the "Buy Now" button will submit your order and take you away from this site.')+'<br/>'+_('Please complete your secure payment with PayPal.'))
         return render_to_response("order/submit_payment.html", RequestContext(request, context))
Esempio n. 9
0
def paypal(request):
# What you want the button to do.
    paypal_dict = {
    "business": settings.PAYPAL_RECEIVER_EMAIL,
    "amount": "1.00",
    "item_name": "name of the item",
    "invoice": "unique-invoice-id",
    "notify_url": "%s%s" % (settings.SITE_NAME, reverse('paypal-ipn')),
    "return_url": "http://www.example.com/your-return-location/",
    "cancel_return": "http://www.example.com/your-cancel-location/",}
# Create the instance.
    form = PayPalPaymentsForm(initial=paypal_dict)
    context = {"form": form.sandbox()}
    return render_to_response("paypal.html", context)
Esempio n. 10
0
def view_ask_money_ipn(request):
	# What you want the button to do.
	paypal_dict = {
			"business":settings.PAYPAL_RECEIVER_EMAIL,
			"amount":"0.01",
			"item_name":"Ttagit Pro Account",
			"invoice":"unique-invoice-id",
			"notify_url":"http://dev.ttagit.com/paypal-ipn",
			"return_url":"http://dev.ttagit.com/paypal/pdt/",
			"cancel_return":"",
	}

	form = PayPalPaymentsForm(initial=paypal_dict)
	context = {"form":form.sandbox()}
	return render_to_response("payment.html", context)
Esempio n. 11
0
def view_that_asks_for_money(request):

    # What you want the button to do.
    paypal_dict = {
        "business": settings.PAYPAL_RECEIVER_EMAIL,
        "amount": "1.00",
        "item_name": "name of the item",
        "invoice": "unique-invoice-id",
        "notify_url": "%s%s" % (settings.SITE_NAME, reverse('paypal-ipn')),
        "return_url": "http://0.0.0.0:8008/hello/",
        "cancel_return": "http://0.0.0.0:8008/hello/",
    }

    # Create the instance.
    form = PayPalPaymentsForm(initial=paypal_dict)
    context = {"form": form.sandbox(), "productID": request.POST["productID"]}
    return render_with_user(request, "paypal/payment.html", context)
Esempio n. 12
0
 def get_context_data(self, **kwargs):
     context = super(MerchDetailView, self).get_context_data(**kwargs)
     merch = context['merch']
     paypal = {
         'amount': merch.price,
         'item_name': merch.title,
         'item_number': merch.slug,
         'currency_code': 'GBP',
         
         # PayPal wants a unique invoice ID
         'invoice': str(uuid.uuid4()),
         
         'return_url': '/merch/thanks',
         'cancel_return': merch.get_absolute_url(),
     }
     form = PayPalPaymentsForm(initial=paypal)
     context['form'] = form.sandbox() if settings.DEBUG else form.render()
     return context
Esempio n. 13
0
def paypal_standard(request):
    ipn_url = 'http://%s%s' % (Site.objects.get_current().domain, reverse("paypal-ipn"))
    pdt_url = 'http://%s%s' % (Site.objects.get_current().domain, reverse("paypal-pdt"))
    return_url = pdt_url if config.PDT else ipn_url

    data = {
        "amount": "1.00",
        "item_name": "Samsung Galaxy S3",
        "invoice": "INVOICE001",
        "notify_url": ipn_url,
        "return_url": return_url,
    }

    form = PayPalPaymentsForm(initial=data)
    data['form'] = form.sandbox() if config.DEBUG else form.render()

    return render_to_response("payment/paypal/standard.html", data,
           context_instance=RequestContext(request))
Esempio n. 14
0
def paypal(request, publisher_id, product_id):

# What you want the button to do.
    productchoice = Product.objects.get(id=product_id)
    publisher = Publisher.objects.get(id=publisher_id)
    paypal_dict = {
"business": settings.PAYPAL_RECEIVER_EMAIL,
"amount": "%.2f" % productchoice.product_cost,
"item_name": "%s" % productchoice.product_type,
"invoice": "unique-invoice-id",
"notify_url": "%s%s" % (settings.SITE_NAME, reverse('paypal-ipn')),
"return_url": "http://www.example.com/your-return-location/",
"cancel_return": "http://www.example.com/your-cancel-location/",
}
# Create the instance.
    
    form = PayPalPaymentsForm(initial=paypal_dict)
    context = {"form": form.sandbox(), "productchoice": productchoice}
    return render_to_response("signup/paypal.html", context)
Esempio n. 15
0
def try_paypal(request):
    paypal_dict = {
        "business": settings.PAYPAL_RECEIVER_EMAIL,
        "amount": "1.00",             # amount to charge for item
        "invoice": datetime.now(),       # unique tracking variable paypal
        "item_name": "Cipő",
        "notify_url": "%s%s" % (settings.SITE_NAME, "atyalapatyala"),
        "cancel_return": "%s/try_paypal_cancel" % settings.SITE_NAME,  # Express checkout cancel url
        "return_url": "%s/try_paypal_success" % settings.SITE_NAME}  # Express checkout return url

    # kw = {"item": item,                            # what you're selling
    #     "payment_template": "try_paypal.html",      # template name for payment
    #     "confirm_template": "try_paypal_confirmation.html",  # template name for confirmation
    #     "success_url": "/try_paypal_success/"}              # redirect location after success

    #ppp = PayPalPro(**kw)
    #return ppp(request)
    form = PayPalPaymentsForm(initial=paypal_dict)
    context = {"form": form.sandbox()}
    return render(request, "try_paypal.html", context)
Esempio n. 16
0
def view_ask_money_pdt(request):
	# What you want the button to do.
	access_token = ''
	if request.COOKIES.has_key('access_token'):
		access_token = str(request.COOKIES['access_token'])
	else:
		#print 'redirect user to the sign in page'
		#redirect user to the sign_in page
		_redirect = True
	paypal_dict = {
			"business":settings.PAYPAL_RECEIVER_EMAIL,
			"item_number": access_token,
			"item_name":"Ttagit Credits",
			"notify_url": paths.HTTPS+request.get_host() + "/3f2cf0fe3d994fb8dfe6d8f9g2h5",
			"return_url": paths.HTTPS+request.get_host() + "/paypal/pdt/",
			"cancel_return": paths.HTTPS+request.get_host()+ "/cancel",
	}

	form = PayPalPaymentsForm(initial=paypal_dict)
	context = {"form":form.sandbox()}
	return render_to_response("payment.html", context)
Esempio n. 17
0
def image_show(request, image):
    try:
        colorscheme = ColorScheme.objects.get(use_for_galleries=True)
    except ColorScheme.DoesNotExist:
        colorscheme = None
    try:
        bgimage = BackgroundImage.objects.get(use_for_galleries=True)
    except BackgroundImage.DoesNotExist:
        bgimage = None

    image = get_object_or_404(models.Image, title_slug=image)
    gallery = image.gallery

    # Paypal form info
    mysite = Site.objects.get_current()
    domain = mysite.domain
    paypal_dict = {
        "business": settings.PAYPAL_RECEIVER_EMAIL,
        "amount": image.price,
        "item_name": image.title,
        "item_number": image.id,
        "no_shipping": PayPalPaymentsForm.SHIPPING_CHOICES[1][0],
        "invoice": random_string(),
        "notify_url": "http://%s%s"%(domain, reverse('paypal-ipn')),
        "return_url": "http://%s%s"%(domain, reverse("purchase_return",args=(image.title_slug,))),
        "cancel_return": "http://%s%s"%(domain, reverse("purchase_cancel",args=(image.title_slug,)))
    }
    the_form = PayPalPaymentsForm(initial=paypal_dict)

    # Change this in production!
    form = the_form.sandbox()

    # Use gallery colorscheme
    try:
        colorscheme = ColorScheme.objects.get(use_for_galleries=True)
    except ColorScheme.DoesNotExist:
        pass
        
    return render_to_response("image_show.html", locals(), context_instance=RequestContext(request))
Esempio n. 18
0
def try_paypal(request):
    paypal_dict = {
        "business": settings.PAYPAL_RECEIVER_EMAIL,
        "amount": "1.00",  # amount to charge for item
        "invoice": datetime.now(),  # unique tracking variable paypal
        "item_name": "Cipő",
        "notify_url": "%s%s" % (settings.SITE_NAME, "atyalapatyala"),
        "cancel_return": "%s/try_paypal_cancel" %
        settings.SITE_NAME,  # Express checkout cancel url
        "return_url": "%s/try_paypal_success" % settings.SITE_NAME
    }  # Express checkout return url

    # kw = {"item": item,                            # what you're selling
    #     "payment_template": "try_paypal.html",      # template name for payment
    #     "confirm_template": "try_paypal_confirmation.html",  # template name for confirmation
    #     "success_url": "/try_paypal_success/"}              # redirect location after success

    #ppp = PayPalPro(**kw)
    #return ppp(request)
    form = PayPalPaymentsForm(initial=paypal_dict)
    context = {"form": form.sandbox()}
    return render(request, "try_paypal.html", context)
Esempio n. 19
0
def view_ask_money_pdt(request):
    # What you want the button to do.
    access_token = ''
    if request.COOKIES.has_key('access_token'):
        access_token = str(request.COOKIES['access_token'])
    else:
        #print 'redirect user to the sign in page'
        #redirect user to the sign_in page
        _redirect = True
    paypal_dict = {
        "business": settings.PAYPAL_RECEIVER_EMAIL,
        "item_number": access_token,
        "item_name": "Ttagit Credits",
        "notify_url":
        paths.HTTPS + request.get_host() + "/3f2cf0fe3d994fb8dfe6d8f9g2h5",
        "return_url": paths.HTTPS + request.get_host() + "/paypal/pdt/",
        "cancel_return": paths.HTTPS + request.get_host() + "/cancel",
    }

    form = PayPalPaymentsForm(initial=paypal_dict)
    context = {"form": form.sandbox()}
    return render_to_response("payment.html", context)
Esempio n. 20
0
def carga_compra(request, pago_id):
    pago=get_object_or_404(Pagos, pk=pago_id)
    usuario_pago=Usuarios_Pagos.objects.get_or_create(usuario=request.user, pago=pago)
    paypal_dict = {
        # "business": settings.PAYPAL_RECEIVER_EMAIL,
        "business": pago.correo,
        "amount": pago.get_precio,
        "item_name": pago.concepto,
        "invoice": "pagos_compras_" + str(pago.id)+"_"+str(request.user.id),
        "notify_url": "%s%s" % (SITE_NAME, reverse('paypal-ipn')),
        "return_url": "http://joinity.com/",
        "cancel_return": "http://joinity.com/",
        "custom": usuario_pago[0].id,
        "currency_code": "EUR",  # currency
        "paymentaction": "authorization",

    }
    form = PayPalPaymentsForm(initial=paypal_dict)
    
    context={"pago":pago, "form":form.sandbox()}
    pagina_pago=render_to_string("joinitys/pagos/ajax_ver_compra.html", context)
    return simplejson.dumps({"pago":pagina_pago})
Esempio n. 21
0
def do_subscribe(request):
	log.info("mypal module -> view.py -> do_subscribe()")
	paypal_dict={
		"cmd":"_xclick-subscriptions",
		"business":settings.PAYPAL_RECEIVER_EMAIL,
		"a3":"0.01",
		"p1":1,
		"p2":1,
		"p3":1,
		"t3":"D",
		"src":"1",
		"sra":"1",
		"no_note":"1",
		"item_name":"ttagit_pro_market",
    #use item_number for user id
		"item_number":"4ffb5e1a0cf2c9e46dda6810",
		"notify_url":"https://dev.ttagit.com/3f2cf0fe3d994fb8dfe6d8f9g2h5",
		"return_url":"https://dev.ttagit.com/paypal/pdt/",
		"cancel_return":"https://dev.ttagit.com/cancel",
	}
	form = PayPalPaymentsForm(initial=paypal_dict, button_type="subscribe")
	context = {"form":form.sandbox()}
	return render_to_response("payment.html", context)
Esempio n. 22
0
def paypal(request, treatment_id):

    # What you want the button to do.
    
    try:
        treatment = Treatment.objects.get(id=treatment_id)
    except:
        raise Http404
        
    treatment_price = system.GET_TREATMENT_PRICE()
    treatment_time = system.GET_TREATMENT_TIME_LIMIT()
        
    paypal_dict = {
        "business": settings.PAYPAL_RECEIVER_EMAIL,
        "charset": "utf-8",
        "amount": "%s" % treatment_price,
        "item_name": u"Avaliação e Orientação Dermatológica",
        "custom": treatment_id,
        "invoice": treatment_id,
        "notify_url": "%s%s" % (settings.SITE_NAME, reverse('paypal-ipn')),
        "return_url": "%s%s" % (settings.SITE_NAME, reverse('paypalreturn')),
        "cancel_return": "%s%s" % (settings.SITE_NAME, reverse('paypal-cancel-return')),
    }

    # Create the instance.
    paypal_form = PayPalPaymentsForm(initial=paypal_dict)
    
    free_treatments = system.GET_FREE_TREATMENTS()
    
    if settings.PAYPAL_TEST:
        paypal_form = paypal_form.sandbox()
    else:
        paypal_form = paypal_form.render()
    context = {"paypal_form": paypal_form, "treatment": treatment, "treatment_time": treatment_time, "free_treatments": free_treatments}
    return render_to_response("treatments/checkout.html", context, context_instance=RequestContext(request))
    
    from paypal.pro.views import PayPalPro
Esempio n. 23
0
def do_subscribe(request):
    log.info("mypal module -> view.py -> do_subscribe()")
    paypal_dict = {
        "cmd": "_xclick-subscriptions",
        "business": settings.PAYPAL_RECEIVER_EMAIL,
        "a3": "0.01",
        "p1": 1,
        "p2": 1,
        "p3": 1,
        "t3": "D",
        "src": "1",
        "sra": "1",
        "no_note": "1",
        "item_name": "ttagit_pro_market",
        #use item_number for user id
        "item_number": "4ffb5e1a0cf2c9e46dda6810",
        "notify_url":
        "https://" + request.get_host() + "/3f2cf0fe3d994fb8dfe6d8f9g2h5",
        "return_url": "https://" + request.get_host() + "/paypal/pdt/",
        "cancel_return": "https://" + request.get_host() + "/cancel",
    }
    form = PayPalPaymentsForm(initial=paypal_dict, button_type="subscribe")
    context = {"form": form.sandbox()}
    return render_to_response("payment.html", context)
Esempio n. 24
0
def BalancePayment(request, amount, csrf, payStatus, date_created):

    service = Service.objects.all().get(id=56)
    user = request.user
    if date_created == "0":
        date_created = str(int(float(time.time() * 1000)))
    invoice_number = date_created + "-service-56-" + str(user.id)

    paypal_dict = {
        "business": settings.PAYPAL_RECEIVER_EMAIL,
        "amount": int(amount) / 100,
        "item_name": service.name,
        "invoice": invoice_number,
        "notify_url": "%s%s" % (settings.SITE_NAME, reverse("paypal-ipn")),
        "return_url": settings.SITE_NAME
        + "/paypal/payment/balance/"
        + amount
        + "/1/"
        + csrf
        + "/"
        + date_created
        + "/",
        "cancel_return": settings.SITE_NAME
        + "/paypal/payment/balance/"
        + amount
        + "/0/"
        + csrf
        + "/"
        + date_created
        + "/",
    }

    if payStatus == "2":
        if len(Invoice.objects.all().filter(number=invoice_number)) > 0:
            payStatus = "3"
        else:
            dateTime = datetime.datetime.fromtimestamp(float(date_created) / 1000)
            i = Invoice.objects.create(
                date_created=dateTime, service=service, buyer=user, amount=1, is_paid=False, number=invoice_number
            )
            i.save()
    if payStatus == "1":
        if len(Invoice.objects.all().filter(number=invoice_number)) == 0:
            payStatus = "3"
        else:
            i = Invoice.objects.all().get(number=invoice_number)
            i.is_paid = True
            i.save()
            from decimal import Decimal

            if len(Balance.objects.all().filter(user=user)) == 0:
                b = Balance.objects.create(user=user, balance=Decimal(float(amount) / 100))
                b.save()
            else:
                b = Balance.objects.all().get(user=user)
                total = b.balance + Decimal(float(amount) / 100)
                b.balance = total
                b.save()
    if payStatus == "0":
        if len(Invoice.objects.all().filter(number=invoice_number)) == 0:
            payStatus = "3"
        else:
            i = Invoice.objects.all().get(number=invoice_number)
            i.is_paid = False
            i.save()

    form = PayPalPaymentsForm(initial=paypal_dict)
    context = {
        "form": form.sandbox(),
        "service": service,
        "payStatus": payStatus,
        "price": str(float(int(amount) / 100)),
        "invoice_number": invoice_number,
        "date_created": date_created,
    }

    return render_with_user(request, "paypal/balance_payment.html", context)
Esempio n. 25
0
def donate(request, p, engine):
    if not can_accept_donations(p):
        return redirect("project-main", project_id=p.id)
    is_test_donation = getattr(settings, "DONATION_TEST", False)
    if request.method == "POST":
        donate_form = InvoiceForm(data=request.POST, project=p, engine=engine)
        if donate_form.is_valid():
            description = u"Akvo-%d-%s" % (p.id, p.title)
            cd = donate_form.cleaned_data
            invoice = donate_form.save(commit=False)
            invoice.project = p
            invoice.engine = engine
            invoice.name = cd["name"]
            invoice.email = cd["email"]
            invoice.campaign_code = cd["campaign_code"]
            invoice.is_anonymous = not cd["is_public"]
            original_http_referer = request.session.get("original_http_referer", None)
            if original_http_referer:
                invoice.http_referer = original_http_referer
                del request.session["original_http_referer"]
            else:
                invoice.http_referer = request.META.get("HTTP_REFERER", None)
            if is_test_donation:
                invoice.test = True
            if request.session.get("donation_return_url", False):
                return_url = urljoin(request.session["donation_return_url"],
                                     reverse("donate_thanks"))
            else:
                return_url = urljoin(request.META['HTTP_ORIGIN'], reverse("donate_thanks"))
            if engine == "ideal":
                invoice.bank = cd["bank"]
                mollie_dict = dict(
                    amount=invoice.amount * 100,
                    bank_id=invoice.bank,
                    partnerid=invoice.gateway,
                    description=description,
                    reporturl=urljoin(request.META['HTTP_ORIGIN'], reverse("mollie_report")),
                    returnurl=return_url)
                try:
                    mollie_response = query_mollie(mollie_dict, "fetch")
                    invoice.transaction_id = mollie_response["transaction_id"]
                    order_url = mollie_response["order_url"]
                    invoice.save()
                except:
                    return redirect("donate_500")
                return render_to_response("donate/donate_step3.html",
                                          dict(invoice=invoice,
                                               project=p,
                                               payment_engine=engine,
                                               mollie_order_url=order_url),
                                          context_instance=RequestContext(request))
            elif engine == "paypal":
                invoice.save()
                pp_dict = dict(
                    cmd="_donations",
                    currency_code=invoice.currency,
                    business=invoice.gateway,
                    amount=invoice.amount,
                    item_name=description,
                    invoice=int(invoice.id),
                    lc=invoice.locale,
                    notify_url=urljoin(request.META['HTTP_ORIGIN'], reverse("paypal_ipn")),
                    return_url=return_url,
                    cancel_url=request.META['HTTP_ORIGIN'])
                pp_form = PayPalPaymentsForm(initial=pp_dict)
                if is_test_donation:
                    pp_button = pp_form.sandbox()
                else:
                    pp_button = pp_form.render()
                return render_to_response("donate/donate_step3.html",
                                          dict(invoice=invoice,
                                               payment_engine=engine,
                                               pp_form=pp_form,
                                               pp_button=pp_button,
                                               project=p),
                                          context_instance=RequestContext(request))
    else:
        invoice_id = request.GET.get("invoice_id", None)
        if not invoice_id:
            donate_form = InvoiceForm(project=p,
                                      engine=engine,
                                      initial=dict(is_public=True))
        else:
            invoice = get_object_or_404(Invoice, pk=invoice_id)
            donate_form = InvoiceForm(project=p,
                                      engine=engine,
                                      initial=dict(amount=invoice.amount,
                                                   name=invoice.name,
                                                   email=invoice.email,
                                                   email2=invoice.email,
                                                   campaign_code=invoice.campaign_code,
                                                   is_public=not invoice.is_anonymous))
        if request.session.get("donation_return_url", False):
            request.session["cancel_url"] = urljoin(request.session["donation_return_url"],
                                                    reverse("project-main",
                                                    kwargs={'project_id': p.id}))
        else:
            request.session["cancel_url"] = reverse("project-main", kwargs={'project_id': p.id})
    return render_to_response("donate/donate_step2.html",
                              dict(donate_form=donate_form,
                                   payment_engine=engine,
                                   project=p),
                              context_instance=RequestContext(request))
Esempio n. 26
0
def donate(request, p, engine, has_sponsor_banner=False):
    if p not in Project.objects.published().need_funding():
        return redirect('project_main', project_id=p.id)
    if get_object_or_404(Organisation, pk=settings.LIVE_EARTH_ID) in p.sponsor_partners():            
        has_sponsor_banner = True
    if request.method == 'POST':
        donate_form = InvoiceForm(data=request.POST, project=p, engine=engine)
        if donate_form.is_valid():
            cd = donate_form.cleaned_data
            invoice = donate_form.save(commit=False)
            invoice.project = p
            invoice.engine = engine
            invoice.name = cd['name']
            invoice.email = cd['email']
            original_http_referer = request.session.get('original_http_referer', None)
            if original_http_referer:
                invoice.http_referer = original_http_referer
                del request.session['original_http_referer']
            else:
                invoice.http_referer = request.META.get('HTTP_REFERER', None)
            if settings.DONATION_TEST:
                invoice.test = True
            if engine == 'ideal':
                invoice.bank = cd['bank']
                mollie_dict = {
                    'amount': invoice.amount * 100,
                    'bank_id': invoice.bank,
                    'partnerid': invoice.gateway,
                    'description': u'Donation: Akvo Project %d' % int(p.id),
                    'reporturl': settings.MOLLIE_REPORT_URL,
                    'returnurl': settings.MOLLIE_RETURN_URL}
                try:
                    mollie_response = query_mollie(mollie_dict, 'fetch')
                    invoice.transaction_id = mollie_response['transaction_id']
                    order_url = mollie_response['order_url']
                    invoice.save()
                except:
                    return redirect('donate_500')
                return render_to_response('rsr/donate_step3.html',
                    {'invoice': invoice,
                     'p': p,
                     'payment_engine': engine,
                     'mollie_order_url': order_url,
                     'has_sponsor_banner': has_sponsor_banner,
                     'live_earth_enabled': settings.LIVE_EARTH_ENABLED},
                    context_instance=RequestContext(request))
            elif engine == 'paypal':
                invoice.save()
                pp_dict = {
                    'cmd': getattr(settings, 'PAYPAL_COMMAND', '_donations'),
                    'currency_code': invoice.currency,
                    'business': invoice.gateway,
                    'amount': invoice.amount,
                    'item_name': u'%s: Project %d - %s' % (settings.PAYPAL_PRODUCT_DESCRIPTION_PREFIX,
                        int(invoice.project.id), invoice.project.name),
                    'invoice': int(invoice.id),
                    'lc': invoice.locale,
                    'notify_url': settings.PAYPAL_NOTIFY_URL,
                    'return_url': settings.PAYPAL_RETURN_URL,
                    'cancel_url': settings.PAYPAL_CANCEL_URL}
                pp_form = PayPalPaymentsForm(initial=pp_dict)
                if settings.PAYPAL_TEST:
                    pp_button = pp_form.sandbox()
                else:
                    pp_button = pp_form.render()
                action = request.POST.get('action', None)
                return render_to_response('rsr/donate_step3.html',
                                      {'invoice': invoice,
                                       'payment_engine': engine,
                                       'pp_form': pp_form, 
                                       'pp_button': pp_button,
                                       'p': p,
                                       'has_sponsor_banner': has_sponsor_banner,
                                       'live_earth_enabled': settings.LIVE_EARTH_ENABLED},
                                      context_instance=RequestContext(request))
    else:
        donate_form = InvoiceForm(project=p, engine=engine)
    return render_to_response('rsr/donate_step2.html', 
                              {'donate_form': donate_form,
                               'payment_engine': engine,
                               'p': p,
                               'has_sponsor_banner': has_sponsor_banner,
                               'live_earth_enabled': settings.LIVE_EARTH_ENABLED}, 
                              context_instance=RequestContext(request))
Esempio n. 27
0
def donate(request, p, engine):
    if not can_accept_donations(p):
        return redirect("project-main", project_id=p.id)
    is_test_donation = getattr(settings, "DONATION_TEST", False)
    if request.method == "POST":
        donate_form = InvoiceForm(data=request.POST, project=p, engine=engine)
        if donate_form.is_valid():
            description = u"Akvo-%d-%s" % (p.id, p.title)
            cd = donate_form.cleaned_data
            invoice = donate_form.save(commit=False)
            invoice.project = p
            invoice.engine = engine
            invoice.name = cd["name"]
            invoice.email = cd["email"]
            invoice.campaign_code = cd["campaign_code"]
            invoice.is_anonymous = not cd["is_public"]
            original_http_referer = request.session.get(
                "original_http_referer", None)
            if original_http_referer:
                invoice.http_referer = original_http_referer
                del request.session["original_http_referer"]
            else:
                invoice.http_referer = request.META.get("HTTP_REFERER", None)
            if is_test_donation:
                invoice.test = True
            if request.session.get("donation_return_url", False):
                return_url = urljoin(request.session["donation_return_url"],
                                     reverse("donate_thanks"))
            else:
                return_url = urljoin(request.META['HTTP_ORIGIN'],
                                     reverse("donate_thanks"))
            if engine == "ideal":
                invoice.bank = cd["bank"]
                mollie_dict = dict(amount=invoice.amount * 100,
                                   bank_id=invoice.bank,
                                   partnerid=invoice.gateway,
                                   description=description,
                                   reporturl=urljoin(
                                       request.META['HTTP_ORIGIN'],
                                       reverse("mollie_report")),
                                   returnurl=return_url)
                try:
                    mollie_response = query_mollie(mollie_dict, "fetch")
                    invoice.transaction_id = mollie_response["transaction_id"]
                    order_url = mollie_response["order_url"]
                    invoice.save()
                except:
                    return redirect("donate_500")
                return render_to_response(
                    "donate/donate_step3.html",
                    dict(invoice=invoice,
                         project=p,
                         payment_engine=engine,
                         mollie_order_url=order_url),
                    context_instance=RequestContext(request))
            elif engine == "paypal":
                invoice.save()
                pp_dict = dict(cmd="_donations",
                               currency_code=invoice.currency,
                               business=invoice.gateway,
                               amount=invoice.amount,
                               item_name=description,
                               invoice=int(invoice.id),
                               lc=invoice.locale,
                               notify_url=urljoin(request.META['HTTP_ORIGIN'],
                                                  reverse("paypal_ipn")),
                               return_url=return_url,
                               cancel_url=request.META['HTTP_ORIGIN'])
                pp_form = PayPalPaymentsForm(initial=pp_dict)
                if is_test_donation:
                    pp_button = pp_form.sandbox()
                else:
                    pp_button = pp_form.render()
                return render_to_response(
                    "donate/donate_step3.html",
                    dict(invoice=invoice,
                         payment_engine=engine,
                         pp_form=pp_form,
                         pp_button=pp_button,
                         project=p),
                    context_instance=RequestContext(request))
    else:
        invoice_id = request.GET.get("invoice_id", None)
        if not invoice_id:
            donate_form = InvoiceForm(project=p,
                                      engine=engine,
                                      initial=dict(is_public=True))
        else:
            invoice = get_object_or_404(Invoice, pk=invoice_id)
            donate_form = InvoiceForm(project=p,
                                      engine=engine,
                                      initial=dict(
                                          amount=invoice.amount,
                                          name=invoice.name,
                                          email=invoice.email,
                                          email2=invoice.email,
                                          campaign_code=invoice.campaign_code,
                                          is_public=not invoice.is_anonymous))
        if request.session.get("donation_return_url", False):
            request.session["cancel_url"] = urljoin(
                request.session["donation_return_url"],
                reverse("project-main", kwargs={'project_id': p.id}))
        else:
            request.session["cancel_url"] = reverse(
                "project-main", kwargs={'project_id': p.id})
    return render_to_response("donate/donate_step2.html",
                              dict(donate_form=donate_form,
                                   payment_engine=engine,
                                   project=p),
                              context_instance=RequestContext(request))
Esempio n. 28
0
File: views.py Progetto: pvw/pvw-rsr
def donate(request, p, engine, has_sponsor_banner=False):
    if p not in Project.objects.published().need_funding():
        return redirect("project_main", project_id=p.id)
    if get_object_or_404(Organisation, pk=settings.LIVE_EARTH_ID) in p.sponsor_partners():
        has_sponsor_banner = True
    if request.method == "POST":
        donate_form = InvoiceForm(data=request.POST, user=request.user, project=p, engine=engine)
        if donate_form.is_valid():
            cd = donate_form.cleaned_data
            invoice = donate_form.save(commit=False)
            invoice.project = p
            invoice.engine = engine
            if request.user.is_authenticated() and request.user.email:
                invoice.user = request.user
            else:
                invoice.name = cd["name"]
                invoice.email = cd["email"]
            original_http_referer = request.session.get("original_http_referer", None)
            if original_http_referer:
                invoice.http_referer = original_http_referer
                del request.session["original_http_referer"]
            else:
                invoice.http_referer = request.META.get("HTTP_REFERER", None)
            if settings.DONATION_TEST:
                invoice.test = True
            if engine == "ideal":
                invoice.bank = cd["bank"]
                mollie_dict = {
                    "amount": invoice.amount * 100,
                    "bank_id": invoice.bank,
                    "partnerid": invoice.gateway,
                    "description": u"Donation: Akvo Project %d" % int(p.id),
                    "reporturl": settings.MOLLIE_REPORT_URL,
                    "returnurl": settings.MOLLIE_RETURN_URL,
                }
                try:
                    mollie_response = query_mollie(mollie_dict, "fetch")
                    invoice.transaction_id = mollie_response["transaction_id"]
                    order_url = mollie_response["order_url"]
                    invoice.save()
                except:
                    return redirect("donate_500")
                return render_to_response(
                    "rsr/donate_step3.html",
                    {
                        "invoice": invoice,
                        "p": p,
                        "payment_engine": engine,
                        "mollie_order_url": order_url,
                        "has_sponsor_banner": has_sponsor_banner,
                        "live_earth_enabled": settings.LIVE_EARTH_ENABLED,
                    },
                    context_instance=RequestContext(request),
                )
            elif engine == "paypal":
                invoice.save()
                pp_dict = {
                    "cmd": getattr(settings, "PAYPAL_COMMAND", "_donations"),
                    "currency_code": invoice.currency,
                    "business": invoice.gateway,
                    "amount": invoice.amount,
                    "item_name": u"%s: Project %d - %s"
                    % (settings.PAYPAL_PRODUCT_DESCRIPTION_PREFIX, int(invoice.project.id), invoice.project.name),
                    "invoice": int(invoice.id),
                    "lc": invoice.locale,
                    "notify_url": settings.PAYPAL_NOTIFY_URL,
                    "return_url": settings.PAYPAL_RETURN_URL,
                    "cancel_url": settings.PAYPAL_CANCEL_URL,
                }
                pp_form = PayPalPaymentsForm(initial=pp_dict)
                if settings.PAYPAL_TEST:
                    pp_button = pp_form.sandbox()
                else:
                    pp_button = pp_form.render()
                action = request.POST.get("action", None)
                return render_to_response(
                    "rsr/donate_step3.html",
                    {
                        "invoice": invoice,
                        "payment_engine": engine,
                        "pp_form": pp_form,
                        "pp_button": pp_button,
                        "p": p,
                        "has_sponsor_banner": has_sponsor_banner,
                        "live_earth_enabled": settings.LIVE_EARTH_ENABLED,
                    },
                    context_instance=RequestContext(request),
                )
    else:
        donate_form = InvoiceForm(user=request.user, project=p, engine=engine)
    return render_to_response(
        "rsr/donate_step2.html",
        {
            "donate_form": donate_form,
            "payment_engine": engine,
            "p": p,
            "has_sponsor_banner": has_sponsor_banner,
            "live_earth_enabled": settings.LIVE_EARTH_ENABLED,
        },
        context_instance=RequestContext(request),
    )
Esempio n. 29
0
 def render_page(request,
                 order,
                 selectdiscountform=None,
                 claimdiscountform=None,
                 dropforms=None):
     context = {}
     if float(
             order.get_full_price()
     ) < 0.01:  # Free service. Don't show discount forms. Clear coupons so they are not wasted.
         context['show_discounts'] = False
         order.reset_discount_claims()
         order.save()
     else:
         context['show_discounts'] = True
         # Define forms for managing discounts on order
         if not dropforms:
             dropforms = []
             for claim in order.get_discount_claims():
                 dropforms.append({
                     'label':
                     claim.discount.display_text,
                     'form':
                     coupons.forms.RemoveDiscountForm(
                         initial={u'discount': claim.pk})
                 })
         context['dropforms'] = dropforms
         if not selectdiscountform:
             available_claims = order.get_unused_discount_claims()
             if available_claims:
                 selectdiscountform = coupons.forms.SelectDiscountForm(
                     request.user, available_claims=available_claims)
             else:
                 selectdiscountform = None
         context['selectdiscountform'] = selectdiscountform
         if not claimdiscountform:
             claimdiscountform = coupons.forms.ClaimOrSelectDiscountForm(
                 request.user)
         context['claimdiscountform'] = claimdiscountform
     # Define invoice data
     invoice = order.calculate_price()
     order.save()
     context['invoice'] = invoice
     if float(
             order.get_amount_to_pay()
     ) < 0.01:  # No payment due. Free service or 100% covered with discounts
         context['paid_service'] = False
         return render_to_response("order/submit_payment.html",
                                   RequestContext(request, context))
     else:
         context['paid_service'] = True
         # paypal button
         paypal_dict = {
             "business": settings.PAYPAL_RECEIVER_EMAIL,
             "amount": invoice['amount_due'],
             "item_name": order.get_service_description(),
             "invoice": order.invoice_id,
             "notify_url":
             "%s%s" % (settings.ROOT_URL, reverse('paypal-ipn')),
             "return_url": "%s%s" % (settings.ROOT_URL, 'paymentreceived/'),
             "cancel_return":
             "%s%s" % (settings.ROOT_URL, 'paymentcanceled/'),
         }
         form = PayPalPaymentsForm(initial=paypal_dict)
         if settings.RACK_ENV == 'production':
             context["pay_button"] = form.render()
         else:
             context["pay_button"] = form.sandbox()
         context["pay_button_message"] = mark_safe(
             _('Clicking the "Buy Now" button will submit your order and take you away from this site.'
               ) + '<br/>' +
             _('Please complete your secure payment with PayPal.'))
         return render_to_response("order/submit_payment.html",
                                   RequestContext(request, context))
Esempio n. 30
0
def processcheckout(request):
    """
        Paypal checkout
    """
    from django.conf import settings
    from django.http import HttpResponse, HttpResponseBadRequest, HttpResponseNotAllowed
    from pages.models import Page, Bill

    if request.method == "POST" and request.is_ajax():

        page = getPage(request)
        ####GET THE KEYS
        try:
            charges = request.POST["charges"]
            domainname = request.POST["domainname"]
            domainoption = request.POST["domainoption"]
        except:
            return HttpResponseBadRequest(u"%s" % _("an error occured when processing checkout"))

        if charges == "yearly":  ###########################CHECK CONFORMITY OF CHARGES
            item_name = _("EldonPage suscribtion for 1 year")
            amount = settings.PAGE_MONTHLY_PRICE * 12
            t3 = "Y"
            p3 = 1
        elif charges == "sixmonth":
            item_name = _("EldonPage suscribtion for six month")
            amount = settings.PAGE_MONTHLY_PRICE * 6
            t3 = "M"
            p3 = 6
        elif charges == "monthly":
            item_name = _("EldonPage suscribtion for 1 monthly")
            amount = settings.PAGE_MONTHLY_PRICE
            t3 = "M"
            p3 = 1
        else:
            return HttpResponseBadRequest(u"%s" % _("an error occured when processing checkout"))

        import uuid  ###########################CREATE THE BILL

        invoice = str(uuid.uuid1())

        #### WE CHECK FIRST IF USER HAS ALREADY CREATED A BILL
        try:
            bill = Bill.objects.get(page=page, invoice_type="creation")
            bill.amount = amount
            bill.invoice = invoice
            bill.domain = domainname
            bill.save()
        except Bill.DoesNotExist:
            bill = Bill(page=page, amount=amount, invoice=invoice, domain=domainname)
            bill.save()
        except:
            return HttpResponse(u"%s" % _("an error occured when processing checkout"))

        from paypal.standard.forms import PayPalPaymentsForm

        paypal = {
            "business": settings.PAYPAL_RECEIVER_EMAIL,  # settings.PAYPAL_RECEIVER_EMAIL,
            "item_name": item_name,
            "currency_code": "USD",
            "a3": amount,  # monthly price
            "p3": p3,  # duration of each unit (depends on unit)
            "t3": t3,  # duration unit ("M for Month")
            "src": "1",  # make payments recur
            "sra": "1",  # reattempt payment on payment error
            "no_note": "1",  # remove extra notes (optional)
            "invoice": invoice,
            "cmd": "_xclick-subscriptions",
            "custom": page.id,
            "notify_url": "http://eldonpage.com/sdf5f2sf/sdf56sfd/sfsf6s3/sdfd3r23rs/csdc65/32w3cds/",
            "return_url": "http://eldonpage.com/editpage/",
            "cancel_return": "http://eldonpage.com/editpage/",
        }
        form = PayPalPaymentsForm(initial=paypal)
        if settings.DEBUG:
            rendered_form = form.sandbox()
        else:
            rendered_form = form.render()

        return HttpResponse(rendered_form)

    return HttpResponseBadRequest(u"%s" % _("an error occured when processing checkout"))
Esempio n. 31
0
def ClientServicesPayment(request, serviceId, payStatus, date_created, userId):

    service = Service.objects.all().get(id=int(serviceId))
    if date_created == "0":
        date_created = str(time.time())
    invoice_number = date_created + "-service-" + str(serviceId) + "-" + str(userId)

    invoice_collection = None
    service_collection = []
    cost = 0

    if len(Invoice.objects.all().filter(number=invoice_number)) == 0:
        payStatus = "3"
    else:
        invoice_collection = Invoice.objects.all().get(number=invoice_number)

    collection = InvoiceCollection.objects.all().get(invoice=invoice_collection)

    for i in collection.collection.all():
        cost = cost + i.service.service_cost
        service_collection.append(i.service)

    paypal_dict = {
        "business": settings.PAYPAL_RECEIVER_EMAIL,
        "amount": cost,
        "item_name": service.name,
        "invoice": invoice_number,
        "notify_url": "%s%s" % (settings.SITE_NAME, reverse("paypal-ipn")),
        "return_url": settings.SITE_NAME
        + "/new/client/paypal/payment/service/"
        + serviceId
        + "/1/"
        + date_created
        + "/"
        + userId
        + "/",
        "cancel_return": settings.SITE_NAME
        + "/new/client/paypal/payment/service/"
        + serviceId
        + "/0/"
        + date_created
        + "/"
        + userId
        + "/",
    }

    if payStatus == "1":
        invoice_collection.is_paid = True
        invoice_collection.save()
        for i in collection.collection.all():
            i.is_paid = True
            i.save()
    if payStatus == "0":
        invoice_collection.is_paid = False
        invoice_collection.save()
        for i in collection.collection.all():
            i.is_paid = False
            i.save()
    form = PayPalPaymentsForm(initial=paypal_dict)
    context = {
        "form": form.sandbox(),
        "services": service_collection,
        "payStatus": payStatus,
        "invoice_number": invoice_number,
        "date_created": date_created,
        "serviceId": serviceId,
        "cost": cost,
    }

    return render_with_user(request, "client/payment.html", context)