public ActionResult BankCallback() { bool Run_bpReversalRequest = false; long saleReferenceId = -999; long saleOrderId = -999; string resultCode_bpPayRequest; BankMellat bankmellat = new BankMellat(); try { saleReferenceId = long.Parse(Request.Params["SaleReferenceId"].ToString()); saleOrderId = long.Parse(Request.Params["SaleOrderId"].ToString()); resultCode_bpPayRequest = Request.Params["ResCode"].ToString(); //Result Code string resultCode_bpinquiryRequest = "-9999"; string resultCode_bpSettleRequest = "-9999"; string resultCode_bpVerifyRequest = "-9999"; if (int.Parse(resultCode_bpPayRequest) == (int)BankMellat.MellatBankReturnCode.ﺗﺮاﻛﻨﺶ_ﺑﺎ_ﻣﻮﻓﻘﻴﺖ_اﻧﺠﺎم_ﺷﺪ) { resultCode_bpVerifyRequest = bankmellat.VerifyRequest(saleOrderId, saleOrderId, saleReferenceId); if (string.IsNullOrEmpty(resultCode_bpVerifyRequest)) { resultCode_bpinquiryRequest = bankmellat.InquiryRequest(saleOrderId, saleOrderId, saleReferenceId); if (int.Parse(resultCode_bpinquiryRequest) != (int)BankMellat.MellatBankReturnCode.ﺗﺮاﻛﻨﺶ_ﺑﺎ_ﻣﻮﻓﻘﻴﺖ_اﻧﺠﺎم_ﺷﺪ) { //the transactrion faild TempData["Message"] = bankmellat.DesribtionStatusCode(int.Parse(resultCode_bpinquiryRequest.Replace("_", " "))); Run_bpReversalRequest = true; } } if ((int.Parse(resultCode_bpVerifyRequest) == (int)BankMellat.MellatBankReturnCode.ﺗﺮاﻛﻨﺶ_ﺑﺎ_ﻣﻮﻓﻘﻴﺖ_اﻧﺠﺎم_ﺷﺪ) || (int.Parse(resultCode_bpinquiryRequest) == (int)BankMellat.MellatBankReturnCode.ﺗﺮاﻛﻨﺶ_ﺑﺎ_ﻣﻮﻓﻘﻴﺖ_اﻧﺠﺎم_ﺷﺪ)) { resultCode_bpSettleRequest = bankmellat.SettleRequest(saleOrderId, saleOrderId, saleReferenceId); if ((int.Parse(resultCode_bpSettleRequest) == (int)BankMellat.MellatBankReturnCode.ﺗﺮاﻛﻨﺶ_ﺑﺎ_ﻣﻮﻓﻘﻴﺖ_اﻧﺠﺎم_ﺷﺪ) || (int.Parse(resultCode_bpSettleRequest) == (int)BankMellat.MellatBankReturnCode.ﺗﺮاﻛﻨﺶ_Settle_ﺷﺪه_اﺳﺖ)) { TempData["Message"] = "تراکنش شما با موفقیت انجام شد "; TempData["Message"] += Environment.NewLine + " لطفا شماره پیگیری را یادداشت نمایید" + Environment.NewLine + saleReferenceId; } else { TempData["Message"] = bankmellat.DesribtionStatusCode(int.Parse(resultCode_bpSettleRequest.Replace("_", " "))); Run_bpReversalRequest = true; } // Save information to Database... var factor = db.Factors.FirstOrDefault(f => f.NumberFactor == saleOrderId.ToString()); if (factor != null) { var user = db.Users.Find(factor.UserId); factor.IsPay = true; factor.DatePay = strTodey; factor.TimePay = System.DateTime.Now.ToShortTimeString(); factor.NumberControl = saleReferenceId.ToString(); db.SaveChanges(); SmsSender sms = new SmsSender(); sms.Send(user.Mobile, "صورتحساب جدید شما پرداخت شد. شماره پیگیری " + factor.NumberControl + "می باشد"); if (user != null) { System.Web.Security.FormsAuthentication.SetAuthCookie(user.Mobile, false); } } } else { TempData["Message"] = bankmellat.DesribtionStatusCode(int.Parse(resultCode_bpVerifyRequest.Replace("_", " "))); Run_bpReversalRequest = true; } } else { TempData["Message"] = bankmellat.DesribtionStatusCode(int.Parse(resultCode_bpPayRequest)).Replace("_", " "); Run_bpReversalRequest = true; } return(RedirectToAction("ShowError", "Payment")); } catch (Exception Error) { TempData["Message"] = "متاسفانه خطایی رخ داده است، لطفا مجددا عملیات خود را انجام دهید در صورت تکرار این مشکل را به بخش پشتیبانی اطلاع دهید"; // Save and send Error for admin user Run_bpReversalRequest = true; return(RedirectToAction("ShowError", "Payment")); } finally { if (Run_bpReversalRequest) //ReversalRequest { if (saleOrderId != -999 && saleReferenceId != -999) { bankmellat.bpReversalRequest(saleOrderId, saleOrderId, saleReferenceId); } // Save information to Database... } } }
public ActionResult BankCallback() { bool Run_bpReversalRequest = false; long saleReferenceId = -999; long saleOrderId = -999; string resultCode_bpPayRequest; BankMellat bankmellat = new BankMellat(); try { saleReferenceId = long.Parse(Request.Params["SaleReferenceId"].ToString()); saleOrderId = long.Parse(Request.Params["SaleOrderId"].ToString()); resultCode_bpPayRequest = Request.Params["ResCode"].ToString(); //Result Code string resultCode_bpinquiryRequest = "-9999"; string resultCode_bpSettleRequest = "-9999"; string resultCode_bpVerifyRequest = "-9999"; if (int.Parse(resultCode_bpPayRequest) == (int)BankMellat.MellatBankReturnCode.ﺗﺮاﻛﻨﺶ_ﺑﺎ_ﻣﻮﻓﻘﻴﺖ_اﻧﺠﺎم_ﺷﺪ) { resultCode_bpVerifyRequest = bankmellat.VerifyRequest(saleOrderId, saleOrderId, saleReferenceId); if (string.IsNullOrEmpty(resultCode_bpVerifyRequest)) { resultCode_bpinquiryRequest = bankmellat.InquiryRequest(saleOrderId, saleOrderId, saleReferenceId); if (int.Parse(resultCode_bpinquiryRequest) != (int)BankMellat.MellatBankReturnCode.ﺗﺮاﻛﻨﺶ_ﺑﺎ_ﻣﻮﻓﻘﻴﺖ_اﻧﺠﺎم_ﺷﺪ) { //the transactrion faild TempData["Message"] = bankmellat.DesribtionStatusCode(int.Parse(resultCode_bpinquiryRequest.Replace("_", " "))); Run_bpReversalRequest = true; } } if ((int.Parse(resultCode_bpVerifyRequest) == (int)BankMellat.MellatBankReturnCode.ﺗﺮاﻛﻨﺶ_ﺑﺎ_ﻣﻮﻓﻘﻴﺖ_اﻧﺠﺎم_ﺷﺪ) || (int.Parse(resultCode_bpinquiryRequest) == (int)BankMellat.MellatBankReturnCode.ﺗﺮاﻛﻨﺶ_ﺑﺎ_ﻣﻮﻓﻘﻴﺖ_اﻧﺠﺎم_ﺷﺪ)) { resultCode_bpSettleRequest = bankmellat.SettleRequest(saleOrderId, saleOrderId, saleReferenceId); if ((int.Parse(resultCode_bpSettleRequest) == (int)BankMellat.MellatBankReturnCode.ﺗﺮاﻛﻨﺶ_ﺑﺎ_ﻣﻮﻓﻘﻴﺖ_اﻧﺠﺎم_ﺷﺪ) || (int.Parse(resultCode_bpSettleRequest) == (int)BankMellat.MellatBankReturnCode.ﺗﺮاﻛﻨﺶ_Settle_ﺷﺪه_اﺳﺖ)) { TempData["Message"] = "تراکنش شما با موفقیت انجام شد "; TempData["Message"] += Environment.NewLine + " لطفا شماره پیگیری را یادداشت نمایید" + Environment.NewLine + saleReferenceId; } else { TempData["Message"] = bankmellat.DesribtionStatusCode(int.Parse(resultCode_bpSettleRequest.Replace("_", " "))); Run_bpReversalRequest = true; } string strToday = PC.GetYear(DateTime.Now).ToString("0000") + "/" + PC.GetMonth(DateTime.Now).ToString("00") + "/" + PC.GetDayOfMonth(DateTime.Now).ToString("00"); var factor = db.Factors.FirstOrDefault(f => f.Number == saleOrderId.ToString()); factor.IsPay = true; factor.PayNumber = saleReferenceId.ToString(); factor.PayDate = strToday; factor.PayTime = DateTime.Now.ToShortTimeString(); db.SaveChanges(); var details = db.FactorDetail.Where(d => d.FactorId == factor.Id).ToList(); foreach (var item in details) { var product = db.Products.Find(item.ProductId); product.Quantity = product.Quantity - item.Count; db.SaveChanges(); } var user = db.Users.FirstOrDefault(u => u.Mobile == User.Identity.Name); var setting = db.Settings.FirstOrDefault(); try { if (setting.FactorIsSend) { sms.SendSMS(user.Mobile, "صورت حساب جدید شما در فروشگاه با مبلغ " + factor.Price.ToString()); } if (setting.PayIsSend) { sms.SendSMS(user.Mobile, "صورت حساب جدید شما در فروشگاه با موفقیت پرداخت شد. شماره پیگیری شما " + factor.Number.ToString()); } } catch { } } else { TempData["Message"] = bankmellat.DesribtionStatusCode(int.Parse(resultCode_bpVerifyRequest.Replace("_", " "))); Run_bpReversalRequest = true; } } else { TempData["Message"] = bankmellat.DesribtionStatusCode(int.Parse(resultCode_bpPayRequest)).Replace("_", " "); Run_bpReversalRequest = true; } return(RedirectToAction("ShowError", "Payment")); } catch (Exception Error) { TempData["Message"] = "متاسفانه خطایی رخ داده است، لطفا مجددا عملیات خود را انجام دهید در صورت تکرار این مشکل را به بخش پشتیبانی اطلاع دهید"; // Save and send Error for admin user Run_bpReversalRequest = true; return(RedirectToAction("ShowError", "Payment")); } finally { if (Run_bpReversalRequest) //ReversalRequest { if (saleOrderId != -999 && saleReferenceId != -999) { bankmellat.bpReversalRequest(saleOrderId, saleOrderId, saleReferenceId); } // Save information to Database... } } }