public static string GetCheckSumNew(string data) { BOBSymmetricCipherHelper sch = new BOBSymmetricCipherHelper(); string checksum = ""; checksum = sch.getMD5Hash(data); return(checksum); }
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); }
/// <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) { } }
/// <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); }