Esempio n. 1
0
        public ActionResult PaymentCheckOut(string recieveOrder, string buyerOrder, string note, long shopid, long payfrom, string TaxOrder)
        {
            ProductsBusiness productsBusiness = new ProductsBusiness();
            var serializerSettings            = new JsonSerializerSettings
            {
                PreserveReferencesHandling = PreserveReferencesHandling.Objects
            };

            var recieve  = JsonConvert.DeserializeObject <List <string> >(recieveOrder, serializerSettings);
            var buyeror  = JsonConvert.DeserializeObject <List <string> >(buyerOrder, serializerSettings);
            var taxOrder = JsonConvert.DeserializeObject <List <string> >(TaxOrder, serializerSettings);

            if (ModelState.IsValid)
            {
                var recieveadress = recieve[4];

                var order = new Order();
                order.FeeOfTranspot  = 0;
                order.GramGood       = 0;
                order.KmRoad         = 0;
                order.TotalMoney     = 0;
                order.IdPayForm      = payfrom;
                order.IdShop         = 0;
                order.NoteAboutOrder = note;

                var                sesion            = NlCheckout.GetSessionCard(Session);
                Member             entity            = SessionUtility.GetSessionMember(Session);
                LocationsBusiness  locationsBusiness = new LocationsBusiness();
                double             moneytransport    = 0;
                double             totalmoney        = 0;
                double             totalGram         = 0;
                List <OrderDetail> listOrderDetails  = new List <OrderDetail>();
                foreach (var item in sesion)
                {
                    if (item.Product.MemberId == shopid)
                    {
                        var orderDetail = new OrderDetail();
                        orderDetail.IdOrder   = order.Id;
                        orderDetail.IdProduct = item.Product.Id;

                        orderDetail.Price       = (decimal)item.Product.Price;
                        moneytransport         += 0;// FuntionMember.CountMoneyTransport(0, item.Product.Weight * item.Quantity, recieve[3]); //Kiêm tra tinh chính xác đoạn này
                        totalGram              += item.Product.Weight;
                        totalmoney             += item.Product.Price + moneytransport;
                        orderDetail.NameProduct = item.Product.ProductName;
                        orderDetail.PathImage   = item.Product.ProductImages.First(x => x.IsAvatar == 1).ImgSource;
                        orderDetail.Quantity    = item.Quantity;

                        listOrderDetails.Add(orderDetail);
                    }
                }
                NlCheckout.SetSessionOrderDetail(listOrderDetails, Session);
                var url = "";

                order.TotalMoney    = totalmoney;
                order.FeeOfTranspot = moneytransport;
                order.GramGood      = totalGram;
                order.OrderDetails  = listOrderDetails;
                order.Status        = 0;// đơn hàng mới

                //Buyer
                Member member = SessionUtility.GetSessionMember(Session);
                var    buyer  = new OrderBuyer();
                if (buyeror != null && buyeror.Any()) // lấy thông tin ngươi mua giông ng nhận hàng
                {
                    buyer.Id          = order.Id;
                    buyer.Name        = taxOrder[0];
                    buyer.PhoneNumber = buyeror[1];
                    buyer.Email       = buyeror[2];
                    buyer.Address     = taxOrder[1];
                    buyer.CMTND       = taxOrder[2];
                }
                else
                {
                    buyer.Id          = order.Id;
                    buyer.Name        = taxOrder[0];
                    buyer.PhoneNumber = recieve[1];
                    buyer.Email       = recieve[2];
                    buyer.Address     = taxOrder[1];
                    buyer.CMTND       = taxOrder[2];
                }

                buyer.CreateDate = DateTime.Now;
                if (member != null)
                {
                    buyer.IdMember = member.Id;// người đăng nhập mua hàng
                }

                order.OrderBuyer = buyer;
                //Reciver
                var reciver = new OrderReciver();
                reciver.Id          = order.Id;
                reciver.Name        = recieve[0];
                reciver.PhoneNumber = recieve[1];
                reciver.Email       = recieve[2];
                // reciver.Address = recieve[4]+", "+ recieve[3];
                reciver.Address    = recieve[4];
                reciver.CreateDate = DateTime.Now;
                SessionUtility.SetSessionOrderReciver(reciver, Session);
                order.OrderReciver = reciver;

                #region Xoa san phâm trong sesion

                List <CartItem> listCartItems = new List <CartItem>();
                foreach (var item in sesion)
                {
                    if (item.Product.MemberId != shopid)
                    {
                        listCartItems.Add(item);
                    }
                    else
                    {
                    }
                }
                order.IdShop = null;
                ordersBusiness.AddNew(order);
                Session["Madonhang"]  = order.Id;
                Session["TotalMoney"] = order.TotalMoney;

                NlCheckout.SetSessionCard(listCartItems, Session);

                #endregion Xoa san phâm trong sesion

                string body = ControllerExtensions.RenderRazorViewToString(this, "DetailCart", order);

                Function.ObjMailSend objmail = new Function.ObjMailSend();
                var mailsend = new SystemSettingBusiness().GetDynamicQuery().First(x => x.Key == "mail_noreply");
                var acount   = mailsend.Value.Split('|');
                objmail.FromMail     = acount[0];
                objmail.PassFromMail = acount[1];
                objmail.ToMail       = reciver.Email;

                Function.email_send(objmail, "[Noithatgoquy]Thông tin đơn hàng(" + DateTime.Now + ")", body);
                var car = NlCheckout.GetSessionCard(Session);
                if (payfrom == 200)
                {
                    //thanh toan qua ngan luong
                    string return_url       = "https://wwww.vinaplaza.vn";                            // Địa chỉ trả về
                    string transaction_info = "info";                                                 //Thông tin giao dịch
                    string order_code       = order.Id.ToString();                                    //Mã giỏ hàng
                    string receiver         = new NlCheckout().GetvalueAppsetting("acount_receiver"); //Tài khoản nhận tiền
                    string price            = totalmoney.ToString();                                  //Lấy giá của giỏ hàng
                    BuyGroup365.Models.Member.NlCheckout nl = new BuyGroup365.Models.Member.NlCheckout();
                    //string url;
                    url = nl.buildCheckoutUrl(return_url, receiver, transaction_info, order_code, price);
                    //ImageButton imgBtn = new ImageButton();
                    //imgBtn.ImageUrl = "https://www.nganluong.vn/data/images/buttons/11.gif";//source file ảnh
                    //imgBtn.PostBackUrl = url;//Gán địa chỉ url cho nút thanh toán
                    // Response.Redirect(url);
                }
                else if (payfrom == 1)
                {
                    //thanh toan qua bao kim
                }
                else
                {
                    //nguoi mua va nguoi ban tu thuong luong gia ca
                }
                if (payfrom == 200)
                {
                    return(Json(url, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    if (car != null && car.Any())
                    {
                        return(Json(1, JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        return(Json(1, JsonRequestBehavior.AllowGet)); // thay đôi lại luồng trước đây phân ra 2 trương hợp như thê này đê Render tới các page khác nhau
                    }
                }

                //  return Json(listCartItems, JsonRequestBehavior.AllowGet);
            }

            return(Json(0, JsonRequestBehavior.AllowGet));
        }