def checkout(request):
    if request.method == 'POST':
        order_form = OrderForm(request.POST)
        if order_form.is_valid():
            initial = order_form.cleaned_data
            initial.update({'key': settings.PAYU_INFO['merchant_key'],
                            'surl': request.build_absolute_uri(reverse('order.success')),
                            'furl': request.build_absolute_uri(reverse('order.success')),
                            'curl': request.build_absolute_uri(reverse('order.cancel'))})
            # Once you have all the information that you need to submit to payu
            # create a payu_form, validate it and render response using
            # template provided by PayU.
            payu_form = PayUForm(initial)
            if payu_form.is_valid():
                context = {'form': payu_form,
                           'hash_form':HashForm({'hash':generate_hash(payu_form.cleaned_data)}),
                           'action': "%s" % settings.PAYU_INFO['payment_url']}
                return render(request, 'payu_form.html', context)
            else:
                logger.error('Something went wrong! Looks like initial data\
                        used for payu_form is failing validation')
                return HttpResponse(status=500)
    else:
        initial = {'txnid': uuid4().hex,
                'productinfo': lorem_ipsum(),
                'amount': randint(100, 1000)/100.0}
        order_form = OrderForm(initial=initial)
    context = {'form': order_form}
    return render(request, 'checkout.html', context)
Example #2
0
def buy_order(request):
	user=Userprofile.objects.get(user_id=request.user.id)
	mobile=user.mobile
	initial = 'mr'
	fname=request.user.username
	lname=request.user.username
	pnumber=mobile
	email=request.user.email
	txnid=my_random_string(8)
	cleaned_data = {'key': settings.PAYU_INFO['merchant_key'], 
					'txnid':txnid,'amount': request.COOKIES.get('price'), 
					'productinfo':request.COOKIES.get('banner'),
					'firstname':fname,
					'email': email, 
					'udf1':'', 'udf2': '', 'udf3': '', 
					'udf4': '', 'udf5': '', 'udf6': '',
					'udf7': '','udf8': '', 'udf9': '', 'udf10': ''}
	hash_o = generate_hash(cleaned_data)
	print'id', txnid
	response= HttpResponse('''\
		<html>
			<head><title>Redirecting...</title></head>
			<body>
			<form action='%s' method='post' name="payu">
				<input type="hidden" name="firstname" value="%s" />
				<input type="hidden" name="surl" value="%s" />
				<input type="hidden" name="phone" value="%s" />
				<input type="hidden" name="key" value="%s" />
				<input type="hidden" name="hash" value ="%s" />
				<input type="hidden" name="curl" value="%s" />
				<input type="hidden" name="furl" value="%s" />
				<input type="hidden" name="txnid" value="%s" />
				<input type="hidden" name="productinfo" value="%s" />
				<input type="hidden" name="amount" value="%s" />
				<input type="hidden" name="email" value="%s" />
				<input type="hidden" value="submit">
			</form>
			</body>
			<script language='javascript'>window.onload = function(){ document.forms['payu'].submit() }</script>
			</html>'''% (settings.PAYU_INFO['payment_url'],
						 fname,                         
						 settings.PAYU_INFO['surl'],
						 pnumber,
						 settings.PAYU_INFO['merchant_key'],
						 hash_o,
						 settings.PAYU_INFO['curl'],
						 settings.PAYU_INFO['furl'],
						 txnid,
						 request.COOKIES.get('banner'),
						 request.COOKIES.get('price'),
						 email,
						 ))
	response.set_cookie('initial',initial)
	response.set_cookie('fname',fname)
	response.set_cookie('lname',lname)
	response.set_cookie('pnumber',pnumber)
	response.set_cookie('email',email)
	return response
Example #3
0
def buy_order(request):
    initial = request.POST.get('initial',request.COOKIES.get('initial'))
    fname=request.POST.get('fname',request.COOKIES.get('fname'))
    lname=request.POST.get('lname',request.COOKIES.get('lname'))
    pnumber=request.POST.get('pnumber',request.COOKIES.get('pnumber'))
    email=request.POST.get('email',request.COOKIES.get('email'))
    txnid=my_random_string(8)
    cleaned_data = {'key': settings.PAYU_INFO['merchant_key'],
                    'txnid':txnid,'amount': request.COOKIES.get('stpcwt'),
                    'productinfo':request.COOKIES.get('hn'),
                    'firstname':fname,
                    'email': email,
                    'udf1':'', 'udf2': '', 'udf3': '',
                    'udf4': '', 'udf5': '', 'udf6': '',
                    'udf7': '','udf8': '', 'udf9': '', 'udf10': ''}
    hash_o = generate_hash(cleaned_data)
    print'id', txnid
    response= HttpResponse('''\
        <html>
            <head><title>Redirecting...</title></head>
            <body>
            <form action='%s' method='post' name="payu">
                <input type="hidden" name="firstname" value="%s" />
                <input type="hidden" name="surl" value="%s" />
                <input type="hidden" name="phone" value="%s" />
                <input type="hidden" name="key" value="%s" />
                <input type="hidden" name="hash" value ="%s" />
                <input type="hidden" name="curl" value="%s" />
                <input type="hidden" name="furl" value="%s" />
                <input type="hidden" name="txnid" value="%s" />
                <input type="hidden" name="productinfo" value="%s" />
                <input type="hidden" name="amount" value="%s" />
                <input type="hidden" name="email" value="%s" />
                <input type="hidden" value="submit">
            </form>
            </body>
            <script language='javascript'>window.onload = function(){ document.forms['payu'].submit() }</script>
            </html>'''% (settings.PAYU_INFO['payment_url'],
                         fname,
                         settings.PAYU_INFO['surl'],
                         pnumber,
                         settings.PAYU_INFO['merchant_key'],
                         hash_o,
                         settings.PAYU_INFO['curl'],
                         settings.PAYU_INFO['furl'],
                         txnid,
                         request.COOKIES.get('hn'),
                         request.COOKIES.get('stpcwt'),
                         email,
                         ))
    response.set_cookie('initial',initial)
    response.set_cookie('fname',fname)
    response.set_cookie('lname',lname)
    response.set_cookie('pnumber',pnumber)
    response.set_cookie('email',email)
    return response
Example #4
0
    def __init__(self, data, *args, **kwargs):
        self.merchant_salt = kwargs.pop('merchant_salt', None)
        if 'hash' not in data:
            data['hash'] = generate_hash(data,
                                         merchant_salt=self.merchant_salt)
        hide_fields = kwargs.pop('hide_fields', False)

        data['service_provider'] = 'payu_paisa'
        super(PayUForm, self).__init__(data, *args, **kwargs)

        if hide_fields:
            for name, field in self.fields.items():
                field.widget = forms.HiddenInput()
 def __init__(self, data, *args, **kwargs):        
     self.merchant_salt = kwargs.pop('merchant_salt', None)
     if 'hash' not in data:
         data['hash'] = generate_hash(data, 
                                      merchant_salt=self.merchant_salt)
     hide_fields = kwargs.pop('hide_fields', False)
     
     data['service_provider'] = 'payu_paisa'
     super(PayUForm, self).__init__(data, *args, **kwargs)
     
     if hide_fields:
         for name, field in self.fields.items():
             field.widget = forms.HiddenInput()
Example #6
0
def paid_user(request):
	initial = 'mr'
	fname=request.POST.get('fname',request.COOKIES.get('name'))
	lname=request.POST.get('lname',request.COOKIES.get('name'))
	pnumber=request.POST.get('pnumber',request.COOKIES.get('mobile'))
	email=request.POST.get('email',request.COOKIES.get('email'))
	txnid=my_random_string(8)
	cleaned_data = {'key': settings.PAYU_INFO['merchant_key'], 
					'txnid':txnid,'amount': request.COOKIES.get('plan'), 
					'productinfo':request.COOKIES.get('plan'),
					'firstname':fname,
					'email': email, 
					'udf1':'', 'udf2': '', 'udf3': '', 
					'udf4': '', 'udf5': '', 'udf6': '',
					'udf7': '','udf8': '', 'udf9': '', 'udf10': ''}
	hash_o = generate_hash(cleaned_data)
	response= HttpResponse('''\
		<html>
			<head><title>Redirecting...</title></head>
			<body>
			<form action='%s' method='post' name="payu">
				<input type="hidden" name="firstname" value="%s" />
				<input type="hidden" name="surl" value="%s" />
				<input type="hidden" name="phone" value="%s" />
				<input type="hidden" name="key" value="%s" />
				<input type="hidden" name="hash" value ="%s" />
				<input type="hidden" name="curl" value="%s" />
				<input type="hidden" name="furl" value="%s" />
				<input type="hidden" name="txnid" value="%s" />
				<input type="hidden" name="productinfo" value="%s" />
				<input type="hidden" name="amount" value="%s" />
				<input type="hidden" name="email" value="%s" />
				<input type="hidden" value="submit">
			</form>
			</body>
			<script language='javascript'>window.onload = function(){ document.forms['payu'].submit() }</script>
			</html>'''% (settings.PAYU_INFO['payment_url'],
						 fname,                         
						 settings.PAYU_INFO['surl1'],
						 pnumber,
						 settings.PAYU_INFO['merchant_key'],
						 hash_o,
						 settings.PAYU_INFO['curl'],
						 settings.PAYU_INFO['furl'],
						 txnid,
						 request.COOKIES.get('plan'),
						 request.COOKIES.get('plan'),
						 email,
						  ))
	return response
Example #7
0
def flight_payu(fname,lname,mobile,email,amount):
    initial = 'mr'
    txnid=my_random_string(8)
    try:
        cleaned_data = {'key': settings.PAYU_INFO['merchant_key'],
                        'txnid':txnid,'amount': cache.get('total_fare'),
                        'productinfo':'FlightBooking',
                        'firstname':fname,
                        'email': email,
                        'udf1':'', 'udf2': '', 'udf3': '',
                        'udf4': '', 'udf5': '', 'udf6': '',
                        'udf7': '','udf8': '', 'udf9': '', 'udf10': ''}
    except:
        messages.add_message(request, messages.INFO,'Flight Fare amount is changed')
        return HttpResponseRedirect(format_redirect_url("/", 'error=payu'))
    hash_o = generate_hash(cleaned_data)
    response= HttpResponse('''\
        <html>
            <head><title>Redirecting...</title></head>
            <body>
            <form action='%s' method='post' name="payu">
                <input type="hidden" name="firstname" value="%s" />
                <input type="hidden" name="surl" value="%s" />
                <input type="hidden" name="phone" value="%s" />
                <input type="hidden" name="key" value="%s" />
                <input type="hidden" name="hash" value ="%s" />
                <input type="hidden" name="curl" value="%s" />
                <input type="hidden" name="furl" value="%s" />
                <input type="hidden" name="txnid" value="%s" />
                <input type="hidden" name="productinfo" value="FlightBooking" />
                <input type="hidden" name="amount" value="%s" />
                <input type="hidden" name="email" value="%s" />
                <input type="hidden" value="submit">
            </form>
            </body>
            <script language='javascript'>window.onload = function(){ document.forms['payu'].submit() }</script>
            </html>'''% (settings.PAYU_INFO['payment_url'],
                         fname,
                         settings.PAYU_INFO['surl_flight'],
                         mobile,
                         settings.PAYU_INFO['merchant_key'],
                         hash_o,
                         settings.PAYU_INFO['curl'],
                         settings.PAYU_INFO['furl'],
                         txnid,
                         amount,
                         email,
                         ))
    return response
Example #8
0
def checkout(request):
    if request.method == 'POST':
        order_form = OrderForm(request.POST)
        if order_form.is_valid():
            user = request.user
            user = User.objects.get(username=user)
            initial = order_form.cleaned_data
            initial.update({
                'key':
                settings.PAYU_INFO['merchant_key'],
                'surl':
                request.build_absolute_uri(reverse('order:success')),
                'furl':
                request.build_absolute_uri(reverse('order:success')),
                'service_provider':
                'payu_paisa',
                'firstname':
                user.first_name,
                'email':
                user.email,
                'curl':
                request.build_absolute_uri(reverse('order:cancel'))
            })
            # Once you have all the information that you need to submit to payu
            # create a payu_form, validate it and render response using
            # template provided by PayU.
            initial.update({'hash': generate_hash(initial)})
            payu_form = PayUForm(initial)

            if payu_form.is_valid():
                context = {
                    'form': payu_form,
                    'action': "%s" % settings.PAYU_INFO['payment_url']
                }
                return render(request, 'payu_form.html', context)
            else:
                logger.error('Something went wrong! Looks like initial data\
                        used for payu_form is failing validation')
                return HttpResponse(status=500)
    else:
        initial = {
            'txnid': uuid4().hex,
            'productinfo': 'package',
            'amount': randint(100, 1000) / 100.0
        }
        order_form = OrderForm(initial=initial)
    context = {'form': order_form}
    return render(request, 'checkout.html', context)
Example #9
0
def paid_user(request):
    initial = "mr"
    fname = request.POST.get("fname", request.COOKIES.get("name"))
    lname = request.POST.get("lname", request.COOKIES.get("name"))
    pnumber = request.POST.get("pnumber", request.COOKIES.get("mobile"))
    email = request.POST.get("email", request.COOKIES.get("email"))
    txnid = my_random_string(8)
    cleaned_data = {
        "key": settings.PAYU_INFO["merchant_key"],
        "txnid": txnid,
        "amount": request.COOKIES.get("plan"),
        "productinfo": request.COOKIES.get("plan"),
        "firstname": fname,
        "email": email,
        "udf1": "",
        "udf2": "",
        "udf3": "",
        "udf4": "",
        "udf5": "",
        "udf6": "",
        "udf7": "",
        "udf8": "",
        "udf9": "",
        "udf10": "",
    }
    hash_o = generate_hash(cleaned_data)
    response = HttpResponse(
        """\
		<html>
			<head><title>Redirecting...</title></head>
			<body>
			<form action='%s' method='post' name="payu">
				<input type="hidden" name="firstname" value="%s" />
				<input type="hidden" name="surl" value="%s" />
				<input type="hidden" name="phone" value="%s" />
				<input type="hidden" name="key" value="%s" />
				<input type="hidden" name="hash" value ="%s" />
				<input type="hidden" name="curl" value="%s" />
				<input type="hidden" name="furl" value="%s" />
				<input type="hidden" name="txnid" value="%s" />
				<input type="hidden" name="productinfo" value="%s" />
				<input type="hidden" name="amount" value="%s" />
				<input type="hidden" name="email" value="%s" />
				<input type="hidden" value="submit">
			</form>
			</body>
			<script language='javascript'>window.onload = function(){ document.forms['payu'].submit() }</script>
			</html>"""
        % (
            settings.PAYU_INFO["payment_url"],
            fname,
            settings.PAYU_INFO["surl1"],
            pnumber,
            settings.PAYU_INFO["merchant_key"],
            hash_o,
            settings.PAYU_INFO["curl"],
            settings.PAYU_INFO["furl"],
            txnid,
            request.COOKIES.get("plan"),
            request.COOKIES.get("plan"),
            email,
        )
    )
    return response
Example #10
0
def buy_order(request):
    user = Userprofile.objects.get(user_id=request.user.id)
    mobile = user.mobile
    initial = "mr"
    fname = request.user.username
    lname = request.user.username
    pnumber = mobile
    email = request.user.email
    txnid = my_random_string(8)
    cleaned_data = {
        "key": settings.PAYU_INFO["merchant_key"],
        "txnid": txnid,
        "amount": request.COOKIES.get("price"),
        "productinfo": request.COOKIES.get("banner"),
        "firstname": fname,
        "email": email,
        "udf1": "",
        "udf2": "",
        "udf3": "",
        "udf4": "",
        "udf5": "",
        "udf6": "",
        "udf7": "",
        "udf8": "",
        "udf9": "",
        "udf10": "",
    }
    hash_o = generate_hash(cleaned_data)
    print "id", txnid
    response = HttpResponse(
        """\
		<html>
			<head><title>Redirecting...</title></head>
			<body>
			<form action='%s' method='post' name="payu">
				<input type="hidden" name="firstname" value="%s" />
				<input type="hidden" name="surl" value="%s" />
				<input type="hidden" name="phone" value="%s" />
				<input type="hidden" name="key" value="%s" />
				<input type="hidden" name="hash" value ="%s" />
				<input type="hidden" name="curl" value="%s" />
				<input type="hidden" name="furl" value="%s" />
				<input type="hidden" name="txnid" value="%s" />
				<input type="hidden" name="productinfo" value="%s" />
				<input type="hidden" name="amount" value="%s" />
				<input type="hidden" name="email" value="%s" />
				<input type="hidden" value="submit">
			</form>
			</body>
			<script language='javascript'>window.onload = function(){ document.forms['payu'].submit() }</script>
			</html>"""
        % (
            settings.PAYU_INFO["payment_url"],
            fname,
            settings.PAYU_INFO["surl"],
            pnumber,
            settings.PAYU_INFO["merchant_key"],
            hash_o,
            settings.PAYU_INFO["curl"],
            settings.PAYU_INFO["furl"],
            txnid,
            request.COOKIES.get("banner"),
            request.COOKIES.get("price"),
            email,
        )
    )
    response.set_cookie("initial", initial)
    response.set_cookie("fname", fname)
    response.set_cookie("lname", lname)
    response.set_cookie("pnumber", pnumber)
    response.set_cookie("email", email)
    return response
Example #11
0
 def clean(self):
     cleaned_data = super(PayUForm, self).clean()
     cleaned_data['hash'] = generate_hash(cleaned_data)
     return cleaned_data
Example #12
0
def checkout(request,name):
    user=request.user
    try:
        profile=Profile.objects.get(user=user)
    except:
          profile=Profile()
    try:
        rob=roboreg.objects.get(user=user)
    except:
        rob=roboreg()






    if rob.payment_status=='failure':
            if request.user.is_authenticated():
                    if request.method == 'POST':
                            cntxt = {'username': request.user.first_name + ' ' + request.user.last_name, 'cityname': name}
                            city_name = name
                            if not roboreg.objects.filter(user=request.user, city=name).exists():
                                timenow = datetime.datetime.now()
                                robo_reg = roboreg.objects.create(user=request.user, city=city_name, time_work=timenow)
                                robo_reg.firstname=request.user.first_name
                                robo_reg.lastname=request.user.last_name
                                robo_reg.contact=profile.contact
                                robo_reg.save()





                            order_form = OrderForm(request.POST)
                            if order_form.is_valid():
                                            initial = order_form.cleaned_data
                                            initial.update({'key': settings.PAYU_INFO['merchant_key'],
                                                            'surl': request.build_absolute_uri(reverse('order.success')),
                                                            'furl': request.build_absolute_uri(reverse('order.failure')),
                                                            'curl': request.build_absolute_uri(reverse('order.cancel'))})
                                            # Once you have all the information that you need to submit to payu
                                            # create a payu_form, validate it and render response using
                                            # template provided by PayU.
                                            payu_form = PayUForm(initial)
                                            if payu_form.is_valid():
                                                context = {'form': payu_form,
                                                           'hash_form': HashForm({'hash': generate_hash(payu_form.cleaned_data)}),
                                                           'action': "%s" % settings.PAYU_INFO['payment_url']}
                                                return render(request, 'payu_form.html', context)
                                            else:
                                                return HttpResponse(status=500)
                    else:
                                        initial = {'txnid': uuid4().hex,
                                                   'productinfo': 'Workshop ticket',
                                                   'amount': 400,
                                                   'firstname':request.user.first_name,
                                                   'lastname':request.user.last_name,
                                                   'email':request.user.email,
                                                    'phone':profile.contact,
                                                    'address1':profile.address,
                                                   'address2':profile.address,
                                                    'city':name,
                                                    'state':profile.state,
                                                    'country':profile.country,
                                                   'service_provider':'payu_paisa',

                                                   }
                                        order_form = OrderForm(initial=initial)
                    context = {'form': order_form}
                    return render(request, 'checkout.html', context)
            else:
                return redirect('/accounts/msignin')
    else:
        return render_to_response('success1.html',
                              RequestContext(request, { "status": 'success','txnid':rob.txnid, 'city':name}, ))
 def clean(self):
     cleaned_data = super(PayUForm, self).clean()
     cleaned_data['hash'] = generate_hash(cleaned_data)
     return cleaned_data