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)
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
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
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 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
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
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)
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
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
def clean(self): cleaned_data = super(PayUForm, self).clean() cleaned_data['hash'] = generate_hash(cleaned_data) return cleaned_data
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}, ))