def handlerequest(request): #paytm will send POST request herre if request.method == 'POST': form = request.POST response_dict = {} for i in form.keys(): response_dict[i] = form[i] if i == 'CHECKSUMHASH': checksum = form[i] verify = Checksum.verify_checksum(response_dict, MKEY, checksum) print(response_dict) if verify: if response_dict['RESPCODE'] == '01': print('order successful') idlist = response_dict['ORDERID'].split('-') for i in idlist: ord = Orders.objects.get(id=i) ord.payment_status = 'Paid' ord.transaction_id = response_dict['TXNID'] ord.save() else: print('order was not successful because' + response_dict['RESPMSG']) return render(request, 'app/payment_status.html', {'response': response_dict}) else: return redirect(menu)
def VerifyPaytmResponse(response): response_dict = {} if response.method == "POST": data_dict = {} for key in response.POST: data_dict[key] = response.POST[key] MID = data_dict['MID'] ORDERID = data_dict['ORDERID'] verify = Checksum.verify_checksum(data_dict, settings.PAYTM_MERCHANT_KEY, data_dict['CHECKSUMHASH']) if verify: STATUS_URL = settings.PAYTM_TRANSACTION_STATUS_URL headers = { 'Content-Type': 'application/json', } data = '{"MID":"%s","ORDERID":"%s"}' % (MID, ORDERID) check_resp = requests.post(STATUS_URL, data=data, headers=headers).json() if check_resp['STATUS'] == 'TXN_SUCCESS': response_dict['verified'] = True response_dict['paytm'] = check_resp return (response_dict) else: response_dict['verified'] = False response_dict['paytm'] = check_resp return (response_dict) else: response_dict['verified'] = False return (response_dict) response_dict['verified'] = False return response_dict
def hendlerequest(request): #paytm will send payment reques #paytm will send payment reques form = request.POST response_dict = {} for i in form.keys(): response_dict[i] = form[i] if i == 'CHECKSUMHASH': checksum = form[i] print("res:====", response_dict) verify = Checksum.verify_checksum(response_dict, MERCHANT_KEY, checksum) if verify: if response_dict['RESPCODE'] == '01': response_dict['thank'] = True print('order successful') else: Order = order.objects.filter( order_id=(int(response_dict['ORDERID']) - 478997)) print(Order) update = OrderUpdate.objects.filter( order_id=(int(response_dict['ORDERID']) - 478997)) Order.delete() update.delete() print('order unsuccessfull because', response_dict['RESPMSG']) else: print("order unsuccessful because not verify_checksum", response_dict['RESPMSG']) return render(request, 'shop/paymentstatus.html', {'response': response_dict})
def response(request): if request.method == "POST": MERCHANT_KEY = settings.PAYTM_MERCHANT_KEY data_dict = {} for key in request.POST: data_dict[key] = request.POST[key] verify = Checksum.verify_checksum(data_dict, MERCHANT_KEY, data_dict['CHECKSUMHASH']) if verify: PaytmHistory.objects.create(user=request.user, **data_dict) return render(request,"response.html",{"paytm":data_dict}) else: return HttpResponse("checksum verify failed") return HttpResponse(status=200)
def verify_order(self, request): self.request = request self.paytm_dict = request.POST checksumhash, self.paytm_params = self.get_checksumhash() is_checksum_valid = Checksum.verify_checksum(self.paytm_params, self.PAYTM_MERCHANT_KEY, checksumhash) self.order = self.get_order() self.update_order() if not is_checksum_valid: self.order.status = self.order.Status.FRAUD self.order.save() return is_checksum_valid
def handlerequest(request): form = request.POST response_dict = {} for i in form.keys(): response_dict[i] = form[i] if i == 'CHECKSUMHASH': checksum = form[i] verify = Checksum.verify_checksum(response_dict, MERCHANT_KEY, checksum) if verify: if response_dict['RESPCODE'] == '01': print('order successful') else: print('order was not successful because' + response_dict['RESPMSG']) return render(request, 'shopping.html', {'response': response_dict})
def handlerequest(request): # Paytem will send you post request form = request.POST response_dict = {} for i in form.keys(): response_dict[i] = form[i] if i == 'CHECKSUMHASH': checksum = form[i] verify = Checksum.verify_checksum(response_dict, MERCHANT_KEY, checksum) if verify: if response_dict['RESPCODE'] == '01': print('order successful') else: print('Order was not successful beacuse ' + response_dict['RESPMSG']) return render(request, 'paymentstatus.html', {'response': response_dict})
def VerifyPaytmResponse(response): response_dict = {} if response.method == "POST": data_dict = {} for key in response.POST: data_dict[key] = response.POST[key] verify = Checksum.verify_checksum(data_dict, MERCHANT_KEY, data_dict['CHECKSUMHASH']) if verify: response_dict['verified'] = True response_dict['paytm'] = data_dict return response_dict else: response_dict['verified'] = False return response_dict response_dict['verified'] = False return response_dict
def orderDone(request): logger.info("POST Payment Request Received...") response = request.POST paytmChecksum = "" paytmParams = {} for key, value in response.items(): if key == 'CHECKSUMHASH': paytmChecksum = value else: paytmParams[key] = value try: order = Order.objects.get(order_id = paytmParams["ORDERID"]) except Order.DoesNotExist : logger.debug("Order Does Not Exist..") # Verify checksum try: isValidChecksum = Checksum.verify_checksum(paytmParams, MERCHANT_KEY, paytmChecksum) except: logger.warning("Wrong Checksum...") order.delete() return redirect('homepage') if isValidChecksum: logger.debug("Checksum Matched...") if paytmParams['RESPCODE'] != '01': logger.debug(paytmParams["STATUS"]) order.delete() logger.info("Payment UnSuccessful!!!!") return redirect('homepage') else: logger.debug("Payment Successful...") order.transaction_id = paytmParams['TXNID'] order.status = 2 order.save() else: logger.debug(paytmParams["STATUS"]) order.delete() return HttpResponse("CHECK SUM MISMATCHED !!!!") return render(request,'pizza/tracker.html')
def handlerequest(request): # paytm will send you post request here form = request.POST print(form) response_dict = {} for i in form.keys(): response_dict[i] = form[i] if i == "CHECKSUMHASH": checksum = form[i] verify = Checksum.verify_checksum(response_dict, MERCHANT_KEY, checksum) if verify: if response_dict["RESPCODE"] == "01": print("order successful") order = form["ORDERID"] print(form["ORDERID"]) user_id_trail = order.index("_") user_id = order[user_id_trail + 1 :] user = User.objects.get(id=user_id) username = user.username cart = Cart.objects.filter(username=username) for item in cart: order = Orders() prod = Product.objects.get(id=item.product_id) order.user_id = user.id order.product_id = prod.id order.price = prod.price order.payement_id = form["ORDERID"] order.save() pay_id = form["ORDERID"] pay = Payement.objects.get(id=pay_id) pay.status = "Success" pay.save() messages.success(request, "your order has been placed") Cart.objects.filter(username=username).delete() return redirect("home") else: messages.error(request, response_dict["RESPMSG"]) return redirect("home") print("order was not successful because" + response_dict["RESPMSG"]) else: messages.error(request, "order is not been placed! Try again!") return redirect("home")
def handlerequest(request): form = request.POST response_dict = {} for i in form.keys(): response_dict[i] = form[i] if i == 'CHECKSUMHASH': checksum = form[i] verify = Checksum.verify_checksum(response_dict, Test_Merchant_Key, checksum) if verify: if response_dict['RESPCODE'] == '01': print("ok") else: print("not ok") print('order was not successful because' + response_dict['RESPMSG']) return render(request, 'lookspace_app/paymentstatus.html', {'response': response_dict})
def response(request): try: if request.method == "POST": MERCHANT_KEY = settings.PAYTM_MERCHANT_KEY data_dict = {} for key in request.POST: data_dict[key] = request.POST[key] verify = Checksum.verify_checksum(data_dict, MERCHANT_KEY, data_dict['CHECKSUMHASH']) if verify: user_obj = User.objects.get(username = request.COOKIES.get('ucno')) PaytmHistory.objects.create(user = user_obj, **data_dict) return redirect('/profile/orders') else: return HttpResponse("checksum verify failed") return HttpResponse(status=200) except Exception as e: print('error in paytm respose', str(e)) return HttpResponse(status=400)
def handlerequest(request): uid = request.user.id oid = request.session.get('oid') # paytm will send you post request here form = request.POST response_dict = {} for i in form.keys(): response_dict[i] = form[i] if i == 'CHECKSUMHASH': checksum = form[i] verify = Checksum.verify_checksum(response_dict, MERCHANT_KEY, checksum) if verify: if response_dict['RESPCODE'] == '01': global res res = response_dict return redirect('/success/') else: print('order was not successful because' + response_dict['RESPMSG']) return render(request, 'paymentstatus.html', {'response': response_dict})
def qrcode(request): print("Payment request received!! \n") pprint(dict(request.POST)) form = request.POST paytmChecksum = "" paytmParams = {} for key, value in form.items(): if key == 'CHECKSUMHASH': paytmChecksum = value else: paytmParams[key] = value if paytmChecksum == "": raise ValueError("You are a fraud!!!!") # Verify checksum isValidChecksum = Checksum.verify_checksum(paytmParams, MERCHANT_KEY, paytmChecksum) if isValidChecksum: print("Checksum Matched") else: print("Checksum Mismatched") if paytmParams['RESPCODE'] != '01': return HttpResponse("Payment not successful!!!!") ticket = Ticket.objects.get(ticket_id=paytmParams['ORDERID']) message = { 'boarding_station': ticket.boarding_station_code, 'destination_station': ticket.destination_station_code, 'no_of_tickets': ticket.no_of_tickets, } context = dict(my_options=QRCodeOptions(size='m', version='5', image_format="png"), message=message) return render(request, 'booking/qrcode.html', context=context)
def paytmsentposturl(request): # post request hitted here by paytm data = request.POST print(data) return_response_by_paytm = {} for i in data.keys(): return_response_by_paytm[i] = data[i] if i == 'CHECKSUMHASH': checksum = data[i] verify = Checksum.verify_checksum(return_response_by_paytm, MERCHANT_KEY, checksum) PAYTMRESPONSE = after_payment( orderid=return_response_by_paytm['ORDERID'], transaction_amount=return_response_by_paytm['TXNAMOUNT'], transaction_date=return_response_by_paytm['TXNDATE'], currency=return_response_by_paytm['CURRENCY'], status=return_response_by_paytm['STATUS'], response_code=return_response_by_paytm['RESPCODE'], response_message=return_response_by_paytm['RESPMSG'], bank_transaction_id=return_response_by_paytm['BANKTXNID'], transaction_id=return_response_by_paytm['TXNID'], checksum=verify) PAYTMRESPONSE.save() orderupdates = orderupdate(orederid=return_response_by_paytm['ORDERID'], update="Order Placed Successfuly on" + return_response_by_paytm['TXNDATE']) orderupdates.save() if (verify): if return_response_by_paytm['RESPCODE'] == '01': return render(request, "paytmsatuspage.html", {'paytmresponse': return_response_by_paytm}) print("order successful") else: return render(request, "paytmsatuspage.html", {'paytmresponse': return_response_by_paytm}) else: # if checksum not verify return render(request, "someonechangesmid.html")
def handlepayment(request): form = request.POST response_dict = {} for i in form.keys(): response_dict[i] = form[i] if i == 'CHECKSUMHASH': checksum = form[i] verify = Checksum.verify_checksum(response_dict, MERCHANT_KEY, checksum) if verify: if response_dict['RESPCODE'] == '01': order_id = int(response_dict['ORDERID']) order = Order.objects.get(order_id=order_id) order.completed = True order.trans_mode = "P" order.transaction_id = response_dict['TXNID'] order.save() return render(request, 'shop/complete.html', {'response': response_dict}) else: return render(request, 'shop/complete.html', {'response': response_dict}) else: return redirect('cart')
def handlerrequest(request): #paytm will handle post request here form = cgi.FieldStorage() response_dict = {} for i in form.keys(): response_dict[i] = form[i] if i == 'CHECKSUMHASH': checksum = form[i] verify = Checksum.verify_checksum(response_dict, MERCHANT_KEY, checksum) if verify: if response_dict['RESPCODE'] == '01': print('order successful') return render(request, 'cart/paymentstatus.html', {'response': response_dict}) else: print('order was not successful because' + response_dict['RESPMSG']) return render(request, 'cart/paymentstatus.html', {'response': response_dict}) return render(request, 'cart/paymentstatus.html', {'response': response_dict})
def verify_payment(request): if request.method == "POST": mess = {} mid = request.POST["MID"] txn_id = request.POST["TXNID"] order_id = request.POST["ORDERID"] bank_txn_id = request.POST["BANKTXNID"] txn_amount = request.POST["TXNAMOUNT"] status = request.POST["STATUS"] resp_code = request.POST["RESPCODE"] resp_msg = request.POST["RESPMSG"] txn_date = request.POST["TXNDATE"] gateway_name = request.POST["GATEWAYNAME"] bank_name = request.POST["BANKNAME"] payment_mode = request.POST["PAYMENTMODE"] checksumhash = request.POST["CHECKSUMHASH"] paytmChecksum = "" paytmParams = {} for key, value in request.POST.items(): if key == 'CHECKSUMHASH': paytmChecksum = value else: paytmParams[key] = value isValidChecksum = Checksum.verify_checksum(paytmParams, '2aqz4AwRzEM#8Wl@', paytmChecksum) msg = {} if isValidChecksum: msg['check_verify'] = True else: msg['check_verify'] = False order = Order.objects.get(order_id=order_id) if order.price != float(txn_amount): return HttpResponse("Something wrong happened") if not success(mid, order_id): return HttpResponse('Tampering with POST data') if status == "TXN_SUCCESS": msg['txn'] = "Success" order.transaction_id = txn_id order.active = True order.deliver = True order.save() elif status == "TXN_FAILURE": msg["txn"] = "Failure" elif status == "PENDING": msg["txn"] = "Pending" user = User.objects.get(order__order_id=order_id) t = TransactionDetails() t.GATEWAYNAME = gateway_name t.RESPMSG = resp_msg t.BANKNAME = bank_name t.PAYMENTMODE = payment_mode t.RESPCODE = resp_code t.TXNID = txn_id t.TXNAMOUNT = txn_amount t.ORDERID = order_id t.STATUS = status t.BANKTXNID = bank_txn_id t.TXNDATE = txn_date t.CHECKSUMHASH = checksumhash t.user = user t.save() return render(request, 'payments/done.html', {'msg': msg}) else: return HttpResponse("Wrong Page Go Back")