public ActionResult ProductUserOrders(string id) { string key = HotelCloud.Common.HCRequest.GetString("key"); string hotelweixinId = key.Split('@')[0]; string userweixinId = key.Split('@')[1]; string sign = ValidateUserSign(hotelweixinId, userweixinId); if (string.IsNullOrEmpty(sign)) { return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "用户参数不合法", key = key })); } ViewData["key"] = key + "@" + sign; int count = 0; int page = 1; int pageSize = int.MaxValue; DataTable db_order = SaleProducts_Orders.GetSaleProducts_Orders(userweixinId, out count, page, pageSize, "", ""); var list_orders = DataTableToEntity.GetEntities <Models.Home.SaleProducts_Orders>(db_order).ToList(); ViewData["Orders"] = list_orders; return(View()); }
public ActionResult ProductUserOrderDetail(string orderNo) { string key = HotelCloud.Common.HCRequest.GetString("key"); string hotelweixinId = key.Split('@')[0]; string userweixinId = key.Split('@')[1]; string sign = string.Empty; //当没有签名字符启用查询验证 if (key.Split('@').Length <= 2) { sign = ValidateUserSign(hotelweixinId, userweixinId); if (string.IsNullOrEmpty(sign)) { return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "用户参数不合法", key = key })); } ViewData["key"] = key + "@" + sign; return(RedirectToAction("ProductUserOrderDetail", "Product", new { orderNo = orderNo, key = ViewData["key"] })); } sign = key.Split('@')[2]; if (!IsValidateUser(hotelweixinId, userweixinId, sign)) { return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "签名不合法", key = key })); } ViewData["key"] = key; DataTable db_order = SaleProducts_Orders.GetSaleProducts_Orders(orderNo, userweixinId); var order = DataTableToEntity.GetEntity <Models.Home.SaleProducts_Orders>(db_order); ViewData["order"] = order; return(View()); }
public ActionResult ProductPay() { int status = -1; string errmsg = ""; string key = HotelCloud.Common.HCRequest.GetString("key"); string hotelweixinId = key.Split('@')[0]; string userweixinId = key.Split('@')[1]; string saveinfo = HCRequest.GetString("saveinfo"); Hashtable saveinfotable = Newtonsoft.Json.JsonConvert.DeserializeObject <Hashtable>(saveinfo); int couponid = Convert.ToInt32(saveinfotable["couponid"]); if (couponid > 0) { bool couPonEnable = WeiXin.Models.Home.CouPonContent.IsCouPonContentEnable(hotelweixinId, userweixinId, couponid); if (!couPonEnable) { errmsg = "红包已被使用,不能再次使用"; return(Json(new { Status = status, Mess = errmsg }, JsonRequestBehavior.AllowGet)); } } SaleProducts_Orders order = new SaleProducts_Orders(); if (saveinfotable["orderno"] != null && saveinfotable["orderno"].ToString() != string.Empty) { DataTable db_order = WeiXin.Models.Home.SaleProducts_Orders.GetSaleProducts_Orders(saveinfotable["orderno"].ToString(), userweixinId); order = DataTableToEntity.GetEntity <WeiXin.Models.Home.SaleProducts_Orders>(db_order); if (order.Ispay) { errmsg = "订单已付款"; return(Json(new { Status = status, Mess = errmsg }, JsonRequestBehavior.AllowGet)); } if ((DateTime.Now - order.OrderAddTime).TotalMinutes > 30) { errmsg = "支付超时,订单已关闭"; return(Json(new { Status = status, Mess = errmsg }, JsonRequestBehavior.AllowGet)); } } order.ProductId = Convert.ToInt32(saveinfotable["productid"]); order.TcId = Convert.ToInt32(saveinfotable["tcid"]); order.BookingCount = Convert.ToInt32(saveinfotable["bookingcount"]); order.CheckOutTime = order.CheckInTime = Convert.ToDateTime(saveinfotable["traveldate"]); string token = string.Empty; if (saveinfotable["t"] == null || saveinfotable["t"].ToString() == string.Empty) { TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0); token = string.Format("{0}", Convert.ToInt64(ts.TotalMilliseconds).ToString()); } else { token = saveinfotable["t"].ToString(); } var products = WeiXin.Models.Home.SaleProduct.GetSaleProduct(hotelweixinId, order.ProductId); token = string.Format("{0}_{1}", products.HotelId, token); string before_token = WeiXin.Models.Home.SaleProducts_Orders.GetSaleProducts_OrdersByToken(token); if (!string.IsNullOrEmpty(before_token)) { errmsg = "请不要重复提交订单"; return(Json(new { Status = status, Mess = errmsg }, JsonRequestBehavior.AllowGet)); } products.List_SaleProducts_TC = WeiXin.Models.Home.SaleProducts_TC.GetSaleProducts_TC(products.Id); order.OrderAddTime = DateTime.Now; order.ProductName = products.ProductName; order.LinkName = order.UserName = saveinfotable["lxr_name"].ToString(); order.UserMobile = saveinfotable["lxr_mobile"].ToString(); order.UserWeiXinId = userweixinId; order.HotelWeiXinId = products.WeiXinId; order.HotelId = products.HotelId; order.Token = token; order.OrderNo = "p" + DateTime.Now.ToString("yyMMddHHmmssfff") + new Random().Next(11, 99); var tc_product = products.List_SaleProducts_TC.Where(c => c.Id == order.TcId).FirstOrDefault(); order.TcName = tc_product.TcName; order.ProductType = products.ProductType; // grooup buy if (products.ProductType == 0) { if (products.BeginTime > DateTime.Now) { errmsg = "产品还未开始预售"; return(Json(new { Status = status, Mess = errmsg }, JsonRequestBehavior.AllowGet)); } if (products.EndTime < DateTime.Now) { errmsg = "产品已过期"; return(Json(new { Status = status, Mess = errmsg }, JsonRequestBehavior.AllowGet)); } // int hexiaoMa = new Random().Next(100000000, 999990000); // order.OrderMoney = Convert.ToDecimal(tc_product.ProductPrice * order.BookingCount); } else { var tc_priceList = WeiXin.Models.Home.SaleProducts_TC_Price.GetSaleProducts_TC_Price(order.TcId); var tc_price = tc_priceList.Where(c => c.SaleTime == order.CheckInTime).FirstOrDefault(); // order.OrderMoney = Convert.ToDecimal(order.BookingCount * tc_price.Price); } order.OrderMoney = Convert.ToDecimal(saveinfotable["ssumprice"]); order.OriginalSaleprice = Convert.ToDecimal(saveinfotable["originalsaleprice"]); order.Remark = ""; order.TaoBaoStatus = ""; order.OperatorLog = ""; order.OrderStatus = 0; Dictionary <string, object> CouponInfoDic = new Dictionary <string, object>(); if (couponid > 0) { CouponInfoDic.Add("CouponId", couponid); CouponInfoDic.Add("CouPon", Convert.ToInt32(saveinfotable["couponprice"])); } object gradename = saveinfotable["gradename"]; CouponInfoDic.Add("GradeRate", WeiXinPublic.ConvertHelper.ToDouble(saveinfotable["graderate"])); CouponInfoDic.Add("GradeName", gradename == null ? string.Empty : gradename.ToString()); CouponInfoDic.Add("IsVip", WeiXinPublic.ConvertHelper.ToInt(saveinfotable["isvip"])); order.CouponInfo = Newtonsoft.Json.JsonConvert.SerializeObject(CouponInfoDic); order.Jifen = Convert.ToInt32(saveinfotable["jifen"]); order.PayType = saveinfotable["zhifutype"].ToString() == "card" ? "储值卡支付" : "微信支付"; var tgyModel = hotel3g.Models.MemberFxLogic.GetTuiGuangProfit(ProfitType.tuangou, products.WeiXinId, userweixinId, Convert.ToDouble(order.OrderMoney)); order.Promoterid = tgyModel.promoterid; order.FxCommission = Convert.ToDecimal(tgyModel.hotelCommission); order.Fxmoneyprofit = Convert.ToDecimal(tgyModel.userCommission); int Id = WeiXin.Models.Home.SaleProducts_Orders.AddSaleProducts_Orders2(order); if (Id > 0) { status = 0; if (couponid > 0) { string sql = "update couponcontent set isemploy=1,employtime=@time,orderid=@orderid where id=@couponid and weixinid=@weixinid and userweixinno=@userweixinid"; int row = SQLHelper.Run_SQL(sql, SQLHelper.GetCon(), new Dictionary <string, DBParam>() { { "time", new DBParam() { ParamValue = DateTime.Now.ToString() } }, { "orderid", new DBParam() { ParamValue = Id.ToString() } }, { "couponid", new DBParam() { ParamValue = couponid.ToString() } }, { "weixinid", new DBParam() { ParamValue = hotelweixinId } }, { "userweixinid", new DBParam() { ParamValue = userweixinId } } }); } if (order.Jifen > 0) { string cardno = saveinfotable["cardno"] == null ? string.Empty : saveinfotable["cardno"].ToString(); string memberid = saveinfotable["memberid"] == null ? string.Empty : saveinfotable["memberid"].ToString(); string sql = "insert into jifendetail (weixinid,userweixinid,jifen,addtime,orderid,night,cardno,userid) values (@weixinid,@userweixinid,@jifen,@addtime,@orderid,@night,@cardno,@userid)"; int rs = SQLHelper.Run_SQL(sql, SQLHelper.GetCon(), new Dictionary <string, DBParam>() { { "weixinid", new DBParam() { ParamValue = hotelweixinId } }, { "userweixinid", new DBParam() { ParamValue = userweixinId } }, { "jifen", new DBParam() { ParamValue = order.Jifen.ToString() } }, { "addtime", new DBParam() { ParamValue = DateTime.Now.ToString() } }, { "orderid", new DBParam() { ParamValue = Id.ToString() } }, { "night", new DBParam() { ParamValue = "1" } }, { "cardno", new DBParam() { ParamValue = cardno } }, { "userid", new DBParam() { ParamValue = memberid } }, }); } return(Json(new { Status = status, Mess = order.OrderNo }, JsonRequestBehavior.AllowGet)); } errmsg = "抱歉,下单失败"; return(Json(new { Status = status, Mess = errmsg }, JsonRequestBehavior.AllowGet)); }
public ActionResult ProductUserOrderDetail(string orderNo) { string key = HotelCloud.Common.HCRequest.GetString("key"); string hotelweixinId = key.Split('@')[0]; string userweixinId = key.Split('@')[1]; ViewData["key"] = key; DataTable db_order = SaleProducts_Orders.GetSaleProducts_OrdersA(orderNo, userweixinId); var order = DataTableToEntity.GetEntity <WeiXin.Models.Home.SaleProducts_Orders>(db_order); ViewData["order"] = order; List <SaleProducts_OrdersTuan> list_tuan = new List <SaleProducts_OrdersTuan>(); if (order.Id > 0 && order.ProductType == 0) { DataTable db_tuan = HotelCloud.SqlServer.SQLHelper.Get_DataTable(@" select * from SaleProducts_OrdersTuan with(nolock) where OrderId=@OrderId ", HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> { { "OrderId", new HotelCloud.SqlServer.DBParam { ParamValue = order.Id.ToString() } } }); list_tuan = DataTableToEntity.GetEntities <SaleProducts_OrdersTuan>(db_tuan).ToList(); } ViewData["list_tuan"] = list_tuan; DataTable db = WeiXin.Models.Home.SaleProduct.GetHotelInfo(hotelweixinId); if (db.Rows.Count > 0) { ViewData["hotelname"] = db.Rows[0]["SubName"].ToString(); ViewData["tel"] = db.Rows[0]["tel"].ToString(); ViewData["address"] = db.Rows[0]["address"].ToString(); } DataTable db_time = HotelCloud.SqlServer.SQLHelper.Get_DataTable(@" select EffectiveBeginTime, EffectiveEndTime from SaleProducts with(nolock) where Id=@Id", HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> { { "Id", new HotelCloud.SqlServer.DBParam { ParamValue = order.ProductId.ToString() } } }); if (db_time.Rows.Count > 0) { ViewData["effectiveBeginTime"] = Convert.ToDateTime(db_time.Rows[0]["effectiveBeginTime"]).ToString("yyyy-MM-dd"); if (DateTime.Now.Date > Convert.ToDateTime(ViewData["effectiveBeginTime"])) { ViewData["effectiveBeginTime"] = DateTime.Now.ToString("yyyy-MM-dd"); } ViewData["effectiveEndTime"] = Convert.ToDateTime(db_time.Rows[0]["effectiveEndTime"]).ToString("yyyy-MM-dd"); if (DateTime.Now.Date.AddMonths(2) < Convert.ToDateTime(ViewData["effectiveEndTime"])) { ViewData["effectiveEndTime"] = DateTime.Now.Date.AddMonths(2).ToString("yyyy-MM-dd"); } } return(View()); }
public ActionResult PayMoney() { string orderNo = Request.Form["orderNo"].ToLower(); string payPassword = Request.Form["payPassword"]; string key = HotelCloud.Common.HCRequest.GetString("key"); string hotelweixinId = key.Split('@')[0]; string userweixinId = key.Split('@')[1]; string edition = Request.QueryString["edition"]; string errControllerName = edition == "1" ? "ProductA": "Product"; string mess = string.Empty; bool isOK = ValidateUserPayPassword(hotelweixinId, userweixinId, payPassword, out mess); if (isOK == false) { return(RedirectToAction("ProductErrMsg", errControllerName, new { id = RouteData.Values["id"], errmsg = mess, key = HotelCloud.Common.HCRequest.GetString("key") })); } DataTable db_member = RechargeCard.GetRechargeMemberInfo(hotelweixinId, userweixinId); decimal balance = Convert.ToDecimal(db_member.Rows[0]["balance"].ToString()); decimal payMoney = GetPayOrderMoney(orderNo); if (payMoney <= 0) { return(RedirectToAction("ProductErrMsg", errControllerName, new { id = RouteData.Values["id"], errmsg = "找不到该产品!", key = HotelCloud.Common.HCRequest.GetString("key") })); } if (balance < payMoney) { return(RedirectToAction("ProductErrMsg", errControllerName, new { id = RouteData.Values["id"], errmsg = "余额不足!", key = HotelCloud.Common.HCRequest.GetString("key") })); } RechargeUser rechargeUser = new RechargeUser(); rechargeUser.SPrice = -payMoney; rechargeUser.MPrice = rechargeUser.SPrice; rechargeUser.IsCardPassword = false; rechargeUser.Source = "pay"; rechargeUser.AddTime = DateTime.Now; rechargeUser.HotelWeixinId = hotelweixinId; rechargeUser.HotelId = Convert.ToInt32(RouteData.Values["id"]); rechargeUser.UserMobile = db_member.Rows[0]["mobile"].ToString(); rechargeUser.PayType = 1; rechargeUser.UserLevel = db_member.Rows[0]["viptype"].ToString(); rechargeUser.UserWeixinId = userweixinId; rechargeUser.UserName = db_member.Rows[0]["name"].ToString(); rechargeUser.Beforebalance = balance; rechargeUser.Balance = rechargeUser.Beforebalance - payMoney; rechargeUser.OrderNo = "c" + DateTime.Now.ToString("yyMMddHHmmssfff") + new Random().Next(11, 99); rechargeUser.OrderStatus = 1; rechargeUser.CardId = 0; rechargeUser.TradeOrderNo = orderNo; bool opFlag = false; int p_Status = 0; using (TransactionScope scop = new TransactionScope()) { int rechargeId = WeiXin.Models.Home.RechargeUser.AddRechargeCard(rechargeUser); if (rechargeId > 0) { int row = RechargeCard.ReduceRechargeMemberBalance(hotelweixinId, userweixinId, payMoney); if (row > 0) { string operationRecord = string.Format("[储值卡支付]:于{0}支付:{1}", DateTime.Now, payMoney); string payType = "储值卡支付"; //团购预售 if (orderNo.Contains("p")) { string tsql = @"update SaleProducts_Orders set OrderStatus=3, Remark=isnull(Remark,'')+@OperationRecord,IsPay=1,PayTime=getdate(),payType=@payType where OrderNo=@OrderNO and IsPay=0 "; p_Status = HotelCloud.SqlServer.SQLHelper.Run_SQL(tsql, HotelCloud.SqlServer.SQLHelper.Open_Conn(System.Configuration.ConfigurationManager.ConnectionStrings["sqlserver"].ConnectionString.ToString()), new Dictionary <string, HotelCloud.SqlServer.DBParam> { { "OrderNO", new HotelCloud.SqlServer.DBParam { ParamValue = orderNo } }, { "OperationRecord", new HotelCloud.SqlServer.DBParam { ParamValue = operationRecord } }, { "payType", new HotelCloud.SqlServer.DBParam { ParamValue = payType } } }); if (p_Status > 0) { //短信发送的用在事物里面有问题 } } //餐饮 else if (orderNo.Contains("l")) { string tsql = @"update WeiXin..T_OrderInfo set Status=9,payTime=getdate(),orderPayState=1,orderPayType=@payType where orderCode=@OrderNO "; int Status = HotelCloud.SqlServer.SQLHelper.Run_SQL(tsql, HotelCloud.SqlServer.SQLHelper.Open_Conn(System.Configuration.ConfigurationManager.ConnectionStrings["sqlserver"].ConnectionString.ToString()), new Dictionary <string, HotelCloud.SqlServer.DBParam> { { "OrderNO", new HotelCloud.SqlServer.DBParam { ParamValue = orderNo } }, { "payType", new HotelCloud.SqlServer.DBParam { ParamValue = payType } } }); } //超市 else if (orderNo.Contains("d")) { string tsql = @"update SupermarketOrder_Levi set OrderStatus = 2,PayStatus = 2,PayTime=getdate(),aliPayAmount=@AliPayAmount,payMethod=@payType where OrderId =@OrderNO;INSERT INTO [WeiXin].[dbo].[SupermarketOrderLog_Levi]([OrderId],[Context],[LogType],[CreateUser],[CreateTime]) VALUES(@OrderNO,'订单状态流转为:已付款',1,'用户',GETDATE())"; int Status = HotelCloud.SqlServer.SQLHelper.Run_SQL(tsql, HotelCloud.SqlServer.SQLHelper.Open_Conn(System.Configuration.ConfigurationManager.ConnectionStrings["sqlserver"].ConnectionString.ToString()), new Dictionary <string, HotelCloud.SqlServer.DBParam> { { "OrderNO", new HotelCloud.SqlServer.DBParam { ParamValue = orderNo } }, { "AliPayAmount", new HotelCloud.SqlServer.DBParam { ParamValue = (payMoney * 100).ToString() } }, { "payType", new HotelCloud.SqlServer.DBParam { ParamValue = payType } } }); } //酒店 else { string tsql = @"update HotelOrder set Remark=isnull(Remark,'')+@OperationRecord,aliPayAmount=@AliPayAmount,aliPayTime=getdate(),tradeStatus='TRADE_FINISHED',state=24,tradeNo=@TradeNo,payMethod=@payType where OrderNO=@OrderNO "; int Status = HotelCloud.SqlServer.SQLHelper.Run_SQL(tsql, HotelCloud.SqlServer.SQLHelper.Open_Conn(System.Configuration.ConfigurationManager.ConnectionStrings["sqlserver"].ConnectionString.ToString()), new Dictionary <string, HotelCloud.SqlServer.DBParam> { { "OrderNO", new HotelCloud.SqlServer.DBParam { ParamValue = orderNo } }, { "TradeNo", new HotelCloud.SqlServer.DBParam { ParamValue = "" } }, { "AliPayAmount", new HotelCloud.SqlServer.DBParam { ParamValue = (payMoney * 100).ToString() } }, { "OperationRecord", new HotelCloud.SqlServer.DBParam { ParamValue = operationRecord } }, { "payType", new HotelCloud.SqlServer.DBParam { ParamValue = payType } } }); } opFlag = true; scop.Complete(); } } } //支付成功 if (opFlag) { if (orderNo.Contains("p")) { if (p_Status > 0) { SaleProducts_Orders.DoneOrderSuccess(orderNo); } if (edition == "1") { return(RedirectToAction("ProductUserOrderDetail", "productA", new { id = RouteData.Values["id"], key = HotelCloud.Common.HCRequest.GetString("key"), OrderNo = orderNo })); } else { return(RedirectToAction("ProductUserOrderDetail", "product", new { id = RouteData.Values["id"], key = HotelCloud.Common.HCRequest.GetString("key"), OrderNo = orderNo })); } } if (orderNo.Contains("l")) { if (edition == "1") { string storeID = HotelCloud.SqlServer.SQLHelper.Get_Value("SELECT storeID FROM WeiXin..T_OrderInfo with(nolock) where ordercode=@ordercode", HotelCloud.SqlServer.SQLHelper.Open_Conn(System.Configuration.ConfigurationManager.ConnectionStrings["sqlserver"].ConnectionString.ToString()), new Dictionary <string, HotelCloud.SqlServer.DBParam> { { "ordercode", new HotelCloud.SqlServer.DBParam { ParamValue = orderNo } } }); return(RedirectToAction("ViewOrderDetail", "DishOrderA", new { id = RouteData.Values["id"], key = HotelCloud.Common.HCRequest.GetString("key"), orderCode = orderNo, storeID = storeID })); } else { return(RedirectToAction("PaySuccess", "DishOrder", new { id = RouteData.Values["id"], key = HotelCloud.Common.HCRequest.GetString("key"), orderCode = orderNo })); } } if (orderNo.Contains("d")) { if (edition == "1") { return(RedirectToAction("OrderDetails2", "SupermarketA", new { id = RouteData.Values["id"], key = HotelCloud.Common.HCRequest.GetString("key"), orderid = orderNo })); } else { return(RedirectToAction("OrderPay", "Supermarket", new { id = RouteData.Values["id"], key = HotelCloud.Common.HCRequest.GetString("key"), orderid = orderNo })); } } else { string orderId = HotelCloud.SqlServer.SQLHelper.Get_Value("SELECT Id FROM WeiXin..HotelOrder with(nolock) where orderNo=@orderNo", HotelCloud.SqlServer.SQLHelper.Open_Conn(System.Configuration.ConfigurationManager.ConnectionStrings["sqlserver"].ConnectionString.ToString()), new Dictionary <string, HotelCloud.SqlServer.DBParam> { { "orderNo", new HotelCloud.SqlServer.DBParam { ParamValue = orderNo } } }); if (edition == "1") { Response.Redirect(string.Format("/UserA/OrderInfo/{0}?key={1}&Id={2}", RouteData.Values["id"], HotelCloud.Common.HCRequest.GetString("key"), orderId)); return(View()); } else { //return RedirectToAction("resultNotifyPage.aspx", "WeiXinZhiFu", new { id = RouteData.Values["id"], key = HotelCloud.Common.HCRequest.GetString("key"), code = orderNo, error = "ok" }); Response.Redirect(string.Format("/User/OrderInfo/{0}?key={1}&Id={2}", RouteData.Values["id"], HotelCloud.Common.HCRequest.GetString("key"), orderId)); return(View()); } } } //支付失败以后 if (orderNo.Contains("l")) { if (edition == "1") { string storeID = HotelCloud.SqlServer.SQLHelper.Get_Value("SELECT storeID FROM WeiXin..T_OrderInfo with(nolock) where ordercode=@ordercode", HotelCloud.SqlServer.SQLHelper.Open_Conn(System.Configuration.ConfigurationManager.ConnectionStrings["sqlserver"].ConnectionString.ToString()), new Dictionary <string, HotelCloud.SqlServer.DBParam> { { "ordercode", new HotelCloud.SqlServer.DBParam { ParamValue = orderNo } } }); return(RedirectToAction("ViewOrderDetail", "DishOrderA", new { id = RouteData.Values["id"], key = HotelCloud.Common.HCRequest.GetString("key"), orderCode = orderNo, storeID = storeID })); } else { return(RedirectToAction("PayFail", "DishOrder", new { id = RouteData.Values["id"], key = HotelCloud.Common.HCRequest.GetString("key"), orderCode = orderNo })); } } if (orderNo.Contains("d")) { if (edition == "1") { return(RedirectToAction("OrderDetails2", "SupermarketA", new { id = RouteData.Values["id"], key = HotelCloud.Common.HCRequest.GetString("key"), orderid = orderNo })); } else { return(RedirectToAction("PayFail", "Supermarket", new { id = RouteData.Values["id"], key = HotelCloud.Common.HCRequest.GetString("key"), orderid = orderNo })); } } if (edition == "1") { return(RedirectToAction("ProductErrMsg", "ProductA", new { id = RouteData.Values["id"], errmsg = "支付失败!", key = HotelCloud.Common.HCRequest.GetString("key") })); } else { return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "支付失败!", key = HotelCloud.Common.HCRequest.GetString("key") })); } }
public ActionResult HotelHexiaoMa() { string orderNo = HotelCloud.Common.HCRequest.GetString("OrderNo").TrimEnd(); string yuName = HotelCloud.Common.HCRequest.GetString("yuName").TrimEnd(); DateTime yuDate = Convert.ToDateTime(HotelCloud.Common.HCRequest.GetString("yuDate")); int status = -1; string errmsg = string.Empty; string key = HotelCloud.Common.HCRequest.GetString("key"); string hotelweixinId = key.Split('@')[0]; string userweixinId = key.Split('@')[1]; string sign = key.Split('@')[2]; if (!IsValidateUser(hotelweixinId, userweixinId, sign)) { errmsg = "签名不合法"; return(Json(new { Status = status, Mess = errmsg }, JsonRequestBehavior.AllowGet)); } ViewData["key"] = key; DataTable db_order = SaleProducts_Orders.GetSaleProducts_Orders(orderNo, userweixinId); var order = DataTableToEntity.GetEntity <Models.Home.SaleProducts_Orders>(db_order); if (order.Id > 0 && order.ProductType == 0 && order.Ispay && (order.HexiaoStatus == (int)ProductSaleOrderTuanStatus.未预约 || order.HexiaoStatus == (int)ProductSaleOrderTuanStatus.预约失败)) { int row = HotelCloud.SqlServer.SQLHelper.Run_SQL(@" update SaleProducts_Orders set HexiaoStatus=1,CheckInTime=@CheckInTime,CheckOutTime=@CheckOutTime,UserName=@UserName where Id=@Id", HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> { { "CheckInTime", new HotelCloud.SqlServer.DBParam { ParamValue = yuDate.ToString() } }, { "CheckOutTime", new HotelCloud.SqlServer.DBParam { ParamValue = yuDate.ToString() } }, { "UserName", new HotelCloud.SqlServer.DBParam { ParamValue = yuName } }, { "Id", new HotelCloud.SqlServer.DBParam { ParamValue = order.Id.ToString() } } }); if (row > 0) { string log = string.Format("用户申请预约"); row = HotelCloud.SqlServer.SQLHelper.Run_SQL(@"insert into dbo.wkn_operatingrecord(weixinid,orderno,operator,operationdate,description) values(@weixinid,@orderno,@operator,@operationdate,@description) ", HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> { { "orderno", new HotelCloud.SqlServer.DBParam { ParamValue = order.OrderNo } }, { "weixinid", new HotelCloud.SqlServer.DBParam { ParamValue = order.HotelWeiXinId } }, { "operator", new HotelCloud.SqlServer.DBParam { ParamValue = "用户" } }, { "operationdate", new HotelCloud.SqlServer.DBParam { ParamValue = DateTime.Now.ToString() } }, { "description", new HotelCloud.SqlServer.DBParam { ParamValue = log } } }); status = 0; errmsg = "预约成功"; } else { errmsg = "预约失败"; } } else { errmsg = "找不到预约产品!"; } return(Json(new { Status = status, Mess = errmsg }, JsonRequestBehavior.AllowGet)); }
public ActionResult ProductUserHexiao(string orderNo) { string key = HotelCloud.Common.HCRequest.GetString("key"); string hotelweixinId = key.Split('@')[0]; string userweixinId = key.Split('@')[1]; string sign = key.Split('@')[2]; if (!IsValidateUser(hotelweixinId, userweixinId, sign)) { return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "签名不合法", key = key })); } ViewData["key"] = key; DataTable db_order = SaleProducts_Orders.GetSaleProducts_Orders(orderNo, userweixinId); var order = DataTableToEntity.GetEntity <Models.Home.SaleProducts_Orders>(db_order); if (order.Id > 0) { if (order.ProductType == 0) { //未使用或失败 if (order.HexiaoStatus == 0 || order.HexiaoStatus == 3) { ViewData["order"] = order; } else { return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "已经预约过产品!", key = HotelCloud.Common.HCRequest.GetString("key") })); } } else { return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "非团购产品无需预约!", key = HotelCloud.Common.HCRequest.GetString("key") })); } DataTable db_time = HotelCloud.SqlServer.SQLHelper.Get_DataTable(@" select EffectiveBeginTime, EffectiveEndTime from SaleProducts with(nolock) where Id=@Id", HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> { { "Id", new HotelCloud.SqlServer.DBParam { ParamValue = order.ProductId.ToString() } } }); if (db_time.Rows.Count > 0) { ViewData["effectiveBeginTime"] = Convert.ToDateTime(db_time.Rows[0]["effectiveBeginTime"]).ToString("yyyy-MM-dd"); if (DateTime.Now.Date > Convert.ToDateTime(ViewData["effectiveBeginTime"])) { ViewData["effectiveBeginTime"] = DateTime.Now.ToString("yyyy-MM-dd"); } ViewData["effectiveEndTime"] = Convert.ToDateTime(db_time.Rows[0]["effectiveEndTime"]).ToString("yyyy-MM-dd"); } } else { return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "找不到预约产品!", key = HotelCloud.Common.HCRequest.GetString("key") })); } return(View()); }
public ActionResult ProductPay(string id) { string key = HotelCloud.Common.HCRequest.GetString("key"); string hotelweixinId = key.Split('@')[0]; string userweixinId = key.Split('@')[1]; string sign = key.Split('@')[2]; if (!IsValidateUser(hotelweixinId, userweixinId, sign)) { return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "签名不合法", key = key })); } ViewData["key"] = key; SaleProducts_Orders order = new SaleProducts_Orders(); if (!string.IsNullOrEmpty(HotelCloud.Common.HCRequest.GetString("orderNo"))) { DataTable db_order = Models.Home.SaleProducts_Orders.GetSaleProducts_Orders(HotelCloud.Common.HCRequest.GetString("orderNo"), userweixinId); order = DataTableToEntity.GetEntity <Models.Home.SaleProducts_Orders>(db_order); if (order.Ispay) { return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "订单已付款!", key = key })); } if ((DateTime.Now - order.OrderAddTime).TotalMinutes > 30) { return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "支付超时,订单已关闭。", key = key })); } ViewData["order"] = order; return(View()); } order.ProductId = Convert.ToInt32(Request.Form["ProductId"]); order.TcId = Convert.ToInt32(Request.Form["tcId"]); order.BookingCount = Convert.ToInt32(Request.Form["BookingCount"]); order.CheckOutTime = order.CheckInTime = Convert.ToDateTime(Request.Form["TravelDate"]); string token = Request.Form["t"]; string signorder = string.Format("{0}_{1}_{2}_{3}_{4}_{5}", order.ProductId, order.TcId, order.BookingCount, order.CheckInTime.ToString("yyyy-MM-dd"), token, keyOrder); signorder = Encryption(signorder); if (Request.Form["sign"] != signorder) { return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "非法的请求!", key = key })); } var products = Models.Home.SaleProduct.GetSaleProduct(hotelweixinId, order.ProductId); token = string.Format("{0}_{1}", products.HotelId, token); string before_token = Models.Home.SaleProducts_Orders.GetSaleProducts_OrdersByToken(token); if (!string.IsNullOrEmpty(before_token)) { return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "请不要重复提交订单", key = key })); } products.List_SaleProducts_TC = Models.Home.SaleProducts_TC.GetSaleProducts_TC(products.Id); order.OrderAddTime = DateTime.Now; order.ProductName = products.ProductName; order.LinkName = order.UserName = Request.Form["lxr_name"].ToString(); order.UserMobile = Request.Form["lxr_mobile"].ToString(); order.UserWeiXinId = userweixinId; order.HotelWeiXinId = products.WeiXinId; order.HotelId = products.HotelId; order.Token = token; order.OrderNo = "p" + DateTime.Now.ToString("yyMMddHHmmssfff") + new Random().Next(11, 99); var tc_product = products.List_SaleProducts_TC.Where(c => c.Id == order.TcId).FirstOrDefault(); order.TcName = tc_product.TcName; order.ProductType = products.ProductType; // grooup buy if (products.ProductType == 0) { if (products.BeginTime > DateTime.Now) { return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "产品还未开始预售。", key = key })); } if (products.EndTime < DateTime.Now) { return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "产品已过期。", key = key })); } // int hexiaoMa = new Random().Next(100000000, 999990000); order.OrderMoney = Convert.ToDecimal(tc_product.ProductPrice * order.BookingCount); } else { var tc_priceList = Models.Home.SaleProducts_TC_Price.GetSaleProducts_TC_Price(order.TcId); var tc_price = tc_priceList.Where(c => c.SaleTime == order.CheckInTime).FirstOrDefault(); order.OrderMoney = Convert.ToDecimal(order.BookingCount * tc_price.Price); } order.Remark = ""; order.TaoBaoStatus = ""; order.OperatorLog = ""; order.OrderStatus = 0; int Id = Models.Home.SaleProducts_Orders.AddSaleProducts_Orders(order); if (Id > 0) { return(RedirectToAction("ProductPay", "Product", new { OrderNo = order.OrderNo, key = key })); } return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "抱歉,下单失败", key = key })); }