public static int AddRechargeUser(RechargeUser model) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into RechargeUser("); strSql.Append("SPrice,Beforebalance,balance,PayType,OrderStatus,Source,IsCardPassword,AddTime,OrderNo,HotelWeixinId,HotelId,UserWeixinId,UserName,UserMobile,UserLevel,MPrice,CardId,TradeOrderNo"); strSql.Append(") values ("); strSql.Append("@SPrice,@Beforebalance,@balance,@PayType,@OrderStatus,@Source,@IsCardPassword,@AddTime,@OrderNo,@HotelWeixinId,@HotelId,@UserWeixinId,@UserName,@UserMobile,@UserLevel,@MPrice,@CardId,@TradeOrderNo"); strSql.Append(") "); strSql.Append(";select @@IDENTITY"); string obj = HotelCloud.SqlServer.SQLHelper.Get_Value(strSql.ToString(), HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> { { "SPrice", new HotelCloud.SqlServer.DBParam { ParamValue = model.SPrice.ToString() } }, { "Beforebalance", new HotelCloud.SqlServer.DBParam { ParamValue = model.Beforebalance.ToString() } }, { "balance", new HotelCloud.SqlServer.DBParam { ParamValue = model.Balance.ToString() } }, { "PayType", new HotelCloud.SqlServer.DBParam { ParamValue = model.PayType.ToString() } }, { "OrderStatus", new HotelCloud.SqlServer.DBParam { ParamValue = model.OrderStatus.ToString() } }, { "Source", new HotelCloud.SqlServer.DBParam { ParamValue = model.Source.ToString() } }, { "IsCardPassword", new HotelCloud.SqlServer.DBParam { ParamValue = model.IsCardPassword.ToString() } }, { "AddTime", new HotelCloud.SqlServer.DBParam { ParamValue = model.AddTime.ToString() } }, { "OrderNo", new HotelCloud.SqlServer.DBParam { ParamValue = model.OrderNo.ToString() } }, { "HotelWeixinId", new HotelCloud.SqlServer.DBParam { ParamValue = model.HotelWeixinId.ToString() } }, { "HotelId", new HotelCloud.SqlServer.DBParam { ParamValue = model.HotelId.ToString() } }, { "UserWeixinId", new HotelCloud.SqlServer.DBParam { ParamValue = model.UserWeixinId.ToString() } }, { "UserName", new HotelCloud.SqlServer.DBParam { ParamValue = model.UserName.ToString() } }, { "UserMobile", new HotelCloud.SqlServer.DBParam { ParamValue = model.UserMobile.ToString() } }, { "UserLevel", new HotelCloud.SqlServer.DBParam { ParamValue = model.UserLevel.ToString() } }, { "MPrice", new HotelCloud.SqlServer.DBParam { ParamValue = model.MPrice.ToString() } }, { "CardId", new HotelCloud.SqlServer.DBParam { ParamValue = model.CardId.ToString() } }, { "TradeOrderNo", new HotelCloud.SqlServer.DBParam { ParamValue = model.TradeOrderNo } } }); if (!string.IsNullOrEmpty(obj)) { return(Convert.ToInt32(obj)); } return(0); }
public ActionResult RechargeUserAccount() { int cardId = Convert.ToInt32(HotelCloud.Common.HCRequest.GetString("cardId")); decimal mprice = Convert.ToDecimal(HotelCloud.Common.HCRequest.GetString("mprice")); decimal sprice = Convert.ToDecimal(HotelCloud.Common.HCRequest.GetString("sprice")); string key = HotelCloud.Common.HCRequest.GetString("key"); string hotelweixinId = key.Split('@')[0]; string userweixinId = key.Split('@')[1]; int status = -1; string mess = ""; DataTable dbcard = RechargeCard.GeteRechargeCard(hotelweixinId, cardId); if (dbcard.Rows.Count == 0) { mess = "储值卡不存在"; return Json(new { Status = status, Mess = mess }, JsonRequestBehavior.AllowGet); } RechargeCard model_card = DataTableToEntity.GetEntity<RechargeCard>(dbcard); if (model_card.SaleStatus == 0) { mess = "储值卡已暂停售卖"; return Json(new { Status = status, Mess = mess }, JsonRequestBehavior.AllowGet); } else if (model_card.SaleNum >= model_card.TotalNum) { mess = "储值卡已售完"; return Json(new { Status = status, Mess = mess }, JsonRequestBehavior.AllowGet); } else if (model_card.MPrice != mprice || model_card.Sprice != sprice) { mess = "金额有变化,请重试!"; return Json(new { Status = status, Mess = mess }, JsonRequestBehavior.AllowGet); } if (model_card.Sprice > 0) { DataTable dbMember = RechargeCard.GetRechargeMemberInfo(hotelweixinId, userweixinId); if (dbMember.Rows.Count == 1) { RechargeUser rechargeUser = new RechargeUser(); rechargeUser.SPrice = model_card.Sprice; rechargeUser.MPrice = model_card.MPrice; rechargeUser.IsCardPassword = false; rechargeUser.Source = "weixin"; rechargeUser.AddTime = DateTime.Now; rechargeUser.HotelWeixinId = hotelweixinId; rechargeUser.HotelId = model_card.HotelId; rechargeUser.UserMobile = dbMember.Rows[0]["mobile"].ToString(); rechargeUser.PayType = 1; rechargeUser.UserLevel = dbMember.Rows[0]["vipType"].ToString(); rechargeUser.UserWeixinId = dbMember.Rows[0]["userWeixinNo"].ToString(); rechargeUser.UserName = dbMember.Rows[0]["name"].ToString(); rechargeUser.Beforebalance = Convert.ToDecimal(dbMember.Rows[0]["balance"].ToString()); rechargeUser.Balance = rechargeUser.Beforebalance + model_card.MPrice; rechargeUser.OrderNo = "c" + DateTime.Now.ToString("yyMMddHHmmssfff") + new Random().Next(11, 99); rechargeUser.OrderStatus = 0; rechargeUser.CardId = cardId; rechargeUser.TradeOrderNo = ""; int rechargeId = WeiXin.Models.Home.RechargeUser.AddRechargeCard(rechargeUser); if (rechargeId > 0) { status = 0; mess = rechargeUser.OrderNo; } if (status != 0) { mess = "充值失败"; } } else if (dbMember.Rows.Count > 1) { mess = "会员重复"; } else { mess = "会员不存在"; } } else { mess = "充值金额不正确"; } return Json(new { Status = status, Mess = mess }, JsonRequestBehavior.AllowGet); }
public ActionResult RechargeCardPassword() { int status = -1; string errmsg = "充值失败"; string key = HotelCloud.Common.HCRequest.GetString("key"); string hotelweixinId = key.Split('@')[0]; string userweixinId = key.Split('@')[1]; string cardPassword = HCRequest.GetString("CardPassword").Trim(); DataTable db_cardpassword = RechargeUserPassword.GeteCardPassword(hotelweixinId, cardPassword); if (db_cardpassword.Rows.Count == 0) { errmsg = "无效的卡密"; return Json(new { Status = status, Mess = errmsg }, JsonRequestBehavior.AllowGet); } DataTable dbMember = RechargeCard.GetRechargeMemberInfo(hotelweixinId, userweixinId); RechargeUser rechargeUser = new RechargeUser(); rechargeUser.SPrice = Convert.ToDecimal(db_cardpassword.Rows[0]["SPrice"]); rechargeUser.MPrice = Convert.ToDecimal(db_cardpassword.Rows[0]["MPrice"]); rechargeUser.IsCardPassword = true; rechargeUser.Source = "password"; rechargeUser.AddTime = DateTime.Now; rechargeUser.HotelWeixinId = hotelweixinId; rechargeUser.HotelId = Convert.ToInt32(db_cardpassword.Rows[0]["hotelId"]); rechargeUser.UserMobile = dbMember.Rows[0]["mobile"].ToString(); rechargeUser.PayType = 1; rechargeUser.UserLevel = dbMember.Rows[0]["vipType"].ToString(); rechargeUser.UserWeixinId = dbMember.Rows[0]["userWeixinNo"].ToString(); rechargeUser.UserName = dbMember.Rows[0]["name"].ToString(); rechargeUser.Beforebalance = Convert.ToDecimal(dbMember.Rows[0]["balance"].ToString()); rechargeUser.Balance = rechargeUser.Beforebalance + rechargeUser.MPrice; rechargeUser.OrderNo = "c" + DateTime.Now.ToString("yyMMddHHmmssfff") + new Random().Next(11, 99); rechargeUser.OrderStatus = 1; rechargeUser.CardId = Convert.ToInt32(db_cardpassword.Rows[0]["CardId"]); rechargeUser.TradeOrderNo = db_cardpassword.Rows[0]["cardPassword"].ToString(); using (TransactionScope scop = new TransactionScope()) { int rechargeId = WeiXin.Models.Home.RechargeUser.AddRechargeCard(rechargeUser); if (rechargeId > 0) { int cardrow = RechargeUserPassword.UpdateCardPasswordStatus(hotelweixinId, cardPassword, 1); if (cardrow > 0) { int row = RechargeCard.UpdateRechargeMemberBalance(hotelweixinId, userweixinId, rechargeUser.MPrice); if (row > 0) { status = 0; errmsg = "充值成功"; scop.Complete(); } } } } return Json(new { Status = status, Mess = errmsg }, JsonRequestBehavior.AllowGet); }
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") })); } }