Example #1
0
        public object getMemberCard(Dictionary <string, object> dicParas)
        {
            try
            {
                string           mobile           = string.Empty;
                MobileTokenModel mobileTokenModel = (MobileTokenModel)(dicParas[Constant.MobileTokenModel]);
                string           sql        = "exec SelectMenber @Mobile,@Return output";
                SqlParameter[]   parameters = new SqlParameter[2];
                parameters[0]           = new SqlParameter("@Mobile", mobileTokenModel.Mobile);
                parameters[1]           = new SqlParameter("@Return", 0);
                parameters[1].Direction = System.Data.ParameterDirection.Output;
                System.Data.DataSet ds = XCGameManabll.ExecuteQuerySentence(sql, parameters);
                DataTable           dt = ds.Tables[0];
                if (dt.Rows.Count == 0)
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, ""));
                }
                var list = Utils.GetModelList <TmpmemberModel>(ds.Tables[0]).ToList();

                return(ResponseModelFactory <List <TmpmemberModel> > .CreateModel(isSignKeyReturn, list));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Example #2
0
        public object getSAppUserSession(Dictionary <string, object> dicParas)
        {
            WeiXinSAppSessionModel sessionModel = null;
            string errMsg           = string.Empty;
            string serverSessionKey = string.Empty;
            string code             = Utils.GetDictionaryValue <string>(dicParas, "code").ToString();

            if (WeiXinUserMana.GetWeiXinSAppUserSession(code, ref sessionModel, out serverSessionKey, out errMsg))
            {
                var dataObj = new {
                    serverSessionKey = serverSessionKey
                };

                //openId写入t_mobileToken
                try
                {
                    MobileTokenModel mobileTokenModel = (MobileTokenModel)(dicParas[Constant.MobileTokenModel]);
                    MobileTokenBusiness.UpdateOpenId(mobileTokenModel.Mobile, sessionModel.OpenId);
                }
                catch
                {
                }
                return(ResponseModelFactory.CreateAnonymousSuccessModel(isSignKeyReturn, dataObj));
            }
            else
            {
                return(ResponseModelFactory.CreateAnonymousSuccessModel(isSignKeyReturn, errMsg));
            }
        }
Example #3
0
        public object getAliMiniAppPaySign(Dictionary <string, object> dicParas)
        {
            try
            {
                int    coins       = 0;
                string orderNo     = string.Empty;
                string errMsg      = string.Empty;
                string mobileToken = dicParas.ContainsKey("mobileToken") ? dicParas["mobileToken"].ToString() : string.Empty;
                string storeId     = dicParas.ContainsKey("storeId") ? dicParas["storeId"].ToString() : string.Empty;
                string productName = dicParas.ContainsKey("productName") ? dicParas["productName"].ToString() : string.Empty;
                string payPriceStr = dicParas.ContainsKey("payPrice") ? dicParas["payPrice"].ToString() : string.Empty;
                string buyType     = dicParas.ContainsKey("buyType") ? dicParas["buyType"].ToString() : string.Empty;
                string coinsStr    = dicParas.ContainsKey("coins") ? dicParas["coins"].ToString() : string.Empty;

                decimal payPrice = 0;
                if (!decimal.TryParse(payPriceStr, out payPrice))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "支付金额不正确"));
                }

                if (!int.TryParse(coinsStr, out coins))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "购买币数不正确"));
                }
                MobileTokenModel mobileTokenModel = (MobileTokenModel)(dicParas[Constant.MobileTokenModel]);

                //生成服务器订单号
                orderNo = PayOrderHelper.CreateXCGameOrderNo(storeId, payPrice, 0, (int)(OrderType.Ali), productName, mobileTokenModel.Mobile, buyType, coins);

                IAopClient             client  = new DefaultAopClient(AliPayConfig.serverUrl, AliPayConfig.miniAppId, AliPayConfig.merchant_miniapp_private_key, "json", "1.0", "RSA2", AliPayConfig.alipay_miniapp_public_key, AliPayConfig.charset, false);
                AlipayTradeAppPayModel builder = new AlipayTradeAppPayModel();
                builder.Body           = "莘拍档-" + buyType;
                builder.Subject        = productName;
                builder.OutTradeNo     = orderNo;
                builder.TotalAmount    = payPrice.ToString("0.00");
                builder.ProductCode    = "QUICK_MSECURITY_PAY";
                builder.TimeoutExpress = "10m";

                AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();

                request.SetBizModel(builder);
                request.SetNotifyUrl(AliPayConfig.AliMiniAppNotify_url);

                AlipayTradeAppPayResponse response = client.SdkExecute(request);
                //string strSign = HttpUtility.HtmlEncode(response.Body);

                AlipayMiniAppSignModel model = new AlipayMiniAppSignModel();
                model.OrderId = orderNo;
                model.PaySign = response.Body;

                return(ResponseModelFactory <AlipayMiniAppSignModel> .CreateModel(isSignKeyReturn, model));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Example #4
0
        public static bool GetTokenData(Dictionary <string, object> dicParas, out TokenType tokenType, out string mobile, out string errMsg)
        {
            //获取token模式
            errMsg = string.Empty;
            mobile = string.Empty;
            XCGameMemberTokenModel memberTokenModel = Utils.GetDictionaryValue <XCGameMemberTokenModel>(dicParas, Constant.XCGameMemberTokenModel) as XCGameMemberTokenModel;
            MobileTokenModel       mobileTokenModel = Utils.GetDictionaryValue <MobileTokenModel>(dicParas, Constant.MobileTokenModel) as MobileTokenModel;

            tokenType = TokenType.Member;
            if (memberTokenModel != null && mobileTokenModel != null)
            {
                tokenType = TokenType.MemberAndMobile;
                if (!memberTokenModel.Mobile.Equals(mobileTokenModel.Mobile))
                {
                    errMsg = "手机令牌或会员令牌无效";
                    return(false);
                }
                return(true);
            }
            else if (memberTokenModel == null && mobileTokenModel != null)
            {
                tokenType = TokenType.Mobile;
                mobile    = mobileTokenModel.Mobile;
                return(true);
            }
            else if (memberTokenModel != null && mobileTokenModel == null)
            {
                tokenType = TokenType.Member;
                mobile    = memberTokenModel.Mobile;
                return(true);
            }
            else
            {
                errMsg = "手机令牌或会员令牌无效";
                return(false);
            }
        }
Example #5
0
        public object getfoods(Dictionary <string, object> dicParas)
        {
            try
            {
                string          errMsg     = string.Empty;
                TokenType       tokenType  = TokenType.Member;
                StoreCacheModel storeModel = null;
                List <XCCloudService.Model.XCGame.t_foods>       xcGameFoodsList = null;
                List <XCCloudService.Model.XCCloudRS232.t_foods> rs232FoodsList  = null;

                //获取token模式
                MobileTokenModel       mobileTokenModel = null;
                XCGameMemberTokenModel memberTokenModel = null;
                if (!XCCloudService.Business.XCGame.MeberAndMobileTokenBusiness.GetTokenData(dicParas, out tokenType, ref mobileTokenModel, ref memberTokenModel, out errMsg))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg));
                }

                //验证门店
                StoreBusiness store = new StoreBusiness();
                if (!store.IsEffectiveStore(memberTokenModel.StoreId, ref storeModel, out errMsg))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg));
                }
                if (storeModel.StoreType == 0)
                {
                    XCCloudService.BLL.IBLL.XCGame.IFoodsService memberService = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCGame.IFoodsService>(storeModel.StoreDBName);
                    xcGameFoodsList = memberService.GetModels(p => p.FoodState.Equals("1") && p.FoodType.Equals("0") && p.ForeAuthorize.ToString().Equals("0")).ToList <XCCloudService.Model.XCGame.t_foods>();
                }
                else if (storeModel.StoreType == 1)
                {
                    XCCloudService.BLL.IBLL.XCCloudRS232.IFoodsService memberService = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCCloudRS232.IFoodsService>();
                    rs232FoodsList = memberService.GetModels(p => p.FoodState == 1).ToList <XCCloudService.Model.XCCloudRS232.t_foods>();
                }

                //根据查询结果输出
                if (xcGameFoodsList == null && rs232FoodsList == null)
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "套餐明细信息不存在"));
                }
                else
                {
                    if (xcGameFoodsList != null)
                    {
                        List <FoodsResponseModel> foodsResponseModel = Utils.GetCopyList <FoodsResponseModel, XCCloudService.Model.XCGame.t_foods>(xcGameFoodsList);
                        SetFoodsResponseModelList(foodsResponseModel);
                        return(ResponseModelFactory <List <FoodsResponseModel> > .CreateModel(isSignKeyReturn, foodsResponseModel));
                    }
                    else
                    {
                        List <FoodsResponseModel> foodsResponseModel = Utils.GetCopyList <FoodsResponseModel, XCCloudService.Model.XCCloudRS232.t_foods>(rs232FoodsList);
                        SetFoodsResponseModelList(foodsResponseModel);
                        return(ResponseModelFactory <List <FoodsResponseModel> > .CreateModel(isSignKeyReturn, foodsResponseModel));
                    }
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Example #6
0
        //验证签名
        private bool CheckSignKey(SignKeyEnum signKeyEnum, Dictionary <string, object> dicParas, out string signkeyToken, out string errMsg)
        {
            errMsg       = string.Empty;
            signkeyToken = string.Empty;
            if (signKeyEnum == SignKeyEnum.MobileToken)
            {
                string mobile      = string.Empty;
                string mobileToken = Utils.GetDictionaryValue <string>(dicParas, "mobileToken").ToString();
                string storeId     = Utils.GetDictionaryValue <string>(dicParas, "storeId").ToString();
                //如果是手机token
                if (MobileTokenBusiness.ExistToken(mobileToken, out mobile))
                {
                    MobileTokenModel mobileTokenTokenModel = new MobileTokenModel(mobile);
                    dicParas.Add(Constant.MobileTokenModel, mobileTokenTokenModel);
                    return(true);
                }
                else
                {
                    errMsg = "手机令牌无效";
                    return(false);
                }
            }
            else if (signKeyEnum == SignKeyEnum.XCGameMemberToken)
            {
                string token = dicParas["memberToken"].ToString();
                //验证token
                XCGameMemberTokenModel memberTokenKeyModel = MemberTokenBusiness.GetMemberTokenModel(token);
                if (memberTokenKeyModel == null)
                {
                    errMsg = "token无效";
                    return(false);
                }
                else
                {
                    dicParas.Add(Constant.XCGameMemberTokenModel, memberTokenKeyModel);
                    return(true);
                }
            }
            else if (signKeyEnum == SignKeyEnum.XCGameMemberOrMobileToken)
            {
                string mobile      = string.Empty;
                string mobileToken = Utils.GetDictionaryValue <string>(dicParas, "mobileToken").ToString();
                string memberToken = Utils.GetDictionaryValue <string>(dicParas, "memberToken").ToString();
                if (string.IsNullOrEmpty(mobileToken) && string.IsNullOrEmpty(memberToken))
                {
                    errMsg = "手机令牌或会员令牌不正确";
                    return(false);
                }
                else if (!string.IsNullOrEmpty(mobileToken) && string.IsNullOrEmpty(memberToken))
                {
                    //如果是手机token
                    if (MobileTokenBusiness.ExistToken(mobileToken, out mobile))
                    {
                        MobileTokenModel mobileTokenTokenModel = new MobileTokenModel(mobile);
                        dicParas.Add(Constant.MobileTokenModel, mobileTokenTokenModel);
                        return(true);
                    }
                    else
                    {
                        errMsg = "手机令牌无效";
                        return(false);
                    }
                }
                else if (!string.IsNullOrEmpty(memberToken) && string.IsNullOrEmpty(mobileToken))
                {
                    XCGameMemberTokenModel memberTokenModel = MemberTokenBusiness.GetMemberTokenModel(memberToken);
                    if (memberTokenModel != null)
                    {
                        dicParas.Add(Constant.XCGameMemberTokenModel, memberTokenModel);
                        return(true);
                    }
                    else
                    {
                        errMsg = "会员令牌无效";
                        return(false);
                    }
                }
                else if (!string.IsNullOrEmpty(memberToken) && !string.IsNullOrEmpty(mobileToken))
                {
                    //手机token验证

                    if (!MobileTokenBusiness.ExistToken(mobileToken, out mobile))
                    {
                        errMsg = "手机令牌无效";
                        return(false);
                    }
                    MobileTokenModel mobileTokenModel = new MobileTokenModel(mobile);
                    dicParas.Add(Constant.MobileTokenModel, mobileTokenModel);

                    //会员token
                    XCGameMemberTokenModel memberTokenModel = MemberTokenBusiness.GetMemberTokenModel(memberToken);
                    if (memberTokenModel == null)
                    {
                        errMsg = "会员令牌无效";
                        return(false);
                    }
                    dicParas.Add(Constant.XCGameMemberTokenModel, memberTokenModel);

                    //会员token和手机token手机号对比
                    if (!memberTokenModel.Mobile.Equals(mobileTokenModel.Mobile))
                    {
                        errMsg = "手机令牌和会员令牌手机号不一致";
                        return(false);
                    }
                    return(true);
                }
                return(true);
            }
            else if (signKeyEnum == SignKeyEnum.XCGameUserCacheToken)
            {
                string mobile   = dicParas.ContainsKey("mobile") ? dicParas["mobile"].ToString() : string.Empty;
                string UserName = dicParas.ContainsKey("UserName") ? dicParas["UserName"].ToString() : string.Empty;
                string PassWord = dicParas.ContainsKey("PassWord") ? dicParas["PassWord"].ToString() : string.Empty;
                string storeId  = dicParas.ContainsKey("storeId") ? dicParas["storeId"].ToString() : string.Empty;
                if (string.IsNullOrEmpty(storeId))
                {
                    errMsg = "门店Id不能为空";
                    return(false);
                }
                if (string.IsNullOrEmpty(UserName))
                {
                    errMsg = "用户名不能为空";
                    return(false);
                }
                if (string.IsNullOrEmpty(PassWord))
                {
                    errMsg = "密码不能为空";
                    return(false);
                }
                if (string.IsNullOrEmpty(mobile))
                {
                    errMsg = "手机号码不能为空";
                    return(false);
                }
                return(true);
            }
            else if (signKeyEnum == SignKeyEnum.XCCloudUserCacheToken)
            {
                string token = dicParas["userToken"].ToString();

                //验证token
                XCCloudUserTokenModel userTokenKeyModel = XCCloudUserTokenBusiness.GetUserTokenModel(token);
                if (userTokenKeyModel == null)
                {
                    errMsg = "token无效";
                    return(false);
                }
                else
                {
                    dicParas.Add(Constant.XCCloudUserTokenModel, userTokenKeyModel);
                    return(true);
                }
            }
            else if (signKeyEnum == SignKeyEnum.MethodToken)
            {
                return(true);
            }
            else if (signKeyEnum == SignKeyEnum.XCGameAdminToken)
            {
                string userToken     = dicParas.ContainsKey("userToken") ? dicParas["userToken"].ToString() : string.Empty;
                string configUnionId = System.Configuration.ConfigurationManager.AppSettings["BossUnionId"].ToString();
                string unionId       = string.Empty;
                if (!UnionIdTokenBusiness.ExistToken(userToken, out unionId))
                {
                    errMsg = "用户令牌无效";
                    return(false);
                }
                if (!configUnionId.Contains(unionId))
                {
                    errMsg = "用户没有授权";
                    return(false);
                }
                return(true);
            }
            else if (signKeyEnum == SignKeyEnum.XCGameManaUserToken)
            {
                string userToken = dicParas.ContainsKey("userToken") ? dicParas["userToken"].ToString() : string.Empty;
                XCCloudManaUserTokenModel userTokenModel = XCCloudManaUserTokenBusiness.GetManaUserTokenModel(userToken);
                if (userTokenModel == null)
                {
                    errMsg = "用户没有授权";
                    return(false);
                }
                dicParas.Add(Constant.XCGameManaUserToken, userTokenModel);
                return(true);
            }
            else if (signKeyEnum == SignKeyEnum.XCGameManamAdminUserToken)
            {
                string userToken = dicParas.ContainsKey("userToken") ? dicParas["userToken"].ToString() : string.Empty;
                XCGameManaAdminUserTokenModel tokenModel = XCGameManaAdminUserTokenBusiness.GetTokenModel(userToken);
                if (tokenModel == null)
                {
                    errMsg = "用户没有授权";
                    return(false);
                }
                dicParas.Add(Constant.XCGameManamAdminUserToken, tokenModel);
                return(true);
            }
            else
            {
                string token   = dicParas["token"].ToString();
                string signKey = dicParas["signkey"].ToString();
                errMsg       = string.Empty;
                signkeyToken = "default";
                return(true);
            }
        }
Example #7
0
        public object getMemberToken(Dictionary <string, object> dicParas)
        {
            bool   isMember = false;
            string errMsg   = string.Empty;
            string storeId  = dicParas.ContainsKey("storeId") ? dicParas["storeId"].ToString() : string.Empty;

            try
            {
                MobileTokenModel mobileTokenModel = (MobileTokenModel)(dicParas[Constant.MobileTokenModel]);
                //获取终端号是否存在
                StoreCacheModel storeModel    = null;
                StoreBusiness   storeBusiness = new StoreBusiness();
                if (!storeBusiness.IsEffectiveStore(storeId, ref storeModel, out errMsg))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg));
                }

                //是否注册会员
                MemberResponseModel memberResponseModel = null;
                System.Data.DataSet ds = null;
                if (storeModel.StoreType == 0)
                {
                    XCCloudService.BLL.IBLL.XCGame.IMemberService memberService = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCGame.IMemberService>(storeModel.StoreDBName);
                    var count = memberService.GetModels(p => p.Mobile.Equals(mobileTokenModel.Mobile, StringComparison.OrdinalIgnoreCase)).Count <XCCloudService.Model.XCGame.t_member>();
                    if (count == 0)
                    {
                        string         sql        = " exec RegisterMember @Mobile,@MemberPassword,@WXOpenID,@Return output ";
                        SqlParameter[] parameters = new SqlParameter[4];
                        parameters[0]           = new SqlParameter("@Mobile", mobileTokenModel.Mobile);
                        parameters[1]           = new SqlParameter("@MemberPassword", "888888");
                        parameters[2]           = new SqlParameter("@WXOpenID", "");
                        parameters[3]           = new SqlParameter("@Return", 0);
                        parameters[3].Direction = System.Data.ParameterDirection.Output;
                        ds = XCGameBLL.ExecuteQuerySentence(sql, storeModel.StoreDBName, parameters);
                    }
                    else
                    {
                        string         sql        = " exec GetMember @Mobile,@ICCardID";
                        SqlParameter[] parameters = new SqlParameter[2];
                        parameters[0] = new SqlParameter("@Mobile", mobileTokenModel.Mobile);
                        parameters[1] = new SqlParameter("@ICCardID", "0");
                        ds            = XCGameBLL.ExecuteQuerySentence(sql, storeModel.StoreDBName, parameters);
                    }
                    memberResponseModel             = Utils.GetModelList <MemberResponseModel>(ds.Tables[0])[0];
                    memberResponseModel.MemberState = MemberBusiness.GetMemberStateName(memberResponseModel.MemberState);
                    isMember = true;
                }
                else if (storeModel.StoreType == 1)
                {
                    XCCloudService.BLL.IBLL.XCCloudRS232.IMemberService memberService = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCCloudRS232.IMemberService>();
                    var count = memberService.GetModels(p => p.Mobile.Equals(mobileTokenModel.Mobile, StringComparison.OrdinalIgnoreCase)).Count <XCCloudService.Model.XCCloudRS232.t_member>();
                    if (count == 0)
                    {
                        string         sql        = " exec RegisterMember @Mobile,@MerchId,@MemberPassword,@WXOpenID,@Return output ";
                        SqlParameter[] parameters = new SqlParameter[5];
                        parameters[0]           = new SqlParameter("@Mobile", mobileTokenModel.Mobile);
                        parameters[1]           = new SqlParameter("@MerchId", storeId);
                        parameters[2]           = new SqlParameter("@MemberPassword", "888888");
                        parameters[3]           = new SqlParameter("@WXOpenID", "");
                        parameters[4]           = new SqlParameter("@Return", 0);
                        parameters[4].Direction = System.Data.ParameterDirection.Output;
                        ds = XCCloudRS232BLL.ExecuteQuerySentence(sql, parameters);
                    }
                    else
                    {
                        string         sql        = " exec GetMember @Mobile,@MerchId,@ICCardID";
                        SqlParameter[] parameters = new SqlParameter[3];
                        parameters[0] = new SqlParameter("@Mobile", mobileTokenModel.Mobile);
                        parameters[1] = new SqlParameter("@MerchId", storeId);
                        parameters[2] = new SqlParameter("@ICCardID", "0");
                        ds            = XCCloudRS232BLL.ExecuteQuerySentence(sql, parameters);
                    }
                    memberResponseModel             = Utils.GetModelList <MemberResponseModel>(ds.Tables[0])[0];
                    memberResponseModel.MemberState = "有效";
                    isMember = true;
                }
                else
                {
                    isMember = false;
                }

                //设置会员token
                string token = string.Empty;
                if (isMember)
                {
                    token = MemberTokenBusiness.SetMemberToken(storeId, mobileTokenModel.Mobile, memberResponseModel.MemberLevelName, storeModel.StoreName, memberResponseModel.ICCardID.ToString(), memberResponseModel.EndDate);
                }

                MemberTokenResponseModel memberTokenModel = new MemberTokenResponseModel(storeId, storeModel.StoreName, token, isMember, memberResponseModel);
                return(ResponseModelFactory <MemberTokenResponseModel> .CreateModel(isSignKeyReturn, memberTokenModel));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Example #8
0
        public object saveCoins(Dictionary <string, object> dicParas)
        {
            try
            {
                string state         = string.Empty;
                string stateName     = string.Empty;
                string xcGameDBName  = string.Empty;
                string errMsg        = string.Empty;
                string storePassword = string.Empty;
                string terminalNo    = dicParas.ContainsKey("deviceToken") ? dicParas["deviceToken"].ToString() : string.Empty;

                XCGameMemberTokenModel memberTokenModel = (XCGameMemberTokenModel)(dicParas[Constant.XCGameMemberTokenModel]);
                MobileTokenModel       mobileTokenModel = (MobileTokenModel)(dicParas[Constant.MobileTokenModel]);

                //根据终端号查询终端号是否存在
                XCCloudService.BLL.IBLL.XCGameManager.IDeviceService deviceService = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCGameManager.IDeviceService>();
                var deviceModel = deviceService.GetModels(p => p.TerminalNo.Equals(terminalNo, StringComparison.OrdinalIgnoreCase)).FirstOrDefault <XCCloudService.Model.XCGameManager.t_device>();
                if (deviceModel == null)
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "终端号不存在"));
                }
                StoreBusiness store = new StoreBusiness();
                if (!store.IsEffectiveStore(deviceModel.StoreId, out xcGameDBName, out storePassword, out errMsg))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg));
                }

                if (!deviceModel.StoreId.Equals(memberTokenModel.StoreId))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "会员令牌对应门店和设备不一致"));
                }

                //判断设备状态是否为启用状态
                XCCloudService.BLL.IBLL.XCGame.IDeviceService ids = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCGame.IDeviceService>(xcGameDBName);
                var menlist = ids.GetModels(p => p.MCUID.Equals(deviceModel.DeviceId, StringComparison.OrdinalIgnoreCase)).FirstOrDefault <XCCloudService.Model.XCGame.t_device>();
                if (menlist == null)
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "设备不存在"));
                }

                if (menlist.state != "启用")
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "设备未启用"));
                }

                //验证缓存设备状态
                if (DeviceStateBusiness.ExistDeviceState(deviceModel.StoreId, deviceModel.DeviceId))
                {
                    state = DeviceStateBusiness.GetDeviceState(deviceModel.StoreId, deviceModel.DeviceId);
                }
                if (state != "1")
                {
                    stateName = DeviceStateBusiness.GetStateName(state);
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, stateName));
                }

                //请求雷达处理存币
                string action  = ((int)(DevieControlTypeEnum.存币)).ToString();
                string sn      = UDPSocketAnswerBusiness.GetSN();
                string orderId = System.Guid.NewGuid().ToString("N");
                DeviceControlRequestDataModel deviceControlModel = new DeviceControlRequestDataModel(deviceModel.StoreId, mobileTokenModel.Mobile, memberTokenModel.ICCardId, menlist.segment, menlist.MCUID, action, 0, sn, orderId, storePassword, 0, "");
                MPOrderBusiness.AddTCPAnswerOrder(orderId, mobileTokenModel.Mobile, 0, action, memberTokenModel.ICCardId, deviceModel.StoreId);
                IconOutLockBusiness.AddByNoTimeLimit(mobileTokenModel.Mobile);
                if (!DataFactory.SendDataToRadar(deviceControlModel, out errMsg))
                {
                    ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.F, "", Result_Code.T, errMsg);
                }

                //设置推送消息的缓存结构
                string form_id = dicParas.ContainsKey("form_id") ? dicParas["form_id"].ToString() : string.Empty;
                SAppMessageMana.SetMemberCoinsMsgCacheData(SAppMessageType.MemberCoinsOperationNotify, orderId, form_id, mobileTokenModel.Mobile, null, out errMsg);

                return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.T, ""));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public object getWXRepareId(Dictionary <string, object> dicParas)
        {
            try
            {
                int    coins            = 0;
                string orderNo          = string.Empty;
                string errMsg           = string.Empty;
                string mobileToken      = dicParas.ContainsKey("mobileToken") ? dicParas["mobileToken"].ToString() : string.Empty;
                string storeId          = dicParas.ContainsKey("storeId") ? dicParas["storeId"].ToString() : string.Empty;
                string productName      = dicParas.ContainsKey("productName") ? dicParas["productName"].ToString() : string.Empty;
                string payPriceStr      = dicParas.ContainsKey("payPrice") ? dicParas["payPrice"].ToString() : string.Empty;
                string buyType          = dicParas.ContainsKey("buyType") ? dicParas["buyType"].ToString() : string.Empty;
                string coinsStr         = dicParas.ContainsKey("coins") ? dicParas["coins"].ToString() : string.Empty;
                string serverSessionKey = dicParas.ContainsKey("serverSessionKey") ? dicParas["serverSessionKey"].ToString() : string.Empty;

                decimal payPrice = 0;
                if (!decimal.TryParse(payPriceStr, out payPrice))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "支付金额不正确"));
                }

                if (!int.TryParse(coinsStr, out coins))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "购买币数不正确"));
                }
                MobileTokenModel mobileTokenModel = (MobileTokenModel)(dicParas[Constant.MobileTokenModel]);

                //验证用户session,获取openId
                if (!WeiXinSAppSessionBussiness.Exist(serverSessionKey))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "用户Session失效"));
                }

                WeiXinSAppSessionModel sessionModel = null;
                WeiXinSAppSessionBussiness.GetSession(serverSessionKey, ref sessionModel);

                //生成服务器订单号
                orderNo = PayOrderHelper.CreateXCGameOrderNo(storeId, payPrice, 0, (int)(OrderType.WeiXin), productName, mobileTokenModel.Mobile, buyType, coins);

                JsApiPay jsApiPay = new JsApiPay();
                jsApiPay.openid       = sessionModel.OpenId;
                jsApiPay.total_fee    = (int)(payPrice * 100);
                jsApiPay.body         = productName;
                jsApiPay.out_trade_no = orderNo;
                jsApiPay.device_info  = storeId;


                //微信下单接口
                WxPayData wxPayData = null;
                try
                {
                    wxPayData = jsApiPay.GetUnifiedOrderResult();
                }
                catch (Exception e)
                {
                    LogHelper.SaveLog(TxtLogType.WeiXinPay, TxtLogContentType.Exception, TxtLogFileType.Day, e.Message);
                    return(ResponseModelFactory.CreateAnonymousModelByFail(isSignKeyReturn, "小程序下单失败"));
                }

                string result_code = wxPayData.GetValue("result_code") != null?wxPayData.GetValue("result_code").ToString() : "";

                string return_code = wxPayData.GetValue("return_code") != null?wxPayData.GetValue("return_code").ToString() : "";

                //根据微信下单结果判断
                if (result_code.Equals("SUCCESS") && return_code.Equals("SUCCESS"))
                {
                    //返回微信预处理订单信息
                    string prepay_id = wxPayData.GetValue("prepay_id").ToString();
                    string timeStamp = Utils.ConvertDateTimeToLong(System.DateTime.Now, 1).ToString();
                    string nonceStr  = System.Guid.NewGuid().ToString("N");

                    var dataObj = new
                    {
                        prepay_id = prepay_id,
                        timeStamp = timeStamp,
                        nonceStr  = nonceStr,
                        signType  = "MD5",
                        paySign   = WeiXinPaySignHelper.GetSAppPaySignKey(nonceStr, prepay_id, "MD5", timeStamp),
                        orderNo   = orderNo
                    };

                    return(ResponseModelFactory.CreateAnonymousSuccessModel(isSignKeyReturn, dataObj));
                }
                else
                {
                    return(ResponseModelFactory.CreateAnonymousModelByFail(isSignKeyReturn, "微信端响应出错"));
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #10
0
        public object register(Dictionary <string, object> dicParas)
        {
            try
            {
                string errMsg = string.Empty;
                string mobile = string.Empty;
                XCGameManaDeviceStoreType deviceStoreType;
                string storeId = dicParas.ContainsKey("storeId") ? dicParas["storeId"].ToString() : string.Empty;
                //验证手机token
                MobileTokenModel mobileTokenModel = (MobileTokenModel)(dicParas[Constant.MobileTokenModel]);
                mobile = mobileTokenModel.Mobile;
                //验证门店
                StoreCacheModel storeModel = null;
                StoreBusiness   store      = new StoreBusiness();
                if (!store.IsEffectiveStore(storeId, out deviceStoreType, ref storeModel, out errMsg))
                {
                    return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg));
                }

                string meberToken = string.Empty;
                if (deviceStoreType == XCGameManaDeviceStoreType.Store)
                {
                    XCCloudService.BLL.IBLL.XCGame.IMemberService memberService = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCGame.IMemberService>(storeModel.StoreDBName);
                    //获取手机号是否存在注册记录
                    var count = memberService.GetModels(p => p.Mobile.Equals(mobile, StringComparison.OrdinalIgnoreCase)).Count <XCCloudService.Model.XCGame.t_member>();
                    if (count == 0)
                    {
                        string         sql        = " exec RegisterMember @Mobile,@MemberPassword,@WXOpenID,@Return output ";
                        SqlParameter[] parameters = new SqlParameter[4];
                        parameters[0]           = new SqlParameter("@Mobile", mobile);
                        parameters[1]           = new SqlParameter("@MemberPassword", "888888");
                        parameters[2]           = new SqlParameter("@WXOpenID", "");
                        parameters[3]           = new SqlParameter("@Return", 0);
                        parameters[3].Direction = System.Data.ParameterDirection.Output;
                        System.Data.DataSet ds = XCGameBLL.ExecuteQuerySentence(sql, storeModel.StoreDBName, parameters);
                        MemberResponseModel memberResponseModel = Utils.GetModelList <MemberResponseModel>(ds.Tables[0])[0];
                        memberResponseModel.MemberState = MemberBusiness.GetMemberStateName(memberResponseModel.MemberState);
                        meberToken = MemberTokenBusiness.SetMemberToken(storeId, mobile, memberResponseModel.MemberLevelName, storeModel.StoreName, memberResponseModel.ICCardID.ToString(), memberResponseModel.EndDate);
                        RegisterMemberTokenResponseModel registerMemberTokenResponseModel = new RegisterMemberTokenResponseModel(storeId, storeModel.StoreName, meberToken, memberResponseModel);
                        return(ResponseModelFactory <RegisterMemberTokenResponseModel> .CreateModel(isSignKeyReturn, registerMemberTokenResponseModel));
                    }
                    else
                    {
                        //如果已注册,返回会员主要信息
                        string         sql        = " exec GetMember @Mobile,@ICCardID";
                        SqlParameter[] parameters = new SqlParameter[2];
                        parameters[0] = new SqlParameter("@Mobile", mobile);
                        parameters[1] = new SqlParameter("@ICCardID", "0");
                        System.Data.DataSet ds = XCGameBLL.ExecuteQuerySentence(sql, storeModel.StoreDBName, parameters);
                        MemberResponseModel memberResponseModel = Utils.GetModelList <MemberResponseModel>(ds.Tables[0])[0];
                        memberResponseModel.MemberState = MemberBusiness.GetMemberStateName(memberResponseModel.MemberState);
                        meberToken = MemberTokenBusiness.SetMemberToken(storeId, mobile, memberResponseModel.MemberLevelName, storeModel.StoreName, memberResponseModel.ICCardID.ToString(), memberResponseModel.EndDate);
                        RegisterMemberTokenResponseModel registerMemberTokenResponseModel = new RegisterMemberTokenResponseModel(storeId, storeModel.StoreName, meberToken, memberResponseModel);
                        return(ResponseModelFactory <RegisterMemberTokenResponseModel> .CreateModel(isSignKeyReturn, registerMemberTokenResponseModel));
                    }
                }
                else if (deviceStoreType == XCGameManaDeviceStoreType.Merch)
                {
                    XCCloudService.BLL.IBLL.XCCloudRS232.IMemberService memberService = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCCloudRS232.IMemberService>();
                    //获取手机号是否存在注册记录
                    var count = memberService.GetModels(p => p.Mobile.Equals(mobile, StringComparison.OrdinalIgnoreCase)).Count <XCCloudService.Model.XCCloudRS232.t_member>();
                    if (count == 0)
                    {
                        string         sql        = " exec RegisterMember @Mobile,@MerchId,@MemberPassword,@WXOpenID,@Return output ";
                        SqlParameter[] parameters = new SqlParameter[5];
                        parameters[0]           = new SqlParameter("@Mobile", mobile);
                        parameters[1]           = new SqlParameter("@MerchId", storeId);
                        parameters[2]           = new SqlParameter("@MemberPassword", "888888");
                        parameters[3]           = new SqlParameter("@WXOpenID", "");
                        parameters[4]           = new SqlParameter("@Return", 0);
                        parameters[4].Direction = System.Data.ParameterDirection.Output;
                        System.Data.DataSet ds = XCCloudRS232BLL.ExecuteQuerySentence(sql, parameters);
                        MemberResponseModel memberResponseModel = Utils.GetModelList <MemberResponseModel>(ds.Tables[0])[0];
                        memberResponseModel.MemberState = MemberBusiness.GetMemberStateName(memberResponseModel.MemberState);
                        meberToken = MemberTokenBusiness.SetMemberToken(storeId, mobile, memberResponseModel.MemberLevelName, storeModel.StoreName, memberResponseModel.ICCardID.ToString(), memberResponseModel.EndDate);
                        RegisterMemberTokenResponseModel registerMemberTokenResponseModel = new RegisterMemberTokenResponseModel(storeId, storeModel.StoreName, meberToken, memberResponseModel);
                        return(ResponseModelFactory <RegisterMemberTokenResponseModel> .CreateModel(isSignKeyReturn, registerMemberTokenResponseModel));
                    }
                    else
                    {
                        //如果已注册,返回会员主要信息
                        string         sql        = " exec GetMember @Mobile,@MerchId,@ICCardID";
                        SqlParameter[] parameters = new SqlParameter[3];
                        parameters[0] = new SqlParameter("@Mobile", mobile);
                        parameters[1] = new SqlParameter("@MerchId", storeId);
                        parameters[2] = new SqlParameter("@ICCardID", "0");
                        System.Data.DataSet ds = XCCloudRS232BLL.ExecuteQuerySentence(sql, parameters);
                        MemberResponseModel memberResponseModel = Utils.GetModelList <MemberResponseModel>(ds.Tables[0])[0];
                        memberResponseModel.MemberState = "使用中";
                        meberToken = MemberTokenBusiness.SetMemberToken(storeId, mobile, memberResponseModel.MemberLevelName, storeModel.StoreName, memberResponseModel.ICCardID.ToString(), memberResponseModel.EndDate);
                        RegisterMemberTokenResponseModel registerMemberTokenResponseModel = new RegisterMemberTokenResponseModel(storeId, storeModel.StoreName, meberToken, memberResponseModel);
                        return(ResponseModelFactory <RegisterMemberTokenResponseModel> .CreateModel(isSignKeyReturn, registerMemberTokenResponseModel));
                    }
                }
                else
                {
                    return(ResponseModelFactory.CreateFailModel(isSignKeyReturn, "店号无效"));
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }