예제 #1
0
        // GET: Payment
        public ActionResult Index()
        {
            if (User.Identity.IsAuthenticated)
            {
                var user = db.Users.FirstOrDefault(u => u.Mobile == User.Identity.Name);

                var factor = db.Factors.FirstOrDefault(u => u.UserId == user.Id && u.IsPay == false);

                var details = db.FactorDetail.Where(d => d.FactorId == factor.Id).ToList();

                double SumFactor = 0;

                foreach (var item in details)
                {
                    var product = db.Products.Find(item.ProductId);

                    var factorDetail = db.FactorDetail.Find(item.Id);

                    factorDetail.DetailPrice = product.Price;

                    db.SaveChanges();

                    SumFactor += product.Price;
                }

                factor.Price = Convert.ToInt32(SumFactor);

                long   orderID        = Convert.ToInt64(factor.Number);
                long   priceAmount    = Convert.ToInt64(SumFactor);
                string additionalText = "خرید جدید در فروشگاه"; // توضیحات شما برای این تراکنش

                BankMellat bankmellat = new BankMellat();

                string   resultRequest     = bankmellat.bpPayRequest(orderID, priceAmount, additionalText);
                string[] StatusSendRequest = resultRequest.Split(',');

                if (int.Parse(StatusSendRequest[0]) == (int)BankMellat.MellatBankReturnCode.ﺗﺮاﻛﻨﺶ_ﺑﺎ_ﻣﻮﻓﻘﻴﺖ_اﻧﺠﺎم_ﺷﺪ)
                {
                    return(RedirectToAction("RedirectVPOS", "Payment", new { id = StatusSendRequest[1] }));
                }

                TempData["Message"] = bankmellat.DesribtionStatusCode(int.Parse(StatusSendRequest[0].Replace("_", " ")));
                return(RedirectToAction("ShowError", "Payment"));
            }

            return(RedirectToAction("Login", "Account"));
        }
        public ActionResult Index()
        {
            if (User.Identity.IsAuthenticated)
            {
                var user = db.Users.FirstOrDefault(u => u.Mobile == User.Identity.Name);

                if (user.IsActive)
                {
                    var factor = db.Factors.FirstOrDefault(f => f.UserId == user.Id && f.IsPay == false);

                    Random RND       = new Random();
                    int    OrderRand = RND.Next(10000000, 99999990);
                    int    SumPrice  = 0;

                    strTodey = PC.GetYear(DateTime.Now).ToString("0000") + "/" +
                               PC.GetMonth(DateTime.Now).ToString("00") + "/" +
                               PC.GetDayOfMonth(DateTime.Now).ToString("00");


                    if (factor != null)
                    {
                        var detail  = db.FactorDetails.Where(d => d.factorId == factor.Id).ToList();
                        var setting = db.Settings.FirstOrDefault();

                        int TotalPrice   = 0;
                        int TaxPercent   = 0;
                        int ServicePrice = 0;



                        foreach (var item in detail)
                        {
                            TotalPrice = TotalPrice + (item.Tedad * item.Products.SalePrice);
                        }

                        if (setting.TaxPercent != 0)
                        {
                            TaxPercent = TotalPrice * (setting.TaxPercent / 100);
                        }
                        else
                        {
                            TaxPercent = 0;
                        }

                        if (TotalPrice < setting.ServiceBetween)
                        {
                            ServicePrice = setting.ServicePric;
                        }
                        else
                        {
                            ServicePrice = 0;
                        }

                        SumPrice = TaxPercent + ServicePrice + TotalPrice;

                        factor.NumberFactor = OrderRand.ToString();
                        factor.CutPrice     = ServicePrice;
                        factor.Tax          = TaxPercent;
                        factor.SumItem      = TotalPrice;
                        factor.SumPrice     = SumPrice;
                        db.SaveChanges();
                    }

                    long   orderID        = OrderRand;
                    long   priceAmount    = SumPrice;
                    string additionalText = "تراکنش جدید"; // توضیحات شما برای این تراکنش

                    BankMellat bankmellat = new BankMellat();

                    string   resultRequest     = bankmellat.bpPayRequest(orderID, priceAmount, additionalText);
                    string[] StatusSendRequest = resultRequest.Split(',');

                    if (int.Parse(StatusSendRequest[0]) == (int)BankMellat.MellatBankReturnCode.ﺗﺮاﻛﻨﺶ_ﺑﺎ_ﻣﻮﻓﻘﻴﺖ_اﻧﺠﺎم_ﺷﺪ)
                    {
                        return(RedirectToAction("RedirectVPOS", "Payment", new { id = StatusSendRequest[1] }));
                    }

                    TempData["Message"] = bankmellat.DesribtionStatusCode(int.Parse(StatusSendRequest[0].Replace("_", " ")));
                    return(RedirectToAction("ShowError", "Payment"));
                }
                else
                {
                    return(RedirectToAction("Activate", "Account"));
                }
            }
            else
            {
                return(RedirectToAction("Login", "Account"));
            }
        }