Exemple #1
0
        public Order updateStatus(Order order)
        {
            if (order != null)
            {
                using (DataContext db = new SqlserverContext())
                {
                    Table <Order> T_Order = db.GetTable <Order>();
                    //Order orders = (from c in T_Order where c.UserID == userId && c.ID == orderId select c) as Order;
                    Order orders = T_Order.FirstOrDefault <Order>(x => x.ID.Equals(order.ID));
                    LogerHelper.debug(orders.UserID);
                    if (orders != null)
                    {
                        Order order1 = T_Order.FirstOrDefault <Order>(x => x.ID.Equals(order.ID));
                        order1.State = (int)Commons.Type.USING;
                        db.SubmitChanges();
                        LogerHelper.debug("还车修改订单状态成功!" + orders.State);
                        if (orders != null)
                        {
                            return(orders);
                        }
                    }
                    else
                    {
                        LogerHelper.debug("还车修改订单状态失败!");
                    }
                }
            }
            else
            {
                LogerHelper.debug("输入order为空");
            }

            return(null);
        }
        public ActionResult Register(UserReg infos, HttpPostedFileBase UserDriverLicense)
        {
            LogerHelper.debug("/User/Register" + infos.LoginID + "  " + infos.LoginPwd);
            DefaultResult result = new DefaultResult();

            try
            {
                //判断是普通用户
                if (String.IsNullOrWhiteSpace(infos.LoginID) || String.IsNullOrWhiteSpace(infos.LoginPwd) ||
                    String.IsNullOrWhiteSpace(infos.CardId) ||
                    UserDriverLicense == null ||
                    String.IsNullOrWhiteSpace(infos.appkey) || String.IsNullOrWhiteSpace(infos.phone) ||
                    String.IsNullOrWhiteSpace(infos.zone) || String.IsNullOrWhiteSpace(infos.code)
                    )
                {
                    //注册信息不全,返回json字符串{‘’:‘’}
                    result.Code    = "0101";
                    result.Data    = "";
                    result.Message = "用户注册输入参数有空值";
                    //账号:11位数字
                    //密码:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
                }
                //else if (!(Regex.IsMatch(info.Telephone,@"^[0-9]{11}$")&&Regex.IsMatch(info.Password,@"^[0-9a-zA-Z]{32}$")))
                //{
                //    json.Data = new UserRegResult() { Code = "00", Response = "00", Data = "00", Message = "输入参数格式不对" };
                //}
                else
                {
                    string DriverLicensePath = string.Empty;
                    DriverLicensePath      = SaveFile(UserDriverLicense, DriverLicensePath);
                    infos.UserDriveLicense = DriverLicensePath;
                    //创建普通用户并增加权限
                    UserLogin logins = userbll.UserRegHandler(infos);
                    if (logins != null)
                    {//账号不存在
                        //USER_MANAGER.addPrivilege(current);
                        result.Code    = "0000";
                        result.Data    = "";
                        result.Message = "用户注册成功";
                        LogHelper.OutPut(this.Url.RequestContext, "用户注册成功");
                    }
                    else
                    {//账号存在
                        result.Code    = "0001";
                        result.Data    = "";
                        result.Message = "用户注册失败";
                        LogHelper.OutPut(this.Url.RequestContext, "用户注册失败");
                    }
                }
            }
            catch (Exception e)
            {
                result.Code    = "0201";
                result.Data    = "";
                result.Message = "系统繁忙,请联系客服";
                LogHelper.Exception(this.Url.RequestContext, e);
                //注册出现异常
            }
            return(Json(result));
        }
Exemple #3
0
        //记录输入参数日志

        public static void Input(params object[] p)
        {
            foreach (object t in p)
            {
                //如果参数是对象,输出序列化后对象
                //如过参数是一个或多个字符串
                LogerHelper.debug(ObjectToJson(t));
            }
        }
        public bool cupPayment(Cup cup)
        {
            if (!String.IsNullOrWhiteSpace(cup.txnType) && !String.IsNullOrWhiteSpace(cup.txnTime) &&
                !String.IsNullOrWhiteSpace(cup.respCode) && !String.IsNullOrWhiteSpace(cup.merId) &&
                !String.IsNullOrWhiteSpace(cup.orderId) && !String.IsNullOrWhiteSpace(cup.payType) &&
                !String.IsNullOrWhiteSpace(cup.payCardNo) && cup.txnAmt != 0)
            {
                //1.发送到消息队列 2.存入缓存
                //交易成功
                if (cup.respCode.Equals(Commons.CUP_SUCCESS))
                {
                    Order order = alipayDb.QueryOrder(cup.orderId) as Order;
                    //存在该订单
                    if (order != null)
                    {
                        Recharge charge = new Recharge()
                        {
                            ID      = Guid.NewGuid().ToString(),
                            UserID  = order.UserID,
                            OrderID = cup.orderId,
                            //单位:分
                            Amount     = cup.txnAmt,
                            Creater    = Commons.orderHandler.USER.ToString(),
                            CreateTime = DateTime.Now.ToString(),
                            PayOrderID = cup.queryId,
                            Remark     = "银联消费类交易交易",
                            Type       = (int)Commons.PayType.RECHARGE
                        };
                        OrderLog orderlog = new OrderLog()
                        {
                            CarID      = order.CarID,
                            CreateTime = DateTime.Now.ToString(),
                            OrderID    = cup.orderId,
                            Remark     = "银联订单支付完成",
                            State      = (int)Commons.Type.USING,
                            Time       = DateTime.Now.ToString(),
                            UserID     = order.UserID
                        };
                        cupQueue.SendCup(cup);
                        cupQueue.SendRecharge(charge);
                        LogerHelper.debug("银联操作成功");
                        //cupQueue.SendOrderLog(orderlog);
                        return(true);
                    }
                }
            }

            return(false);
        }
        public bool alipayPayment(Com.ChinaPalmPay.Platform.RentCar.Model.Alipay alipay)
        {
            //验证是否是支付宝发出的通知
            //如果alipay通知正确,存入消息队列
            if (!String.IsNullOrWhiteSpace(alipay.out_trade_no) && alipay.total_fee != 0 && !String.IsNullOrWhiteSpace(alipay.trade_status) &&
                !String.IsNullOrWhiteSpace(alipay.trade_no))
            {
                //1.发送到消息队列 2.存入缓存
                //交易成功
                if (alipay.trade_status.Equals(Commons.success) || alipay.trade_status.Equals(Commons.finished))
                {
                    Order order = alipayDb.QueryOrder(alipay.out_trade_no);
                    if (order != null)
                    {
                        Recharge charge = new Recharge()
                        {
                            ID      = Guid.NewGuid().ToString(),
                            UserID  = order.UserID,
                            OrderID = alipay.out_trade_no,
                            //单位:分
                            Amount     = alipay.total_fee * 100,
                            Creater    = Commons.orderHandler.USER.ToString(),
                            CreateTime = DateTime.Now.ToString(),
                            PayOrderID = alipay.trade_no,
                            Remark     = "支付宝交易",
                            Type       = (int)Commons.PayType.RECHARGE
                        };
                        OrderLog orderlog = new OrderLog()
                        {
                            CarID      = order.CarID,
                            CreateTime = DateTime.Now.ToString(),
                            OrderID    = alipay.out_trade_no,
                            Remark     = "支付宝订单支付完成",
                            State      = (int)Commons.Type.USING,
                            Time       = DateTime.Now.ToString(),
                            UserID     = order.UserID
                        };
                        alipayQueue.Send(alipay);
                        alipayQueue.Send(charge);
                        //alipayQueue.Send(orderlog);
                        LogerHelper.debug("支付宝操作成功");
                        return(true);
                    }
                }
            }

            return(false);
        }
 //***********************用户注册DB操作BEGIN*********************************
 public UserLogin Create(UserGroup Base, UserLogin login, User info, UserRegister register)
 {
     //DbTransaction tran = null;
     //DbConnection conn = null;
     //内存中不包含该用户,保存用户信息
     if (Base != null && info != null && login != null && register != null)
     {
         using (DataContext db = new SqlserverContext())
         {
             Table <UserGroup>    T_UserGroup    = db.GetTable <UserGroup>();
             Table <UserLogin>    T_UserLogin    = db.GetTable <UserLogin>();
             Table <User>         T_User         = db.GetTable <User>();
             Table <UserRegister> T_UserRegister = db.GetTable <UserRegister>();
             //conn = db.Connection;
             //if (conn.State == ConnectionState.Closed)
             //{
             //    conn.Open();
             //    tran = conn.BeginTransaction();
             //}
             T_UserGroup.InsertOnSubmit(Base);
             T_UserLogin.InsertOnSubmit(login);
             T_User.InsertOnSubmit(info);
             T_UserRegister.InsertOnSubmit(register);
             //tran.Commit();
             db.SubmitChanges();
             LogerHelper.debug("REGESTER SUCCESS");
             //conn.Close();
             return(login);
             //注册账号已经存在
         }
     }
     //  ctx.Connection.Close();
     //数据保存出错
     //HashOperator.getInstance().Set<UserGroup>("InsertUserBaseError", Base.ID, Base);
     //HashOperator.getInstance().Set<User>("InsertUserInfoError", info.UserGroupID, info);
     //保存失败,继续存储,保证数据库与内存数据实现同步
     //Thread oThread = new Thread(delegate()
     //{
     //    List<UserGroup> _userbase = HashOperator.getInstance().GetAll<UserGroup>("InsertUserBaseError");
     //    List<User> _userinfo = HashOperator.getInstance().GetAll<User>("InsertUserInfoError");
     //    SaveOrUpdateError.insertUser(_userbase, _userinfo);
     //});
     //oThread.Name = "INSERT_User";
     //oThread.Start();
     //存储日志
     return(null);
 }
        public ActionResult PayNotifyUrl()
        {
            try
            {
                string[] strs   = Request.RawUrl.ToString().Split("/".ToCharArray());
                string   userID = strs[strs.Length - 1];
                LogerHelper.DefaultInfo(strs[strs.Length - 1]);
                NotifyHandler resHandler = new NotifyHandler(Request.InputStream);
                Hashtable     table      = resHandler.Parameters;
                ArrayList     akeys      = new ArrayList(table.Keys);
                akeys.Sort();
                foreach (string k in akeys)
                {
                    string v = (string)table[k];
                    LogerHelper.DefaultInfo(v);
                }
                string openid       = resHandler.GetParameter("openid");
                string total_fee    = resHandler.GetParameter("total_fee");
                string out_trade_no = resHandler.GetParameter("out_trade_no");
                LogerHelper.DefaultInfo("total_fee:    " + total_fee);
                LogerHelper.DefaultInfo("out_trade_no:    " + out_trade_no);
                resHandler.SetKey(Mch_Id);
                //验证请求是否从微信发过来(安全)
                //  if (resHandler.IsTenpaySign())
                // {
                //正确的订单处理
                LogerHelper.DefaultInfo("nofify     ok");
                //此处userid是回调url最后一个参数
                if (paymentbll.chargePayment(userID, Convert.ToInt32(total_fee), out_trade_no, (int)Commons.PayType.RECHARGE))
                {
                    LogerHelper.debug("微信支付成功!");
                }
                // WebHelper.Post(LocalContext.platformUrl + "/Pay/Recharge", "UserID=" + (Common.GlobalMap[openid] as UserInformation).userid + "Amount=" + total_fee + "PayOrderID=" + out_trade_no + "Type=1");
                //  }
                // else
                // {
                //错误的订单处理
                // LogerHelper.DefaultInfo("nofify     no");
                //  }
            }
            catch (Exception ex)
            {
                LogerHelper.DefaultInfo("ex:    " + ex.ToString());
            }

            return(Content("success"));
        }
        public ActionResult verifyOpenId(string openid)
        {
            DefaultResult result = new DefaultResult();

            try
            {
                if (!String.IsNullOrWhiteSpace(openid))
                {
                    User user = userbll.queryOpenIdHandler(openid);
                    if (user != null)
                    {
                        LogerHelper.debug("查询openid" + openid);
                        result.Code    = "0000";
                        result.Data    = new { UserId = user.UserId, PhoneNumber = user.PhoneNumber, Password = user.Password, CardID = user.CardID, UserDriverLicense = Properties.getHost() + user.UserDriverLicense, UserStatus = user.UserStatus };
                        result.Message = "微信账号openId已存在";
                        LogHelper.OutPut(this.Url.RequestContext, new { UserId = user.UserId, PhoneNumber = user.PhoneNumber, Password = user.Password, CardID = user.CardID, UserDriverLicense = Properties.getHost() + user.UserDriverLicense, UserStatus = user.UserStatus });
                    }
                    else
                    {
                        result.Code    = "0001";
                        result.Data    = null;
                        result.Message = "微信账号openId不存在";
                        LogHelper.OutPut(this.Url.RequestContext, "微信账号openId不存在");
                    }
                }
                else
                {
                    result.Code    = "0101";
                    result.Data    = "";
                    result.Message = "微信账号openid参数为null";
                }
            }
            catch (Exception e)
            {
                result.Code    = "0201";
                result.Data    = "";
                result.Message = "系统繁忙,请联系客服";
                LogHelper.Exception(this.Url.RequestContext, e);
            }
            return(Json(result));
        }
        public CarStat addCarStat(OrderLog order)
        {
            LogerHelper.DefaultInfo("addCarStat:" + order.OrderID);
            //增加车状态
            using (DataContext db = new SqlserverContext())
            {
                Table <CarStat> T_PILE = db.GetTable <CarStat>();
                CarStat         stat   = new CarStat();

                CarStat c = (from m in T_PILE where m.CarID == order.CarID select m).FirstOrDefault();
                stat.id         = Guid.NewGuid().ToString().Replace("-", "");
                stat.stat       = (int)Commons.CatStatus.idle;
                stat.UserID     = order.UserID;
                stat.CarID      = order.CarID;
                stat.PilesID    = c.PilesID;
                stat.CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                T_PILE.InsertOnSubmit(stat);
                db.SubmitChanges();
                LogerHelper.debug("还车 Add CarStat 成功!");
                return(stat);
            }
        }
        // GET: /Pay/
        /**充值或消费或付款**/
        //IOS侧微信支付回调
        //192.168.0.5:8787/Pay/Recharge
        public ActionResult Charge(string UserID, int?Amount, string PayOrderID, int?Type)
        {
            string response = Request.Params.ToString();

            LogerHelper.DefaultInfo("微信回调");
            LogerHelper.DefaultInfo(response);
            string rrr = Request.Form.ToString();

            LogerHelper.DefaultInfo("POST:" + rrr);
            if (paymentbll.chargePayment(UserID, Amount, PayOrderID, Type))
            {
                LogerHelper.debug("微信支付成功!");
            }
            return(Content("cccc"));

            //if (!String.IsNullOrWhiteSpace(UserID) && !String.IsNullOrWhiteSpace(UserID)
            //    &&!String.IsNullOrWhiteSpace(UserID) && !String.IsNullOrWhiteSpace(UserID))
            //{

            //}
            //return null;
        }
        public ActionResult WeChatUserReg(string PhoneNumber, string Password, string IDCardNo, string OpenID, HttpPostedFileBase UserDriverLicense)
        {
            LogerHelper.debug("/User/WeChatUserReg  " + PhoneNumber + "  " + Password + "  " + IDCardNo + "  " + OpenID + "  " + UserDriverLicense);
            DefaultResult result = new DefaultResult();

            try
            {
                if (!String.IsNullOrWhiteSpace(PhoneNumber) && !String.IsNullOrWhiteSpace(Password) && !String.IsNullOrWhiteSpace(OpenID) && !String.IsNullOrWhiteSpace(IDCardNo) && UserDriverLicense != null)
                {
                    User userByCardID = db_manager.getUserByCardID(IDCardNo);


                    //if (userByCardID!=null && userByCardID.PhoneNumber == PhoneNumber) {
                    //    result.Code = "0005";
                    //    result.Data = null;
                    //    result.Message = "身份证已存在,手机号码不一致";
                    //    LogHelper.OutPut(this.Url.RequestContext, "微信用户绑定失败");
                    //    return Json(result);
                    //}

                    //User userByPhoneNumber = db_manager.getUserByPhoneNumber(PhoneNumber);
                    //if (userByPhoneNumber != null && userByPhoneNumber.CardID == IDCardNo)
                    //{
                    //    result.Code = "0006";
                    //    result.Data = null;
                    //    result.Message = "手机号码已存在,身份证不一致";
                    //    LogHelper.OutPut(this.Url.RequestContext, "微信用户绑定失败");
                    //    return Json(result);
                    //}
                    if (userByCardID != null && !userByCardID.PhoneNumber.Equals(PhoneNumber))
                    {
                        result.Code    = "0005";
                        result.Data    = null;
                        result.Message = "身份证已存在,手机号码不一致";
                        LogHelper.OutPut(this.Url.RequestContext, "微信用户绑定失败");
                        return(Json(result));
                    }

                    User userByPhoneNumber = db_manager.getUserByPhoneNumber(PhoneNumber);
                    if (userByPhoneNumber != null && !userByPhoneNumber.CardID.Equals(IDCardNo))
                    {
                        result.Code    = "0006";
                        result.Data    = null;
                        result.Message = "手机号码已存在,身份证不一致";
                        LogHelper.OutPut(this.Url.RequestContext, "微信用户绑定失败");
                        return(Json(result));
                    }



                    string DriverLicensePath = string.Empty;
                    // filePicturePath = SaveFile(filePicture, filePicturePath);
                    // info.PitcurePath = filePicturePath;
                    DriverLicensePath = SaveFile(UserDriverLicense, DriverLicensePath);
                    User use = userbll.WechatUserReg(PhoneNumber, Password, IDCardNo, OpenID, DriverLicensePath);
                    if (use != null)
                    {
                        result.Code    = "0000";
                        result.Data    = new { userId = use.UserId, CardId = use.CardID, UserDriverLicense = Properties.getHost() + use.UserDriverLicense, UserStatus = use.UserStatus };
                        result.Message = "微信用户绑定成功";
                        LogHelper.OutPut(this.Url.RequestContext, new { userId = use.UserId, CardId = use.CardID, UserDriverLicense = Properties.getHost() + use.UserDriverLicense, UserStatus = use.UserStatus });
                    }
                    else
                    {
                        result.Code    = "0001";
                        result.Data    = null;
                        result.Message = "微信用户绑定失败";
                        LogHelper.OutPut(this.Url.RequestContext, "微信用户绑定失败");
                    }
                }
                else
                {
                    result.Code    = "0101";
                    result.Data    = "";
                    result.Message = "微信用户绑定输入参数有空值";
                }
            }
            catch (Exception ex)
            {
                LogerHelper.debug("绑定异常!" + ex.Message);
                result.Code    = "0201";
                result.Data    = "";
                result.Message = "系统繁忙,请联系客服";
                LogHelper.Exception(this.Url.RequestContext, ex);
            }
            return(Json(result));
        }
        //银联支付结果回调接口
        public ActionResult CupComplete(Cup cup)
        {
            LogerHelper.DefaultInfo(Request.ToString());
            if (Request.HttpMethod == "POST")
            {
                // 使用Dictionary保存参数
                Dictionary <string, string> resData = new Dictionary <string, string>();

                NameValueCollection coll = Request.Form;

                string[] requestItem = coll.AllKeys;

                for (int i = 0; i < requestItem.Length; i++)
                {
                    resData.Add(requestItem[i], Request.Form[requestItem[i]]);
                }
                // 返回报文中不包含UPOG,表示Server端正确接收交易请求,则需要验证Server端返回报文的签名
                if (SDKUtil.Validate(resData, Encoding.UTF8))
                {
                    cup.accNo            = resData["accNo"];
                    cup.bindId           = resData["bindId"];
                    cup.bizType          = resData["bizType"];
                    cup.cupParams        = coll.ToString();
                    cup.id               = resData["id"];
                    cup.merId            = resData["merId"];
                    cup.orderId          = resData["orderId"];
                    cup.payCardIssueName = resData["payCardIssueName"];
                    cup.payCardNo        = resData["payCardNo"];
                    cup.payCardType      = resData["payCardType"];
                    cup.payType          = resData["payType"];
                    cup.queryId          = resData["queryId"];
                    cup.respCode         = resData["respCode"];
                    cup.respMsg          = resData["respMsg"];
                    cup.settleAmt        = Convert.ToInt32(resData["settleAmt"]);
                    cup.settleDate       = resData["settleDate"];
                    cup.txnAmt           = Convert.ToInt32(resData["txnAmt"]);
                    cup.txnTime          = resData["txnTime"];
                    cup.txnType          = resData["txnType"];
                    string respcode = resData["respCode"];
                    //Response.Write("商户端验证返回报文签名成功\n");

                    //商户端根据返回报文内容处理自己的业务逻辑 ,DEMO此处只输出报文结果
                    //StringBuilder builder = new StringBuilder();

                    //builder.Append("<tr><td align=\"center\" colspan=\"2\"><b>商户端接收银联返回报文并按照表格形式输出结果</b></td></tr>");

                    //for (int i = 0; i < requestItem.Length; i++)
                    //{
                    //    builder.Append("<tr><td width=\"30%\" align=\"right\">" + requestItem[i] + "</td><td style='word-break:break-all'>" + Request.Form[requestItem[i]] + "</td></tr>");
                    //}

                    //builder.Append("<tr><td width=\"30%\" align=\"right\">商户端验证银联返回报文结果</td><td>验证签名成功.</td></tr>");
                    //Response.Write(builder.ToString());
                    cup.cupParams = coll.ToString();
                    cup.id        = Guid.NewGuid().ToString().Replace("-", "");
                    if (paymentbll.cupPayment(cup))
                    {
                        LogerHelper.debug("银联支付成功");
                        return(Content("success"));
                    }
                }
                else
                {
                    LogerHelper.debug("银联支付失败");
                    // Response.Write("<tr><td width=\"30%\" align=\"right\">商户端验证银联返回报文结果</td><td>验证签名失败.</td></tr>");
                }
            }
            return(Content("fail"));
        }