Exemplo n.º 1
0
        public static string GetCheckSumNew(string data)
        {
            BOBSymmetricCipherHelper sch = new BOBSymmetricCipherHelper();
            string checksum = "";

            checksum = sch.getMD5Hash(data);
            return(checksum);
        }
Exemplo n.º 2
0
        public static bool VarifyCheckSumNew(string[] data, string checksum)
        {
            BOBSymmetricCipherHelper sch = new BOBSymmetricCipherHelper();
            string strCheckSum           = data[data.Length - 1].Split('=')[1];
            string hashgendata           = data[0] + "&" + data[1] + "&" + data[2] + "&" + data[3] + "&" + data[4] + "&" + data[5] + "&" + data[6];
            string calculate_checksum    = sch.getSHA512Hash(hashgendata);

            logger.Info("Response Verify: " + (checksum + "|" + calculate_checksum));
            if (strCheckSum.Trim() == calculate_checksum.Trim())
            {
                return(true);
            }
            return(false);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Processes the response from bobibanking.
        /// </summary>
        /// <param name="msgResponse">The MSG response.</param>
        /// <remarks></remarks>
        //private void ProcessResponseFromBobibanking(string msgResponse)
        //{
        //    string rootFilePath = GetBobibankingKeyPath();
        //    string bobKeyFilePath = rootFilePath + Constants.bobibankingFileName.Trim();
        //    string msg = BobibankingEncryptionDecryption.Decrypt(msgResponse, bobKeyFilePath);
        //    var bobibankingResponse = new BobibankingResponse(msg);

        //    try
        //    {
        //        string StartCardnumber1 = "";
        //        string EndCardnumber1 = "";
        //        string EncCardNumber = "";
        //        double amount = 0;
        //        string PRN = string.Empty;
        //        string bid = string.Empty;
        //        string debtAccountNo = string.Empty;
        //        string itc = string.Empty;
        //        string retVal = string.Empty;
        //        bool transactionUpdateStatus = false;
        //        string accountNumber = CreditAccNumber; //changes by Sahil on 22'Dec14
        //        string cardnumber = CreditCardNumber.Decrypt(); // Added by Sahil on 22'Dec14
        //        if (cardnumber != "")
        //        {
        //            // cardnumber = cardnumber.Decrypt();
        //            StartCardnumber1 = cardnumber.Substring(0, 4);
        //            if (cardnumber.Length == 16)
        //                EndCardnumber1 = cardnumber.Substring(13, 3);
        //        }

        //        EncCardNumber = StartCardnumber1 + "XXXXXXXXX" + EndCardnumber1;


        //        string paymentStatus = bobibankingResponse.IsTransactionValid();
        //        amount = Convert.ToDouble(bobibankingResponse.AMT);
        //        if (bobibankingResponse.BID != null) bid = bobibankingResponse.BID;

        //        PRN = bobibankingResponse.PRN;
        //        debtAccountNo = bobibankingResponse.ACNT_NUM;
        //        itc = bobibankingResponse.ITC;


        //        retVal = SaveCardHolderPaymentStatusForBobibanking(null, PRN, accountNumber, amount, PID, bid, debtAccountNo, 2, paymentStatus);
        //        if (retVal != "")
        //            transactionUpdateStatus = true;

        //        //if (paymentStatus.ToLower() != success)
        //        //{
        //        //    LoadPage();
        //        //    //DisplayMessage(Constants.Error4, true);
        //        //    DisplayMessage(paymentStatus, true);
        //        //    return;
        //        //}

        //        if (paymentStatus.ToLower() == success && transactionUpdateStatus == true)
        //        {
        //            //DisplayMessage("For your card " + EncCardNumber + " having account number " + accountNumber.Decrypt() + ", Payment of Rs." + amount + " executed successfully.Your transaction number for further reference is : " + PRN + ".Thank you for payment.", true);
        //            DisplayMessage("The payment of Rs." + amount + " for card number " + EncCardNumber + "has been processed successfully. The transaction reference number is " + PRN + ".Thank you for payment.", true);
        //            divDisplayAll.Visible = false;
        //            lkbRedirectToCardStatement.Visible = true;
        //            btnPrint.Visible = true;
        //            btnPrintBillDesk.Visible = false;
        //            string dt = DateTime.Now.ToString();
        //            string amt = Convert.ToString(amount);
        //            string mode = "Bank of Baroda Net Banking";
        //            string[] objParams = { PRN, dt, EncCardNumber, CardHolderName, amt, mode };

        //            string fn = string.Format(queryString, objParams);
        //            string urlQueryString = EncryptDecryptQueryString.Encrypt(fn, qsk);
        //            btnPrint.Attributes.Add("OnClick", "return DisplaySlip('" + urlQueryString + "');");

        //        }
        //        else if (paymentStatus.ToLower() == success && transactionUpdateStatus == false)
        //        {
        //            DisplayMessage(Constants.Error5 + " Your transaction number for further reference is: " + PRN, true);
        //            divDisplayAll.Visible = false;
        //            lkbRedirectToCardStatement.Visible = true;
        //            btnPrint.Visible = true;
        //            btnPrintBillDesk.Visible = false;
        //            string dt = DateTime.Now.ToString();
        //            string amt = Convert.ToString(amount);
        //            string mode = "Bank of Baroda Net Banking";
        //            string[] objParams = { PRN, dt, EncCardNumber, CardHolderName, amt, mode };

        //            string fn = string.Format(queryString, objParams);
        //            string urlQueryString = EncryptDecryptQueryString.Encrypt(fn, qsk);
        //            btnPrint.Attributes.Add("OnClick", "return DisplaySlip('" + urlQueryString + "');");
        //        }
        //        else
        //        {
        //            LoadPage();
        //            DisplayMessage(paymentStatus, true);
        //            lkbRedirectToCardStatement.Visible = false;
        //            return;
        //        }

        //        //if (paymentStatus.ToLower() == success && retVal != "")
        //        //{
        //        //    System.Threading.Thread.Sleep(10000);
        //        //    CreateRequest(amount, "B");
        //        //}
        //    }
        //    catch (Exception)
        //    {
        //        LoadPage();
        //        DisplayMessage(Constants.GeneralErrorMessage, true);
        //        lkbRedirectToCardStatement.Visible = false;
        //        return;
        //    }
        //}


        private void ProcessResponseFromBobibankingNew(string msgResponse)
        {
            BOBSymmetricCipherHelper sch = new BOBSymmetricCipherHelper();
            string incom_data            = sch.getURLDecoded(msgResponse);
            string key = "29304E875832789229304E8758327892";

            try
            {
                string StartCardnumber1 = "";
                string EndCardnumber1   = "";
                string EncCardNumber    = "";
                double amount           = 0;
                string PRN                     = string.Empty;
                string bid                     = string.Empty;
                string PID                     = string.Empty;
                string debtAccountNo           = string.Empty;
                string ITC                     = string.Empty;
                string retVal                  = string.Empty;
                bool   transactionUpdateStatus = false;
                string BRN                     = string.Empty;
                string accountNumber           = CreditAccNumber; //changes by Sahil on 22'Dec14

                string cardnumber = CreditCardNumber.Decrypt();   // Added by Sahil on 22'Dec14

                if (cardnumber != "")
                {
                    // cardnumber = cardnumber.Decrypt();
                    StartCardnumber1 = cardnumber.Substring(0, 4);
                    if (cardnumber.Length == 16)
                    {
                        EndCardnumber1 = cardnumber.Substring(13, 3);
                    }
                }

                EncCardNumber = StartCardnumber1 + "XXXXXXXXX" + EndCardnumber1;


                byte[] inputStrBytes          = sch.decode(incom_data);
                String outp                   = Encoding.UTF8.GetString(Decrypt(inputStrBytes, GetRijndaelManaged(key)));
                var    bobibankingResponseNew = new BobibankingResponseNew(outp);

                string[] data        = outp.Split('&');
                string   strCheckSum = data[data.Length - 1].Split('=')[1];

                string hashgendata = data[0] + "&" + data[1] + "&" + data[2] + "&" + data[3] + "&" + data[4] + "&" + data[5] + "&" + data[6];

                string paymentStatus = bobibankingResponseNew.IsTransactionValidNew();



                amount        = Convert.ToDouble(bobibankingResponseNew.AMT);
                PRN           = data[2].Split('=')[1];
                debtAccountNo = data[6].Split('=')[1];
                ITC           = data[3].Split('=')[1];
                PID           = Constants.PID;
                BRN           = data[1].Split('=')[1];

                /// this is for Payment verification
                if (paymentStatus == "Success")
                {
                    paymentStatus = VerifyTranscation(bobibankingResponseNew.AMT, PRN, ITC, PID, BRN);
                }

                retVal = SaveCardHolderPaymentStatusForBobibanking(null, PRN, accountNumber, amount, PID, bid, debtAccountNo, 2, paymentStatus);
                if (retVal != "")
                {
                    transactionUpdateStatus = true;
                }

                if (paymentStatus.ToString() == "Success" && transactionUpdateStatus == true)
                {
                    DisplayMessage("The payment of Rs." + amount + " for card number " + EncCardNumber + "has been processed successfully. The transaction reference number is " + PRN + ".Thank you for payment.", true);
                    divDisplayAll.Visible = false;
                    lkbRedirectToCardStatement.Visible = true;
                    btnPrint.Visible         = true;
                    btnPrintBillDesk.Visible = false;
                    string   dt        = DateTime.Now.ToString();
                    string   amt       = Convert.ToString(amount);
                    string   mode      = "Bank of Baroda Net Banking";
                    string[] objParams = { PRN, dt, EncCardNumber, CardHolderName, amt, mode };

                    string fn             = string.Format(queryString, objParams);
                    string urlQueryString = EncryptDecryptQueryString.Encrypt(fn, qsk);
                    btnPrint.Attributes.Add("OnClick", "return DisplaySlip('" + urlQueryString + "');");
                }
                else if (paymentStatus.ToLower() == "Success" && transactionUpdateStatus == false)

                {
                    DisplayMessage(Constants.Error5 + " Your transaction number for further reference is: " + PRN, true);
                    divDisplayAll.Visible = false;
                    lkbRedirectToCardStatement.Visible = true;
                    btnPrint.Visible         = true;
                    btnPrintBillDesk.Visible = false;
                    string   dt        = DateTime.Now.ToString();
                    string   amt       = Convert.ToString(amount);
                    string   mode      = "Bank of Baroda Net Banking";
                    string[] objParams = { PRN, dt, EncCardNumber, CardHolderName, amt, mode };

                    string fn             = string.Format(queryString, objParams);
                    string urlQueryString = EncryptDecryptQueryString.Encrypt(fn, qsk);
                    btnPrint.Attributes.Add("OnClick", "return DisplaySlip('" + urlQueryString + "');");
                }
                else
                {
                    LoadPage();
                    if (paymentStatus == "InValidEmptyString")
                    {
                        paymentStatus = "InValid: Bobibanking Response Has Empty String. Please try again or contact Bank.";
                    }
                    else if (paymentStatus == "Invalidchecksum")
                    {
                        paymentStatus = "Invalid: " + "Payment not successful. Please try again or contact Bank.";
                    }
                    else if (paymentStatus == "Cancelled")
                    {
                        paymentStatus = "Bobibanking transaction is cancelled due to some reason.Please try again or contact Bank.";
                    }
                    DisplayMessage(paymentStatus, true);
                    lkbRedirectToCardStatement.Visible = false;
                    return;
                }
            }



            catch (Exception ex)
            { }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Create Payment Request
        /// </summary>
        /// <returns></returns>
        public string GetBobibankingPaymentRequest()
        {
            if (QSParameters.Keys.Count == 0)
            {
                QSParameters.Add("ShoppingMallTranFG.TRAN_CRN", ShoppingMallTranFGTRAN_CRN);
                QSParameters.Add("ShoppingMallTranFG.TXN_AMT", ShoppingMallTranFGTXN_AMT);
                QSParameters.Add("ShoppingMallTranFG.PID", ShoppingMallTranFGPID);
                QSParameters.Add("ShoppingMallTranFG.PRN", ShoppingMallTranFGPRN);
                QSParameters.Add("ShoppingMallTranFG.ITC", ShoppingMallTranFGITC);
                QSParameters.Add("ShoppingMallTranFG.ACC_NUM", ShoppingMallTranFGACNT_NUM);
                QSParameters.Add("ShoppingMallTranFG.SHOPPING_MALL_NAME_SHP", ShoppingMallTranFGNAME);
                //QSParameters.Add("ShoppingMallTranFG.SHP_USER_TYPE", ShoppingMallTranFGSHP_USER_TYPE);
            }

            ///STEP-1 Create Request String for QS
            string requestQS = "ShoppingMallTranFG.TRAN_CRN|ShoppingMallTranFG.TXN_AMT|ShoppingMallTranFG.PID|ShoppingMallTranFG.PRN|ShoppingMallTranFG.ITC|ShoppingMallTranFG.ACC_NUM|ShoppingMallTranFG.SHOPPING_MALL_NAME_SHP";

            string[] keysQS = requestQS.Split('|');
            foreach (var item in keysQS)
            {
                if (item.Trim() != "NA")
                {
                    requestQS = requestQS.Replace(item, item + "~" + QSParameters[item]);
                }
            }

            //_QS = "&"  + requestQS + "|" +  "ShoppingMallTranFG.CHECKSUM " + "= " + BobibankingCalculateCheckSum.GetCheckSum(requestQS);

            string strQS = string.Empty;
            BOBSymmetricCipherHelper sch = new BOBSymmetricCipherHelper();
            string hash_data             = "|ShoppingMallTranFG.CHECKSUM~" + sch.getSHA512Hash(requestQS);

            //strQS = requestQS + " | " + "ShoppingMallTranFG.CHECKSUM " + "~" + sch.getSHA512Hash(requestQS);
            strQS = requestQS + "|ShoppingMallTranFG.SHP_USER_TYPE~" + ShoppingMallTranFGSHP_USER_TYPE + hash_data;
            //string str = HttpUtility.UrlEncode(sch.encode(Encrypt(Encoding.UTF8.GetBytes(txt_hash.Text), GetRijndaelManaged(txt_key.Text))));

            //string requestEncData = sch.encrypt(strQS, "29304E875832789229304E8758327892"); 29304E875832789229304E8758327892
            QS = strQS;

            if (BasicParameters.Keys.Count == 0)
            {
                BasicParameters.Add("BobibankingPaymeGetwayURL", BobibankingPaymeGetwayURL);
                //Old code

                //BasicParameters.Add("BankId", BANK_ID);
                //BasicParameters.Add("PID", PID);
                //BasicParameters.Add("PRN", PRN);
                //BasicParameters.Add("AMT", AMT);
                //BasicParameters.Add("RU", RU);
                //BasicParameters.Add("ITC", ITC);
                //old code end

                BasicParameters.Add("FORMSGROUP_ID__", FORMSGROUP_ID__);
                BasicParameters.Add("AuthenticationFG.LOGIN_FLAG", AuthenticationFGLOGIN_FLAG);
                BasicParameters.Add("BANK_ID", BANK_ID);
                BasicParameters.Add("AuthenticationFG.USER_TYPE", AuthenticationFGUSER_TYPE);
                BasicParameters.Add("AuthenticationFG.MENU_ID", AuthenticationFGMENU_ID);
                BasicParameters.Add("AuthenticationFG.CALL_MODE", AuthenticationFGCALL_MODE);
                BasicParameters.Add("RU", RU);
                BasicParameters.Add("CATEGORY_ID", CATEGORY_ID);
                //BasicParameters.Add("QS", QS);
            }

            //encrypt string


            ///STEP-1 Create Request String
            //string request = "BankId|PID|PRN|AMT|RU|ITC";
            string request = "FORMSGROUP_ID__&AuthenticationFG.LOGIN_FLAG&BANK_ID&AuthenticationFG.USER_TYPE&AuthenticationFG.MENU_ID&AuthenticationFG.CALL_MODE&RU&CATEGORY_ID";


            //string re = "FORMSGROUP_ID__= AuthenticationFG & __START_TRAN_FLAG__ = Y & FG_BUTTONS__ = LOAD & ACTION.LOAD = Y & AuthenticationFG.LOGIN_FLAG = 1 & BANK_ID = 012 & AuthenticationFG.USER_TYPE = 1 & AuthenticationFG.MENU_ID = CIMSHP & AuthenticationFG.CALL_MODE = 2 & RU
            string[] keys = request.Split('&');
            foreach (var item in keys)
            {
                if (item.Trim() != "NA")
                {
                    request = request.Replace(item, item + "=" + BasicParameters[item]);
                }
            }
            logger.Info("Request Parameter String: " + request);

            string finalString = string.Empty;

            ///STEP-2 Calculate Checksum Using Key And Append
            //finalString = request + "&QS=" + QS;
            finalString = request + "&QS=" + HttpUtility.UrlEncode(sch.encode(Encrypt(Encoding.UTF8.GetBytes(strQS), GetRijndaelManaged("29304E875832789229304E8758327892"))));
            //finalString = request;
            logger.Info("Request With CheckSum: " + finalString);
            return(finalString);
        }