/// <summary> /// 用户注册 /// </summary> /// <param name="commonObject"></param> /// <param name="SessionPool"></param> /// <param name="IP"></param> public static void Register(Socket sockeClient, string msg, Dictionary <string, Session> sessionPool, string IP) { string answerMsgType = Convert.ToInt32(TCPMessageType.用户客户端注册).ToString(); string mobile = string.Empty; string errMsg = string.Empty; //解析消息对象 SocketDataModel <UserSendObject> socketDataModel = Utils.DataContractJsonDeserializer <SocketDataModel <UserSendObject> >(msg); UserSendObject sendObj = socketDataModel.SendObject; string userToken = sendObj.UserToken; //设置客户端对象 List <string> repeatIPList = new List <string>(); var pair = sessionPool.Where(p => p.Value.SendClientId.Equals(userToken)); foreach (var p in pair) { if (!p.Value.IP.Equals(IP)) { repeatIPList.Add(p.Value.IP); } } foreach (var v in repeatIPList) { sessionPool.Remove(v); } sessionPool[IP].SendClientId = userToken; sessionPool[IP].SockeClient = sockeClient; //应答数据 SendSuccessData(answerMsgType, sessionPool, IP, "注册成功", null); }
public static void RadarAnswer(Socket sockeClient, string msg, Dictionary <string, Session> sessionPool, string sendIP) { string receiveIP = string.Empty; string receiveMobile = string.Empty; string errMsg = string.Empty; //解析消息对象 SocketDataModel <RadarSendObject, MemberReceiveObject, RadarAnswerObj> socketDataModel = Utils.DataContractJsonDeserializer <SocketDataModel <RadarSendObject, MemberReceiveObject, RadarAnswerObj> >(msg); RadarSendObject sendObj = socketDataModel.SendObject; MemberReceiveObject receiveObj = socketDataModel.ReceiveObject; RadarAnswerObj radarAnswerObj = socketDataModel.Data; //接受信息方是否存在 if (!GetIP(sessionPool, receiveObj.Mobile, out receiveIP)) { //tb.show(socketDataModel.MessageType, sendObj.StoreId, sendObj.Token, receiveObj.StoreId, receiveObj.Mobile, socketDataModel.Data.ToString(), "0"); return; } TcpHelper tb = new TcpHelper(); //发送消息给接受方 //var msgObj = Utils.DeserializeObject(socketDataModel.Data.ToString()); SendData(radarAnswerObj, sessionPool, receiveIP); //tb.show(socketDataModel.MessageType, sendObj.StoreId, sendMobile, "", receiveObj.Mobile, socketDataModel.Data.ToString(), "1"); }
private void sendData() { //出币后向客户端发送成功信息 //UDPSocketAnswerModel answerModel = UDPSocketAnswerBusiness.GetAnswerModel(model.SN); RadarSendObject sendObj = new RadarSendObject("100010", "001"); MemberReceiveObject receiveObj = new MemberReceiveObject("15618920033"); string messageType = Convert.ToInt16(TCPMessageType.雷达操作回复).ToString(); string sysId = Convert.ToInt16(XCCloudService.Common.Enum.SysIdEnum.UDP).ToString(); var dataObj = new { result_code = 1 }; SocketDataModel <RadarSendObject, MemberReceiveObject> socketDataModel = new SocketDataModel <RadarSendObject, MemberReceiveObject>(messageType, sysId, sendObj, receiveObj, Utils.SerializeObject(dataObj)); //TCPClientServiceForUDPBusiness.Send(Utils.DataContractJsonSerializer(socketDataModel)); }
public static void Coin(string msg, Dictionary <string, Session> sessionPool, string sendIP) { SocketDataModel <UserSendObject, CoinObj> socketDataModel = Utils.DataContractJsonDeserializer <SocketDataModel <UserSendObject, CoinObj> >(msg); UserSendObject sendObj = socketDataModel.SendObject; CoinObj coinObj = socketDataModel.Data; CoinUtility.GetSaleCoinerParameter(); CoinUtility coin = new CoinUtility(); coin.SendInit(); coin.SendOutCoin(coinObj.Coins); coin.SerialClose(); }
/// <summary> /// 读取IC卡信息 /// </summary> /// <param name="msg"></param> /// <param name="sessionPool"></param> /// <param name="sendIP"></param> public static void GetICCard(string msg, Dictionary <string, Session> sessionPool, string sendIP) { string receiveIP = string.Empty; string dogId = string.Empty; string answerMsgType = Convert.ToInt32(TCPMessageType.读取IC卡).ToString(); string cardMsg = string.Empty; string storePassword = string.Empty; string icCardId = string.Empty; string repeatCode = string.Empty; string memberRepeatCode = string.Empty; string errMsg = string.Empty; //解析消息对象 SocketDataModel <UserSendObject> socketDataModel = Utils.DataContractJsonDeserializer <SocketDataModel <UserSendObject> >(msg); UserSendObject sendObj = socketDataModel.SendObject; //接受信息方是否存在 if (!GetIP(sessionPool, sendObj.UserToken, out receiveIP)) { SendFailData(answerMsgType, sessionPool, sendIP, "用户未注册"); return; } //获取店密码接口 string userToken = sendObj.UserToken; if (!StoreBusiness.GetStorePassword(userToken, out storePassword, out errMsg)) { SendFailData(answerMsgType, sessionPool, sendIP, "获取门店信息出错"); return; } object result_data = null; //读取IC卡信息 if (ICCardUtility.GetICCardID(storePassword, out icCardId, out repeatCode, out errMsg)) { if (MemberBusiness.GetMember(userToken, sendObj.StoreId, icCardId, ref result_data, out errMsg)) { SendSuccessData(answerMsgType, sessionPool, sendIP, "读取会员信息成功", result_data); } else { SendFailData(answerMsgType, sessionPool, sendIP, errMsg); } } else { SendFailData(answerMsgType, sessionPool, sendIP, errMsg); } }
/// <summary> /// 消息推送 /// </summary> /// <param name="socketDataModel"></param> /// <param name="SessionPool"></param> /// <param name="IP"></param> public static void Push(Socket sockeClient, string msg, Dictionary <string, Session> sessionPool, string sendIP) { string receiveIP = string.Empty; string sendMobile = string.Empty; string receiveMobile = string.Empty; string errMsg = string.Empty; //解析消息对象 SocketDataModel <MemberSendObject, MemberReceiveObject> socketDataModel = Utils.DataContractJsonDeserializer <SocketDataModel <MemberSendObject, MemberReceiveObject> >(msg); MemberSendObject sendObj = socketDataModel.SendObject; MemberReceiveObject receiveObj = socketDataModel.ReceiveObject; if (!MobileTokenBusiness.ExistToken(sendObj.Token, out sendMobile)) { //如果发送方token不正确 var msgObj = new { result_code = 0, errMsg = "手机token无效" }; //TcpHelper.SaveDBLog(socketDataModel.MessageType, "", sendObj.Token, receiveObj.StoreId, receiveObj.Mobile, socketDataModel.Data.ToString(), "0"); SendData(msgObj, sessionPool, sendIP); } //接受信息方是否存在 if (!GetIP(sessionPool, receiveObj.Mobile, out receiveIP)) { //如果发送方token不正确 var msgObj = new { result_code = 0, errMsg = "对方不在线" }; //tb.show(socketDataModel.MessageType, sendObj.StoreId, sendObj.Token, receiveObj.StoreId, receiveObj.Mobile, socketDataModel.Data.ToString(), "0"); SendData(msgObj, sessionPool, sendIP); } else { TcpHelper tb = new TcpHelper(); //发送消息给接受方 var msgObj1 = new { result_code = 1, content = socketDataModel.Data }; SendData(msgObj1, sessionPool, receiveIP); //提示发送方消息发送成功 var msgObj2 = new { result_code = 1 }; SendData(msgObj2, sessionPool, sendIP); //记录TCP日志 //DataMessageModel logModel = new DataMessageModel(); //logModel.ManageType = socketDataModel.MessageType; //TcpHelper.SaveDBLog(socketDataModel.MessageType, "", sendMobile, "", receiveObj.Mobile, socketDataModel.Data.ToString(), "1"); } }
private void radarNotify(HttpContext context) { string errMsg = string.Empty; string token = context.Request["token"]; string action = context.Request["action"]; string result = context.Request["result"]; string orderid = context.Request["orderid"]; string sn = context.Request["sn"]; string signkey = context.Request["signkey"]; ClientService service = new ClientService(); service.Connection(); RadarNotifyRequestModel dataModel = new RadarNotifyRequestModel(); dataModel.Token = token; dataModel.SN = sn; dataModel.Result = result; dataModel.OrderId = orderid; dataModel.SignKey = ""; dataModel.Action = "1"; dataModel.Coins = "5"; byte[] data = DataFactory.CreateRequesProtocolData(TransmiteEnum.雷达通知指令, dataModel); service.Send(data); RadarSendObject sendObj = new RadarSendObject("100010", "0001"); //手机号码构建TCP接受对象 MemberReceiveObject receiveObj = new MemberReceiveObject("15618920033"); RadarAnswerObj radarAnswerObj = new RadarAnswerObj("1", ((int)(TCPAnswerMessageType.出币)).ToString(), "成功出币5"); SocketDataModel <RadarSendObject, MemberReceiveObject, RadarAnswerObj> socketDataModel = new SocketDataModel <RadarSendObject, MemberReceiveObject, RadarAnswerObj>("3", "0", sendObj, receiveObj, radarAnswerObj); //string str = Utils.DataContractJsonSerializer(socketDataModel); var dataObj = new { answerMsgType = "1", answerOjb = new { result_code = "1", answerMsg = "成功出币10个" } }; TCPServiceBusiness.Send("15618920033", dataObj); }
/// <summary> /// 用户注册 /// </summary> /// <param name="commonObject"></param> /// <param name="SessionPool"></param> /// <param name="IP"></param> public static void Register(Socket socketClient, string msg, Dictionary <string, Session> sessionPool, string IP) { string mobile = string.Empty; string errMsg = string.Empty; //解析消息对象 SocketDataModel <MemberSendObject, MemberReceiveObject> socketDataModel = Utils.DataContractJsonDeserializer <SocketDataModel <MemberSendObject, MemberReceiveObject> >(msg); MemberSendObject sendObj = socketDataModel.SendObject; //验证解析token if (MobileTokenBusiness.ExistToken(sendObj.Token, out mobile)) { //设置客户端对象 List <string> repeatIPList = new List <string>(); var pair = sessionPool.Where(p => p.Value.SendClientId.Equals(mobile)); foreach (var p in pair) { if (!p.Value.IP.Equals(IP)) { repeatIPList.Add(p.Value.IP); } } foreach (var v in repeatIPList) { sessionPool.Remove(v); } sessionPool[IP].SendClientId = mobile; sessionPool[IP].SockeClient = socketClient; //应答数据 var msgObj = new { result_code = 1, answerMsgType = "0", answerMsg = "注册成功" }; SendData(msgObj, sessionPool, IP); } else { //应答数据 var msgObj = new { result_code = 0, result_msg = "手机token无效" }; SendData(msgObj, sessionPool, IP); } }
public static void ExitICCard(string msg, Dictionary <string, Session> sessionPool, string sendIP) { string receiveIP = string.Empty; string dogId = string.Empty; string storePassword = string.Empty; string newICCardId = string.Empty; string errMsg = string.Empty; string answerMsgType = Convert.ToInt32(TCPMessageType.退卡).ToString(); //解析消息对象 SocketDataModel <UserSendObject> socketDataModel = Utils.DataContractJsonDeserializer <SocketDataModel <UserSendObject> >(msg); UserSendObject sendObj = socketDataModel.SendObject; //接受信息方是否存在 if (!GetIP(sessionPool, sendObj.UserToken, out receiveIP)) { SendFailData(answerMsgType, sessionPool, sendIP, "用户未注册"); return; } //获取店密码接口 string userToken = sendObj.UserToken; if (!StoreBusiness.GetStorePassword(userToken, out storePassword, out errMsg)) { SendFailData(answerMsgType, sessionPool, sendIP, "获取门店信息出错"); return; } //清理卡片 if (!ICCardUtility.RecoveryICCard(storePassword, out errMsg)) { SendFailData(answerMsgType, sessionPool, sendIP, errMsg); return; } else { SendSuccessData(answerMsgType, sessionPool, sendIP, "会员卡回收成功", null); } }
public static void CreateICCard(string msg, Dictionary <string, Session> sessionPool, string sendIP) { string sRepeatCode = (new Random()).Next(0, 255).ToString(); string receiveIP = string.Empty; string dogId = string.Empty; string storePassword = string.Empty; string newICCardId = string.Empty; string errMsg = string.Empty; string answerMsgType = Convert.ToInt32(TCPMessageType.办理新IC卡).ToString(); //解析消息对象 SocketDataModel <UserSendObject, MemberRegisterModel> socketDataModel = Utils.DataContractJsonDeserializer <SocketDataModel <UserSendObject, MemberRegisterModel> >(msg); UserSendObject sendObj = socketDataModel.SendObject; MemberRegisterModel memberRegisterModel = (MemberRegisterModel)(socketDataModel.Data); newICCardId = memberRegisterModel.ICCardId; //接受信息方是否存在 if (!GetIP(sessionPool, sendObj.UserToken, out receiveIP)) { SendFailData(answerMsgType, sessionPool, sendIP, "用户未注册"); return; } //获取店密码接口 string userToken = sendObj.UserToken; if (!StoreBusiness.GetStorePassword(userToken, out storePassword, out errMsg)) { SendFailData(answerMsgType, sessionPool, sendIP, "获取门店信息出错"); return; } //验证是否可以办卡 if (ICCardUtility.CheckNullCard(storePassword)) { if (MemberBusiness.CheckMemberCanRegister(userToken, memberRegisterModel.StoreId, memberRegisterModel.Mobile, out errMsg)) { //办理新卡 if (ICCardUtility.CreateICCard(newICCardId, sRepeatCode, storePassword, out errMsg, true)) { memberRegisterModel.RepeatCode = sRepeatCode; object result_data = null; int repeatCode = 0; if (MemberBusiness.MemberRegister(memberRegisterModel, out repeatCode, out errMsg, ref result_data)) { SendSuccessData(answerMsgType, sessionPool, sendIP, "会员卡开通成功", result_data); } else { SendFailData(answerMsgType, sessionPool, sendIP, errMsg); } } else { SendFailData(answerMsgType, sessionPool, sendIP, errMsg); } } else { SendFailData(answerMsgType, sessionPool, sendIP, errMsg); } } else { SendFailData(answerMsgType, sessionPool, sendIP, "本卡已使用,请插入空卡"); } }