protected void btnBackHome_Click(object sender, EventArgs e) { GTICKBOL gb = new GTICKBOL(); if (Session["Seat_TransactionID"] != null) { String KeyNo = Session["Seat_TransactionID"].ToString(); GTICKBOL.ON_Session_out(KeyNo); } Server.Transfer("../../Default.aspx"); }
protected void btnBackHome_Click(object sender, EventArgs e) { if (Session["Seat_TransactionID"] != null) { String KeyNo = Session["Seat_TransactionID"].ToString(); GTICKBOL.ON_Session_out(KeyNo); } string password = "******"; String RoyalBal = Session["RBal"].ToString(); String RoyalPoints = Session["RPoints"].ToString(); String FN = Session["FirstName"].ToString(); String LN = Session["LastName"].ToString(); String Email = Session["EmailID"].ToString(); String MobNo = Session["MobileNo"].ToString(); String Address = Session["Address"].ToString(); String RegID = Session["Regid"].ToString(); Response.Redirect("TicketBooking.aspx?RemainingAmount=" + Server.UrlEncode(Common.Encrypt(RoyalBal, password)) + "&RemainingPoints=" + Server.UrlEncode(Common.Encrypt(RoyalPoints, password)) + "&FirstName=" + Server.UrlEncode(Common.Encrypt(FN, password)) + "&LastName=" + Server.UrlEncode(Common.Encrypt(LN, password)) + "&Email=" + Server.UrlEncode(Common.Encrypt(Email, password)) + "&Mobile=" + Server.UrlEncode(Common.Encrypt(MobNo, password)) + "&Address=" + Server.UrlEncode(Common.Encrypt(Address, password)) + "&MemberShipId=" + Server.UrlEncode(Common.Encrypt(RegID, password)), false); }
protected void Page_Load(object sender, EventArgs e) { System.Text.StringBuilder qstring = new System.Text.StringBuilder(); int qsCount = Request.QueryString.Count; #region processreceipt if (qsCount > 0 && Request.QueryString["sta"] != null && Request.QueryString["tid"] != null) { TransactionRecord tr = new TransactionRecord(); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write(string.Format("IDBI Web payment transaction response [{0}]", Request.QueryString["sta"])); tr.Status = Request.QueryString["sta"].ToString().Equals("50020"); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("IDBI Web payment transaction complete. Status: " + (tr.Status ? "Success" : "Failure")); string IpAddress = System.Configuration.ConfigurationManager.AppSettings["KoDTicketingIPAddress"]; #region parsereference String refNo = Request.QueryString["tid"].ToString(); string[] refTokens = refNo.Split('_'); KoDTicketing.GTICKV.LogEntry(refTokens[0], "Payment Getaway Response: " + (tr.Status ? "Success" : "Failure"), "14", ""); if (refTokens.Length < 2) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("IDBI Payment Response: Tokenization of reference string did not result in enough tokens. --> " + refNo); return; } Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("IDBI Transaction reference: " + refTokens[0].ToString()); tr.ReferenceNo = long.Parse(refTokens[0].ToString()); string[] refSubTokens = refTokens[1].Split('~'); if (refSubTokens.Length < 2) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("IDBI Payment Response: Tokenization of reference substring did not result in enough sub tokens. --> " + refTokens[1].ToString()); return; } Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("IDBI Booking ID: " + refSubTokens[0]); tr.BookingID = long.Parse(refSubTokens[0]); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("IDBI Agent Code: " + refSubTokens[1]); tr.AgentCode = refSubTokens[1]; #endregion parsereference Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("IDBI Amount: " + Request.QueryString["amt"].ToString()); tr.TotalAmount = decimal.Parse(Request.QueryString["amt"].ToString()); try { if (true == tr.Status) { HandleSuccess(ref tr, ref qstring); } else //failure { GTICKV.LogEntry(tr.ReferenceNo.ToString(), "Payment Not Successful", "25", tr.BookingID.ToString()); GTICKBOL.ON_Session_out(tr.ReferenceNo.ToString()); GTICKV.LogEntry(tr.ReferenceNo.ToString(), "Seats Unlocked", "26", tr.BookingID.ToString()); long BookingID = long.Parse(tr.ReferenceNo.ToString()); GTICKV.LogEntry(tr.ReferenceNo.ToString(), "User Press Cancel Button", "15", tr.BookingID.ToString()); DataTable dt = TransactionBOL.Select_Temptransaction_REFIDWISE(BookingID); if (dt != null && dt.Rows.Count > 0 && (Convert.ToDateTime(dt.Rows[0]["DateOfBooking"].ToString()) == Convert.ToDateTime(DateTime.Now.Date.ToShortDateString()) || Convert.ToDateTime(dt.Rows[0]["DateOfBooking"].ToString()) == Convert.ToDateTime(DateTime.Now.Date.AddDays(-1).ToShortDateString()))) { ReceiptUtils.PaymentNotCaptureResponse(tr.ReceiptNo.ToString(), dt.Rows[0], ""); } qstring.Append("?err=pay"); } } catch (Exception ex) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write(ex.Message); HandleFailure(tr); qstring.Append("?err=seat"); } } #endregion processreceipt Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("IDBI Transaction Complete. " + Request.QueryString["rec"]); Response.Redirect("../Print-Receipt.aspx" + qstring.ToString(), false); }
protected void Page_Load(object sender, EventArgs e) { System.Text.StringBuilder qstring = new System.Text.StringBuilder("?"); try { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Amex Return Receipt Page"); int qsCount = Request.QueryString.Count; if (qsCount > 0 && Request.QueryString["sta"] != null && Request.QueryString["tid"] != null) { TransactionRecord tr = new TransactionRecord(); #region parsereference //tr.Status = Request.QueryString["sta"].ToString().Equals("0"); tr.Status = false; if (Request.QueryString["enroll"].ToString().Equals("Y")) { if (Request.QueryString["sta"].ToString().Equals("0") && (Request.QueryString["Safecode"].ToString().Equals("Y") || Request.QueryString["Safecode"].ToString().Equals("A"))) { tr.Status = true; } } else { if (Request.QueryString["sta"].ToString().Equals("0") && Request.QueryString["response"].ToString().Equals("M")) { tr.Status = true; } } Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx Web payment transaction complete. Status: " + (tr.Status ? "Success" : "Failure")); String refNo = Request.QueryString["tid"].ToString(); string[] refTokens = refNo.Split('_'); KoDTicketing.GTICKV.LogEntry(refTokens[0], "Payment Getaway Response: " + (tr.Status ? "Success" : "Failure"), "14", ""); if (refTokens.Length < 2) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx Response from gateway received but query string does not have information about the transaction refernece: " + refNo); return; } tr.ReferenceNo = long.Parse(refTokens[0].ToString()); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx Transaction reference: " + tr.ReferenceNo.ToString()); string[] refSubTokens = refTokens[1].Split('~'); if (refTokens.Length < 2) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx Tokenization of query string did not result in enough sub tokens. --> " + refNo); return; } Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmExBooking ID: " + refSubTokens[0]); tr.BookingID = long.Parse(refSubTokens[0]); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx Agent Code: " + refSubTokens[1]); tr.AgentCode = refSubTokens[1]; #endregion parsereference Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx Amount: " + Request.QueryString["amt"].ToString()); tr.TotalAmount = decimal.Parse(Request.QueryString["amt"].ToString()); if (true == tr.Status) //successful { #region handlesuccess #region parsereceipt if (Request.QueryString["rec"] != null) { try { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx Receipt: " + Request.QueryString["rec"]); tr.ReceiptNo = Request.QueryString["rec"]; } catch (Exception ex) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Amex Resposne: Error parsing receipt."); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write(ex.Message); } } #endregion parsereceipt try { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEX Payment Successful. Ensuring the seats are reserved..."); //****** Promo code usecase start here ************ KODHelper objKODHelper = new KODHelper(); tr = objKODHelper.GetPromotionDetails(tr); tr.PaymentGateway = "AMEX"; //****** Promo code usecase END here ************ TransactionBOL.Update_PaymentStatus(tr); //Update payment status in temp transection table DataTable dt = TransactionBOL.Get_Transaction_Detail(tr); if (dt.Rows.Count == 0) { long BookingID1 = long.Parse(tr.ReferenceNo.ToString()); DataTable dt1 = TransactionBOL.Select_Temptransaction_REFIDWISE(BookingID1); if (dt1 != null && dt1.Rows.Count > 0 && (Convert.ToDateTime(dt1.Rows[0]["DateOfBooking"].ToString()) == Convert.ToDateTime(DateTime.Now.Date.ToShortDateString()) || Convert.ToDateTime(dt1.Rows[0]["DateOfBooking"].ToString()) == Convert.ToDateTime(DateTime.Now.Date.AddDays(-1).ToShortDateString()))) { ReceiptUtils.SuccessPaymentResponse(tr.ReceiptNo.ToString(), dt1.Rows[0], ""); } //ReceiptUtils.SuccessPaymentResponse(tr.BookingID.ToString(), tr.ReceiptNo); qstring.Append("?err=seat"); } else { bool seatsBooked = (int.Parse(dt.Rows[0]["SeatBooked"].ToString()) > 0); bool alreadyProcessed = (dt.Rows[0]["AlreadyProcessed"].ToString() == "1"); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write(string.Format("Amex [{0},{1},{2}] Seats Booked.", tr.ReferenceNo.ToString(), tr.BookingID.ToString(), tr.ReceiptNo)); if (!alreadyProcessed) { if (dt.Rows[0]["PromotionCode"].ToString() == "MMT") { DataTable dt1 = TransactionBOL.Select_MMTTransaction_REFIDWISE(tr.BookingID.ToString()); ReceiptUtils.MMTPaymentResponse(dt.Rows[0], dt1.Rows[0], tr.ReceiptNo.ToString(), tr.BookingID.ToString(), ConfigurationManager.AppSettings.Get("ConcertRefMailId2"), ConfigurationManager.AppSettings.Get("ConcertRefMailId3"), dt.Rows[0]["ShowTime"].ToString(), dt.Rows[0]["ShowDate"].ToString()); } else if (dt.Rows[0]["PromotionCode"].ToString() == "MANA") { DataTable dt2 = TransactionBOL.Select_MANATransaction_REFIDWISE(tr.BookingID.ToString()); ReceiptUtils.MANAPaymentResponse(dt.Rows[0], dt2.Rows[0], tr.ReceiptNo.ToString(), tr.BookingID.ToString(), ConfigurationManager.AppSettings.Get("ConcertRefMailId2"), ConfigurationManager.AppSettings.Get("ConcertRefMailId3"), dt.Rows[0]["ShowTime"].ToString(), dt.Rows[0]["ShowDate"].ToString()); } else if (dt.Rows[0]["PromotionCode"].ToString() == "MCOTHERS" || dt.Rows[0]["PromotionCode"].ToString() == "MCWORLD") { DataTable dt3 = TransactionBOL.Select_MCTransaction_REFIDWISE(tr.ReferenceNo.ToString()); ReceiptUtils.MCPaymentResponse(dt.Rows[0], dt3.Rows[0], tr.ReceiptNo.ToString(), tr.BookingID.ToString(), ConfigurationManager.AppSettings.Get("ConcertRefMailId2"), ConfigurationManager.AppSettings.Get("ConcertRefMailId3"), dt.Rows[0]["ShowTime"].ToString(), dt.Rows[0]["ShowDate"].ToString()); } else if (dt.Rows[0]["PromotionCode"].ToString() == "JHUMROOOFFER") { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Enter into jhumroo offer mail content"); ReceiptUtils.JHUMROOOFFERPaymentResponse(seatsBooked, dt.Rows[0], tr.ReferenceNo.ToString(), tr.BookingID.ToString(), tr.ReceiptNo, ""); } else { ReceiptUtils.SuccessPaymentResponse(seatsBooked, dt.Rows[0], tr.ReferenceNo.ToString(), tr.BookingID.ToString(), tr.ReceiptNo, ""); } Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Mail send through normal flow"); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Values are " + dt.Rows[0] + " , " + tr.ReferenceNo.ToString() + "," + tr.BookingID.ToString() + "," + tr.PromotionCode.ToString()); SendNotificationMailForHotels(seatsBooked, dt.Rows[0], tr.ReferenceNo.ToString(), tr.BookingID.ToString(), tr.ReceiptNo, tr.PromotionCode.ToString()); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Mail send through Hotel flow"); } qstring.Clear(); qstring.Append("?b="); qstring.Append((seatsBooked) ? dt.Rows[0]["BookingID"].ToString() : dt.Rows[0]["ID"].ToString()); KoDTicketing.GTICKV.LogEntry(tr.ReferenceNo.ToString(), "AMEX Payment successful...", "16", tr.BookingID.ToString(), tr.ReceiptNo.ToString()); } } catch (Exception ex) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Receipt: error getting transaction details - " + ex.Message); String _refNo = tr.ReferenceNo.ToString(); KoDTicketing.GTICKV.LogEntry(tr.ReferenceNo.ToString(), "Amex Error Occured -- Payment Not Successful", "27", tr.ReferenceNo.ToString()); long BookingID = long.Parse(tr.ReferenceNo.ToString()); try { DataTable dt = TransactionBOL.Select_Temptransaction_REFIDWISE(BookingID); if (dt.Rows.Count == 0) { ReceiptUtils.FailurePaymentResponse(); } else { ReceiptUtils.FailurePaymentResponse(dt.Rows[0]); } qstring.Append("?err=seat"); } catch (Exception ex1) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Error occurred processing unsuccessful payment through Amex..." + ex1.Message); } } #endregion handlesuccess } else //failure { #region handlefailure String _refNo = tr.ReferenceNo.ToString(); KoDTicketing.GTICKV.LogEntry(_refNo, "Payment Not Successful", "25", tr.BookingID.ToString()); GTICKBOL.ON_Session_out(_refNo); KoDTicketing.GTICKV.LogEntry(_refNo, "Seats Unlocked", "26", tr.BookingID.ToString()); long BookingID = long.Parse(tr.ReferenceNo.ToString()); DataTable dt = TransactionBOL.Select_Temptransaction_REFIDWISE(BookingID); if (dt != null && dt.Rows.Count > 0 && (Convert.ToDateTime(dt.Rows[0]["DateOfBooking"].ToString()) == Convert.ToDateTime(DateTime.Now.Date.ToShortDateString()) || Convert.ToDateTime(dt.Rows[0]["DateOfBooking"].ToString()) == Convert.ToDateTime(DateTime.Now.Date.AddDays(-1).ToShortDateString()))) { ReceiptUtils.PaymentNotCaptureResponse(tr.ReceiptNo.ToString(), dt.Rows[0], ""); } qstring.Append("err=pay"); #endregion handlefailure } } else { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Response from gateway received but query string does not have information about the transaction."); qstring.Append((qstring.Length == 1) ? "err=seat" : "&err=seat"); } } catch (Exception ex) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Exception thrown processing receipt. " + ex.Message); qstring.Append((qstring.Length == 1) ? "err=seat" : "&err=seat"); } Response.Redirect("~/Payment/Print-Receipt.aspx" + qstring.ToString(), false); }
protected void Page_Load(object sender, EventArgs e) { System.Text.StringBuilder qstring = new System.Text.StringBuilder("?"); try { int qsCount = Request.QueryString.Count; if (qsCount > 0 && Request.QueryString["sta"] != null && Request.QueryString["tid"] != null) { TransactionRecord tr = new TransactionRecord(); #region parsereference //tr.Status = Request.QueryString["sta"].ToString().Equals("0"); tr.Status = false; if (Request.QueryString["sta"].ToString().Equals("0") && (Request.QueryString["ResultCode"].ToString().Equals("Y") || Request.QueryString["ResultCode"].ToString().Equals("M"))) { tr.Status = true; } Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx Web payment transaction complete. Status: " + (tr.Status ? "Success" : "Failure")); String refNo = Request.QueryString["tid"].ToString(); string[] refTokens = refNo.Split('_'); if (refTokens.Length < 2) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx Response from gateway received but query string does not have information about the transaction refernece: " + refNo); return; } tr.ReferenceNo = long.Parse(refTokens[0].ToString()); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx Transaction reference: " + tr.ReferenceNo.ToString()); string[] refSubTokens = refTokens[1].Split('~'); if (refTokens.Length < 2) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx Tokenization of query string did not result in enough sub tokens. --> " + refNo); return; } Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmExBooking ID: " + refSubTokens[0]); tr.BookingID = long.Parse(refSubTokens[0]); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx Agent Code: " + refSubTokens[1]); tr.AgentCode = refSubTokens[1]; #endregion parsereference Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx Amount: " + Request.QueryString["amt"].ToString()); tr.TotalAmount = decimal.Parse(Request.QueryString["amt"].ToString()); if (true == tr.Status) //successful { #region handlesuccess #region parsereceipt if (Request.QueryString["rec"] != null) { try { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx Receipt: " + Request.QueryString["rec"]); tr.ReceiptNo = Request.QueryString["rec"]; } catch (Exception ex) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Amex Resposne: Error parsing receipt."); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write(ex.Message); } } #endregion parsereceipt try { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEX Payment Successful. Ensuring the seats are reserved..."); //****** Promo code usecase start here ************ KODHelper objKODHelper = new KODHelper(); tr = objKODHelper.GetRoyalCardDetails(tr); tr = objKODHelper.GetPromotionDetails(tr); //****** Promo code/RoyalCard usecase END here ************ if (tr.TopUpAmount != 0) { TransactionBOL.Top_UP(tr.TopUpTransactionId); } tr.AvailedAmount += tr.TopUpAmount; if (tr.AvailedAmount != 0 || tr.AvailedPoints != 0) { TransactionBOL.Redeem_Points(tr.RegId, tr.AvailedAmount, tr.AvailedPoints, tr.TotalAmount, tr.Play, tr.MobileNo, tr.ReferenceNo.ToString(), tr.TotalSeats); } //****** Promo code usecase END here ************ DataTable dt = TransactionBOL.Get_Transaction_Detail(tr); if (dt.Rows.Count == 0) { long BookingID1 = long.Parse(tr.ReferenceNo.ToString()); DataTable dt1 = TransactionBOL.Select_Temptransaction_REFIDWISE(BookingID1); ReceiptUtils.SuccessPaymentResponse(tr.ReceiptNo.ToString(), dt1.Rows[0], ""); //ReceiptUtils.SuccessPaymentResponse(tr.BookingID.ToString(), tr.ReceiptNo); } else { bool seatsBooked = (int.Parse(dt.Rows[0]["SeatBooked"].ToString()) > 0); bool alreadyProcessed = (dt.Rows[0]["AlreadyProcessed"].ToString() == "1"); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write(string.Format("Amex [{0},{1},{2}] Seats Booked.", tr.ReferenceNo.ToString(), tr.BookingID.ToString(), tr.ReceiptNo)); if (!alreadyProcessed) { ReceiptUtils.SuccessPaymentResponse(seatsBooked, dt.Rows[0], tr.ReferenceNo.ToString(), tr.BookingID.ToString(), tr.ReceiptNo, System.Configuration.ConfigurationManager.AppSettings["RoyalCardAdminID"]); } qstring.Clear(); qstring.Append("?b="); qstring.Append((seatsBooked) ? dt.Rows[0]["BookingID"].ToString() : dt.Rows[0]["ID"].ToString()); } } catch (Exception ex) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Receipt: error getting transaction details - " + ex.Message); } #endregion handlesuccess } else //failure { #region handlefailure String _refNo = tr.ReferenceNo.ToString(); KoDTicketing.GTICKV.LogEntry(_refNo, "Payment Not Successful", "17", tr.BookingID.ToString()); GTICKBOL.ON_Session_out(_refNo); KoDTicketing.GTICKV.LogEntry(_refNo, "Seats Unlocked", "18", tr.BookingID.ToString()); long BookingID = long.Parse(tr.ReferenceNo.ToString()); DataTable dt = TransactionBOL.Select_Temptransaction_REFIDWISE(BookingID); ReceiptUtils.PaymentNotCaptureResponse(tr.ReceiptNo.ToString(), dt.Rows[0], ""); qstring.Append("err=pay"); KoDTicketing.GTICKV.LogEntry(tr.ReferenceNo.ToString(), "Error Occured -- Payment Not Successful", "19", tr.BookingID.ToString()); //long BookingID = long.Parse(tr.ReferenceNo.ToString()); try { //DataTable dt = TransactionBOL.Select_Temptransaction_REFIDWISE(BookingID); if (dt.Rows.Count == 0) { ReceiptUtils.FailurePaymentResponse(); } else { ReceiptUtils.FailurePaymentResponse(dt.Rows[0]); } qstring.Append((qstring.Length == 1) ? "err=seat" : "&err=seat"); } catch (Exception ex) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Error occurred processing unsuccessful payment..." + ex.Message); } #endregion handlefailure } } else { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Response from gateway received but query string does not have information about the transaction."); qstring.Append((qstring.Length == 1) ? "err=seat" : "&err=seat"); } } catch (Exception ex) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Exception thrown processing receipt. " + ex.Message); qstring.Append((qstring.Length == 1) ? "err=seat" : "&err=seat"); } Response.Redirect("~/RoyalCard/Account/Payment/Print-Receipt.aspx" + qstring.ToString(), false); }
protected String UpdateResponse(String trackid, String reference, String result, String postdate, String auth) { System.Text.StringBuilder qstring = new System.Text.StringBuilder(); try { TransactionRecord tr = new TransactionRecord(); string IpAddress = System.Configuration.ConfigurationManager.AppSettings["KoDTicketingIPAddress"]; #region parsereference //HDFC Track ID: 1000109173_1100065925-WEB Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC Transaction reference: " + trackid); string refNo = trackid; string[] refTokens = refNo.Split(new char[] { '_', '-' }); if (refTokens.Length < 3) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC Payment Response: Tokenization of reference string did not result in enough sub tokens. --> " + refNo); return("?err=pay"); } tr.ReferenceNo = long.Parse(refTokens[0]); tr.BookingID = long.Parse(refTokens[1]); tr.AgentCode = refTokens[2]; Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write(string.Format("HDFC Payment Response: Reference[{0}], Booking ID [{1}], Agent Code [{2}] ", tr.ReferenceNo.ToString(), tr.BookingID.ToString(), tr.AgentCode)); #endregion parsereference if (Request["amt"] != null) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC Amount: " + Request["amt"].ToString()); tr.TotalAmount = decimal.Parse(Request["amt"].ToString()); } if (Request["paymentid"] != null) { try { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC Receipt: " + Request["paymentid"].ToString()); tr.ReceiptNo = Request["paymentid"].ToString(); } catch (Exception ex) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC Response: Error parsing receipt."); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write(ex.Message); } } if (result == "CAPTURED") { # region CAPTURED //string retURL = UpdateResponseByTranId(status, amount, transactionId); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC payment captured."); try { //****** Promo code usecase start here ************ KODHelper objKODHelper = new KODHelper(); tr = objKODHelper.GetPromotionDetails(tr); tr.PaymentGateway = "HDFC"; //****** Promo code usecase END here ************ TransactionBOL.Update_PaymentStatus(tr); //Update payment status in temp transection table DataTable dt = TransactionBOL.Get_Transaction_Detail(tr); if (dt != null && dt.Rows.Count > 0) { try { //String dbamount = dt.Rows[0]["TotalAmount"].ToString(); //String dbTrackID = dt.Rows[0]["BookingID"].ToString() + "_" + dt.Rows[0]["ReferenceNo"].ToString() + "-" + dt.Rows[0]["AgentCode"].ToString(); ////Validating the Booking Amount and Track ID //if (Request.QueryString["amt"].ToString() == dbamount && Request.QueryString["trackid"].ToString() == dbTrackID) //{ bool seatsBooked = (int.Parse(dt.Rows[0]["SeatBooked"].ToString()) > 0); bool alreadyProcessed = (dt.Rows[0]["AlreadyProcessed"].ToString() == "1"); if (seatsBooked) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Seats booked against HDFC payment."); } if (!alreadyProcessed) { if (dt.Rows[0]["PromotionCode"].ToString() == "MMT") { DataTable dt1 = TransactionBOL.Select_MMTTransaction_REFIDWISE(tr.BookingID.ToString()); ReceiptUtils.MMTPaymentResponse(dt.Rows[0], dt1.Rows[0], tr.ReceiptNo.ToString(), tr.BookingID.ToString(), ConfigurationManager.AppSettings.Get("ConcertRefMailId2"), ConfigurationManager.AppSettings.Get("ConcertRefMailId3"), dt.Rows[0]["ShowTime"].ToString(), dt.Rows[0]["ShowDate"].ToString()); } else if (dt.Rows[0]["PromotionCode"].ToString() == "MANA") { DataTable dt2 = TransactionBOL.Select_MANATransaction_REFIDWISE(tr.BookingID.ToString()); ReceiptUtils.MANAPaymentResponse(dt.Rows[0], dt2.Rows[0], tr.ReceiptNo.ToString(), tr.BookingID.ToString(), ConfigurationManager.AppSettings.Get("ConcertRefMailId2"), ConfigurationManager.AppSettings.Get("ConcertRefMailId3"), dt.Rows[0]["ShowTime"].ToString(), dt.Rows[0]["ShowDate"].ToString()); } else if (dt.Rows[0]["PromotionCode"].ToString() == "MCOTHERS" || dt.Rows[0]["PromotionCode"].ToString() == "MCWORLD") { DataTable dt3 = TransactionBOL.Select_MCTransaction_REFIDWISE(tr.ReferenceNo.ToString()); ReceiptUtils.MCPaymentResponse(dt.Rows[0], dt3.Rows[0], tr.ReceiptNo.ToString(), tr.BookingID.ToString(), ConfigurationManager.AppSettings.Get("ConcertRefMailId2"), ConfigurationManager.AppSettings.Get("ConcertRefMailId3"), dt.Rows[0]["ShowTime"].ToString(), dt.Rows[0]["ShowDate"].ToString()); } else if (dt.Rows[0]["PromotionCode"].ToString() == "JHUMROOOFFER") { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Enter into jhumroo offer mail content"); ReceiptUtils.JHUMROOOFFERPaymentResponse(seatsBooked, dt.Rows[0], tr.ReferenceNo.ToString(), tr.BookingID.ToString(), tr.ReceiptNo, ""); } else { ReceiptUtils.SuccessPaymentResponse(seatsBooked, dt.Rows[0], tr.ReferenceNo.ToString(), tr.BookingID.ToString(), tr.ReceiptNo, ""); } Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Mail send through normal flow"); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Values are " + dt.Rows[0] + " , " + tr.ReferenceNo.ToString() + "," + tr.BookingID.ToString() + "," + tr.PromotionCode.ToString()); SendNotificationMailForHotels(seatsBooked, dt.Rows[0], tr.ReferenceNo.ToString(), tr.BookingID.ToString(), tr.ReceiptNo, tr.PromotionCode.ToString()); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Mail send through Hotel flow"); } qstring.Append("?b="); qstring.Append((seatsBooked) ? dt.Rows[0]["BookingID"].ToString() : dt.Rows[0]["ID"].ToString()); GTICKV.LogEntry(tr.ReferenceNo.ToString(), "HDFC Payment successful...", "16", tr.BookingID.ToString(), tr.ReceiptNo.ToString()); //} //else //{ // Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC Amounts mismatch customer asked to call to confirm transaction."); // ReceiptUtils.SuccessPaymentResponse(tr.BookingID.ToString(), tr.ReceiptNo); //} } catch (Exception ex) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC Error processing receipt post booking. " + ex.Message); if (dt != null && dt.Rows.Count > 0 && (Convert.ToDateTime(dt.Rows[0]["DateOfBooking"].ToString()) == Convert.ToDateTime(DateTime.Now.Date.ToShortDateString()) || Convert.ToDateTime(dt.Rows[0]["DateOfBooking"].ToString()) == Convert.ToDateTime(DateTime.Now.Date.AddDays(-1).ToShortDateString()))) { ReceiptUtils.SuccessPaymentResponse(tr.ReceiptNo.ToString(), dt.Rows[0], ""); } //ReceiptUtils.SuccessPaymentResponse(tr.BookingID.ToString(), tr.ReceiptNo); qstring.Append((qstring.Length == 0) ? "?err=seat" : "&err=seat"); } } else { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC successful booking but ask customer to call");; long BookingID1 = long.Parse(tr.ReferenceNo.ToString()); DataTable dt2 = TransactionBOL.Select_Temptransaction_REFIDWISE(BookingID1); if (dt2 != null && dt2.Rows.Count > 0 && (Convert.ToDateTime(dt2.Rows[0]["DateOfBooking"].ToString()) == Convert.ToDateTime(DateTime.Now.Date.ToShortDateString()) || Convert.ToDateTime(dt2.Rows[0]["DateOfBooking"].ToString()) == Convert.ToDateTime(DateTime.Now.Date.AddDays(-1).ToShortDateString()))) { ReceiptUtils.SuccessPaymentResponse(tr.ReceiptNo.ToString(), dt2.Rows[0], ""); } //ReceiptUtils.SuccessPaymentResponse(tr.BookingID.ToString(), tr.ReceiptNo); qstring.Append((qstring.Length == 0) ? "?err=seat" : "&err=seat"); } return(qstring.ToString()); } catch (Exception ex) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC Receipt: error getting transaction details - " + ex.Message); qstring.Append((qstring.Length == 0) ? "?err=seat" : "&err=seat"); } //if you reach here problem occurred String _refNo = tr.ReferenceNo.ToString(); KoDTicketing.GTICKV.LogEntry(_refNo, "HDFC Payment Not Successful", "25", tr.BookingID.ToString()); GTICKBOL.ON_Session_out(_refNo); KoDTicketing.GTICKV.LogEntry(_refNo, "Seats Unlocked", "26", tr.BookingID.ToString()); qstring.Append("err=pay"); KoDTicketing.GTICKV.LogEntry(tr.ReferenceNo.ToString(), "HDFC Error Occurred -- Payment Not Successful", "27", tr.BookingID.ToString()); long BookingID = long.Parse(tr.ReferenceNo.ToString()); try { DataTable dt = TransactionBOL.Select_Temptransaction_REFIDWISE(BookingID); if (dt.Rows.Count == 0) { ReceiptUtils.FailurePaymentResponse(); } else { ReceiptUtils.FailurePaymentResponse(dt.Rows[0]); } qstring.Append((qstring.Length == 1) ? "err=seat" : "&err=seat"); return(qstring.ToString()); } catch (Exception ex) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC Error occurred processing unsuccessful payment..." + ex.Message); } Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC Final Call"); Response.Redirect(IpAddress + "Payment/FinalCall.aspx" + qstring.ToString(), false); #endregion } else { GTICKV.LogEntry(tr.ReferenceNo.ToString(), "User Press Cancel Button", "15", tr.BookingID.ToString()); GTICKV.LogEntry(tr.ReferenceNo.ToString(), "HDFC Payment Not Successful", "25", tr.BookingID.ToString()); GTICKBOL.ON_Session_out(tr.ReferenceNo.ToString()); GTICKV.LogEntry(tr.ReferenceNo.ToString(), "Seats Unlocked", "26", tr.BookingID.ToString()); long BookingID = long.Parse(tr.ReferenceNo.ToString()); DataTable dt = TransactionBOL.Select_Temptransaction_REFIDWISE(BookingID); if (dt != null && dt.Rows.Count > 0 && (Convert.ToDateTime(dt.Rows[0]["DateOfBooking"].ToString()) == Convert.ToDateTime(DateTime.Now.Date.ToShortDateString()) || Convert.ToDateTime(dt.Rows[0]["DateOfBooking"].ToString()) == Convert.ToDateTime(DateTime.Now.Date.AddDays(-1).ToShortDateString()))) { ReceiptUtils.PaymentNotCaptureResponse(tr.ReceiptNo.ToString(), dt.Rows[0], ""); } qstring.Append("?err=pay"); } }
protected void Page_Load(object sender, EventArgs e) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write(Decrypt(Request.QueryString["SessionId"])); agent = Session["Agent"].ToString(); if (Session[Decrypt(Request.QueryString["SessionId"])].ToString() != "") { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write(Decrypt(Request.QueryString["SessionId"])); if (Request.QueryString["SessionId"] != null || Request.QueryString["SessionId"] != "") { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write(Decrypt(Request.QueryString["SessionId"])); DataTable dtseatval = TransactionBOL.Select_ShowDetails(Convert.ToInt64(Decrypt(Request.QueryString["SessionId"].ToString()))); Session_value = dtseatval.Rows[0]["Seat_Val"].ToString(); sessionvalue = Session_value.Split(','); SeatVal = dtseatval.Rows[0]["Seat_Info"].ToString(); hotel = sessionvalue[10]; } } else { Session.Clear(); Response.Redirect("Default.aspx", false); } //*******************Promo**************************// decimal TotalAmount = 0; bool isfilled = false; if (Request.QueryString["SessionId"] != null || Request.QueryString["SessionId"].ToString() != "") { //BookingID = long.Parse(Session["Seat_TransactionID"].ToString()); //TotalAmount = GTICKBOL.Get_SeatPrice_SeatKeyNoWise(BookingID); //Session["TotalAmount"] = decimal.Truncate(TotalAmount); string[] strarr = null; if (Session_value != "") { strarr = Session_value.Split(','); isfilled = false; } if (strarr.Length < 6) { throw new Exception("Contact details page loading cannot be done as session value is no valid Session: " + (isfilled ? Session_value : Session_value)); } string category = strarr[8].ToString(); string SingleSeatPrice = strarr[9].ToString().Split('.')[1].ToString(); TotalAmount = Convert.ToDecimal(strarr[9].ToString().Split('.')[1].ToString()) * Convert.ToDecimal(strarr[5].ToString()); Session["TotalAmount"] = decimal.Truncate(TotalAmount); string ShowDate = ""; string[] datarr = strarr[2].ToString().Split('/'); //for live server ShowDate = datarr[1] + "/" + datarr[0] + "/" + datarr[2]; //for live server //string[] datarr = strarr[2].ToString().Split('-');// for dev/local //ShowDate = datarr[0] + "/" + datarr[1] + "/" + datarr[2]; // for dev/local string day = Convert.ToDateTime(ShowDate).DayOfWeek.ToString().ToUpper(); //ShowDate = datarr[1] + "/" + datarr[0] + "/" + datarr[2];//for local Session["day"] = day; if (strarr[10].ToString() == "") { lblttlAmt.Visible = true; lblttlAmt.Text = "Total Payable Amount : Rs. " + Session["TotalAmount"].ToString(); } } else { lblttlAmt.Visible = false; lblpayAmt.Visible = false; if (sessionvalue[12] != null) { String KeyNo = Decrypt(sessionvalue[12]); GTICKBOL.ON_Session_out(KeyNo); } Response.Redirect("Default.aspx", false); } }
protected void btnSubmit_Click(object sender, EventArgs e) { if (Decrypt(Request.QueryString["SessionId"]) == sessionvalue[12].ToString() && Session[Decrypt(Request.QueryString["SessionId"])] != "") { long transid = 0; long refno = 0; TransactionRecord tr = new TransactionRecord(); try { #region Session based if (Session_value != "" && Request.QueryString["SessionId"] != null) { try { string[] strarr; strarr = Session_value.Split(','); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write(string.Format("Transaction [{0}] ", strarr[12])); tr.BookingID = long.Parse(strarr[12]); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write(string.Format("Seats " + Session_value)); // tr.AgentCode = Session["AgentCode"].ToString(); tr.AgentCode = "Agent-" + Session["Agent"].ToString(); tr.Source = "Web-TicketingAgent"; tr.BookingType = "Web-TicketingAgent"; //tr.VoucherType = rblVoucher.SelectedValue; //tr.VoucherNo = ""; //tr.VoucherBookingID = 0; tr.CardType = ""; tr.PaymentGateway = "Web-TicketingAgent"; tr.CardNo = "1111222233334444"; tr.MobileNo = txtContactNo.Text; tr.Name = txtName.Text; tr.PaymentType = ""; tr.DateOfBooking = DateTime.Now.Date.ToShortDateString(); // tr.IsProcessed = ; // tr.PaymentStatus = ; tr.router = ""; tr.WantComplimentary = false; tr.WantComplimentaryDrop = false; tr.PlaceOfDrop = ""; tr.PlaceOfPick = ""; tr.TimeOfPick = ""; tr.TimeOfDrop = ""; tr.EmailID = txtEmailAddress.Text; tr.Status = false; tr.TimeOfBooking = DateTime.Now.ToShortTimeString(); tr.TotalSeats = int.Parse(strarr[5].ToString()); tr.Category = strarr[8]; tr.Location = strarr[6]; tr.Play = strarr[1]; string[] datarr = strarr[2].ToString().Split('/');//for live server //string[] datarr = strarr[2].ToString().Split('-');// for dev/local tr.ShowDate = datarr[1] + "/" + datarr[0] + "/" + datarr[2];//for live server //tr.ShowDate = datarr[0] + "/" + datarr[1] + "/" + datarr[2]; // for dev/local tr.ShowTime = strarr[7]; tr.Day = Convert.ToDateTime(tr.ShowDate).DayOfWeek.ToString(); //tr.ShowDate = datarr[1] + "/" + datarr[0] + "/" + datarr[2];//for local tr.Remark = ""; tr.TotalAmount = GTICKBOL.Get_SeatPrice_SeatKeyNoWise(tr.BookingID); tr.SeatInfo = SeatVal; tr.Address = txtAddress.Text.Trim(); tr.IP = GetIP(); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Date : " + tr.DateOfBooking); transid = TransactionBOL.Transaction_Temp_Insert(tr); tr.ReferenceNo = tr.BookingID; tr.BookingID = transid; refno = GTICKBOL.InsertAgentBooking_Details(tr); GTICKV.LogEntry(tr.ReferenceNo.ToString(), "Starting to write Information to temp Session Table", "7", ""); } catch (Exception ex) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Transaction Preparation Error: " + ex.Message); ClientScript.RegisterStartupScript(GetType(), "myscript", "<script>alert('Session Timeout. Please start the transaction again');window.location.href='Default.aspx';</script>"); } GTICKV.LogEntry(tr.ReferenceNo.ToString(), "Category : " + tr.Category + " ,Seat Info : " + tr.SeatInfo + ", Total Amt : " + tr.TotalAmount, "8", ""); if (transid > 0 && refno > 0) { Session["AgentCode"] = null; GTICKV.LogEntry(tr.BookingID.ToString(), "Data Successfully Written to Temp Transaction Table", "9", transid.ToString()); string URL = ""; DataTable dt = TransactionBOL.Get_Transaction_Detail(tr); if (dt != null && dt.Rows.Count > 0) { GTICKBOL.Update_AgentBooking(tr.BookingID); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Payment Redirection: " + URL); Response.Redirect("Print-Receipt.aspx?b=" + tr.BookingID.ToString(), false); Session[Decrypt(Request.QueryString["SessionId"])] = ""; bool seatsBooked = (int.Parse(dt.Rows[0]["SeatBooked"].ToString()) > 0); ReceiptUtils.SuccessPaymentResponse(seatsBooked, dt.Rows[0], tr.ReferenceNo.ToString(), tr.BookingID.ToString(), tr.ReceiptNo, ""); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Booking successfull" + tr.ReferenceNo); } else { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("booking failed" + tr.ReferenceNo); DataTable dt1 = TransactionBOL.Select_Temptransaction_REFIDWISE(tr.ReferenceNo); if (dt != null && dt.Rows.Count > 0) { ReceiptUtils.PaymentNotCaptureResponse(tr.ReceiptNo.ToString(), dt1.Rows[0], ""); } if (sessionvalue[12] != null) { String KeyNo = Decrypt(sessionvalue[12]); GTICKBOL.ON_Session_out(KeyNo); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("seat releasefor:" + KeyNo); } Session.Clear(); ClientScript.RegisterStartupScript(GetType(), "myscript", "<script>alert('Session Timeout. Please start the transaction again');window.location.href='Default.aspx';</script>"); } } else { lblMess.Text = "Session Timeout. Please start the transaction again by clicking \"Back\" button"; Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Session Timeout. Need to restart transaction"); ClientScript.RegisterStartupScript(GetType(), "myscript", "<script>alert('Session Timeout. Please start the transaction again');window.location.href='Default.aspx';</script>"); } } else //no Session[seat_val] { ClientScript.RegisterStartupScript(GetType(), "myscript", "<script>alert('Session Timeout. Please start the transaction again');window.location.href='Default.aspx';</script>"); } #endregion } catch (Exception ex) { GTICKV.LogEntry(tr.BookingID.ToString(), "Error Occurred - " + ex.Message.Replace("'", ""), "8", transid.ToString()); ClientScript.RegisterStartupScript(GetType(), "myscript", "<script>alert('Session Timeout. Please start the transaction again');window.location.href='Default.aspx';</script>"); } } else { Session.Clear(); ClientScript.RegisterStartupScript(GetType(), "myscript", "<script>alert('Session Timeout. Please start the transaction again');window.location.href='Default.aspx';</script>"); } }
protected String UpdateResponse(String trackid, String reference, String result, String postdate, String auth) { System.Text.StringBuilder qstring = new System.Text.StringBuilder(); try { TransactionRecord tr = new TransactionRecord(); string IpAddress = System.Configuration.ConfigurationManager.AppSettings["KoDTicketingIPAddress"]; #region parsereference //HDFC Track ID: 1000109173_1100065925-WEB Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC Transaction reference: " + trackid); string refNo = trackid; string[] refTokens = refNo.Split(new char[] { '_', '-' }); if (refTokens.Length < 3) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC Payment Response: Tokenization of reference string did not result in enough sub tokens. --> " + refNo); return("?err=pay"); } tr.ReferenceNo = long.Parse(refTokens[0]); tr.BookingID = long.Parse(refTokens[1]); tr.AgentCode = refTokens[2]; Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write(string.Format("HDFC Payment Response: Reference[{0}], Booking ID [{1}], Agent Code [{2}] ", tr.ReferenceNo.ToString(), tr.BookingID.ToString(), tr.AgentCode)); #endregion parsereference if (Request["amt"] != null) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC Amount: " + Request["amt"].ToString()); tr.TotalAmount = decimal.Parse(Request["amt"].ToString()); } if (Request["paymentid"] != null) { try { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC Receipt: " + Request["paymentid"].ToString()); tr.ReceiptNo = Request["paymentid"].ToString(); } catch (Exception ex) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC Response: Error parsing receipt."); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write(ex.Message); } } if (result == "CAPTURED") { # region CAPTURED //string retURL = UpdateResponseByTranId(status, amount, transactionId); Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC payment captured."); try { //****** Promo code/RoyalCard usecase start here ************ KODHelper objKODHelper = new KODHelper(); tr = objKODHelper.GetRoyalCardDetails(tr); tr = objKODHelper.GetPromotionDetails(tr); //****** Promo code/RoyalCard usecase END here ************ if (tr.TopUpAmount != 0) { TransactionBOL.Top_UP(tr.TopUpTransactionId); } tr.AvailedAmount += tr.TopUpAmount; if (tr.AvailedAmount != 0 || tr.AvailedPoints != 0) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Return Receipt HDFC 1 redeem"); TransactionBOL.Redeem_Points(tr.RegId, tr.AvailedAmount, tr.AvailedPoints, tr.TotalAmount, tr.Play, tr.MobileNo, tr.ReferenceNo.ToString(), tr.TotalSeats); } DataTable dt = TransactionBOL.Get_Transaction_Detail(tr); if (dt != null && dt.Rows.Count > 0) { try { //String dbamount = dt.Rows[0]["TotalAmount"].ToString(); //String dbTrackID = dt.Rows[0]["BookingID"].ToString() + "_" + dt.Rows[0]["ReferenceNo"].ToString() + "-" + dt.Rows[0]["AgentCode"].ToString(); ////Validating the Booking Amount and Track ID //if (Request.QueryString["amt"].ToString() == dbamount && Request.QueryString["trackid"].ToString() == dbTrackID) //{ bool seatsBooked = (int.Parse(dt.Rows[0]["SeatBooked"].ToString()) > 0); bool alreadyProcessed = (dt.Rows[0]["AlreadyProcessed"].ToString() == "1"); if (seatsBooked) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Seats booked against HDFC payment."); } if (!alreadyProcessed) { ReceiptUtils.SuccessPaymentResponse(seatsBooked, dt.Rows[0], tr.ReferenceNo.ToString(), tr.BookingID.ToString(), tr.ReceiptNo, System.Configuration.ConfigurationManager.AppSettings["RoyalCardAdminID"]); } qstring.Append("?b="); qstring.Append((seatsBooked) ? dt.Rows[0]["BookingID"].ToString() : dt.Rows[0]["ID"].ToString()); GTICKV.LogEntry(tr.ReferenceNo.ToString(), "HDFC Payment successful...", "10", tr.BookingID.ToString(), tr.ReceiptNo.ToString()); //} //else //{ // Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC Amounts mismatch customer asked to call to confirm transaction."); // ReceiptUtils.SuccessPaymentResponse(tr.BookingID.ToString(), tr.ReceiptNo); //} } catch (Exception ex) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC Error processing receipt post booking. " + ex.Message); ReceiptUtils.SuccessPaymentResponse(tr.ReceiptNo.ToString(), dt.Rows[0], ""); //ReceiptUtils.SuccessPaymentResponse(tr.BookingID.ToString(), tr.ReceiptNo); qstring.Append((qstring.Length == 0) ? "?err=seat" : "&err=seat"); } } else { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC successful booking but ask customer to call");; long BookingID1 = long.Parse(tr.ReferenceNo.ToString()); DataTable dt1 = TransactionBOL.Select_Temptransaction_REFIDWISE(BookingID1); ReceiptUtils.SuccessPaymentResponse(tr.ReceiptNo.ToString(), dt1.Rows[0], ""); //ReceiptUtils.SuccessPaymentResponse(tr.BookingID.ToString(), tr.ReceiptNo); qstring.Append((qstring.Length == 0) ? "?err=seat" : "&err=seat"); } return(qstring.ToString()); } catch (Exception ex) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC Receipt: error getting transaction details - " + ex.Message); qstring.Append((qstring.Length == 0) ? "?err=seat" : "&err=seat"); } //if you reach here problem occurred String _refNo = tr.ReferenceNo.ToString(); KoDTicketing.GTICKV.LogEntry(_refNo, "HDFC Payment Not Successful", "17", tr.BookingID.ToString()); GTICKBOL.ON_Session_out(_refNo); KoDTicketing.GTICKV.LogEntry(_refNo, "Seats Unlocked", "18", tr.BookingID.ToString()); qstring.Append("err=pay"); KoDTicketing.GTICKV.LogEntry(tr.ReferenceNo.ToString(), "HDFC Error Occurred -- Payment Not Successful", "19", tr.BookingID.ToString()); long BookingID = long.Parse(tr.ReferenceNo.ToString()); try { DataTable dt = TransactionBOL.Select_Temptransaction_REFIDWISE(BookingID); if (dt.Rows.Count == 0) { ReceiptUtils.FailurePaymentResponse(); } else { ReceiptUtils.FailurePaymentResponse(dt.Rows[0]); } qstring.Append((qstring.Length == 1) ? "err=seat" : "&err=seat"); return(qstring.ToString()); } catch (Exception ex) { Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC Error occurred processing unsuccessful payment..." + ex.Message); } Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("HDFC Final Call"); Response.Redirect(IpAddress + "RoyalCard/Account/Payment/FinalCall.aspx" + qstring.ToString(), false); #endregion } else { GTICKV.LogEntry(tr.ReferenceNo.ToString(), "HDFC Payment Not Successful", "17", tr.BookingID.ToString()); GTICKBOL.ON_Session_out(tr.ReferenceNo.ToString()); GTICKV.LogEntry(tr.ReferenceNo.ToString(), "Seats Unlocked", "18", tr.BookingID.ToString()); long BookingID = long.Parse(tr.ReferenceNo.ToString()); DataTable dt = TransactionBOL.Select_Temptransaction_REFIDWISE(BookingID); ReceiptUtils.PaymentNotCaptureResponse(tr.ReceiptNo.ToString(), dt.Rows[0], ""); qstring.Append("?err=pay"); } }