コード例 #1
0
        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);
        }
コード例 #2
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);

        }
コード例 #3
0
        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);

        }
コード例 #4
0
        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") }));
            }
        }