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; } }
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)); } }
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; } }
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); } }
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; } }
//验证签名 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); } }
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; } }
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; } }
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; } }