示例#1
0
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)
示例#2
0
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
示例#3
0
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})
示例#4
0
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)
示例#5
0
    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
示例#6
0
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})
示例#7
0
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
示例#9
0
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')
示例#10
0
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")
示例#11
0
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})
示例#12
0
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)
示例#13
0
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})
示例#14
0
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)
示例#15
0
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")
示例#16
0
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')
示例#17
0
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})
示例#18
0
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")