public string InsertPicMsg(ImgMessage model) { try { string sqlStr = "insert into WC_PicMsg values (@MsgId, @PicUrl, @MediaId, @FromUserName, @CreateDate) "; conn.Execute(sqlStr, new { MsgId = model.MsgId, PicUrl = model.PicUrl, MediaId = model.MediaId, FromUserName = model.FromUserName, CreateDate = DateTime.Now }); sqlStr = "select PassCode from WC_PassCode where FromUserName=@FromUserName"; var result = conn.Query <string>(sqlStr, new { FromUserName = model.FromUserName }); if (result.Count() > 0) { return(result.SingleOrDefault()); } else { Random rd = new Random(~unchecked ((int)DateTime.Now.Ticks)); int code = rd.Next(100000, 1000000); sqlStr = "insert into WC_PassCode values (@FromUserName, @PassCode)"; conn.Execute(sqlStr, new { FromUserName = model.FromUserName, PassCode = code }); return(code.ToString()); } } catch (Exception ex) { return(string.Empty); } finally { conn.Close(); } }
public HttpResponseMessage Post(string signature, string timestamp, string nonce) { inputValue = string.Format("{0}--{1}--{2}", signature, timestamp, nonce); string postString; HttpResponseMessage msg = new HttpResponseMessage(HttpStatusCode.OK); msg.Content = new StringContent("success", System.Text.Encoding.UTF8, "text/html"); using (Stream stream = HttpContext.Current.Request.InputStream) { Byte[] postBytes = new Byte[stream.Length]; stream.Read(postBytes, 0, (Int32)stream.Length); postString = Encoding.UTF8.GetString(postBytes); Trace.WriteLine(postString); XElement xdoc = XElement.Parse(postString); var msgtype = xdoc.Element("MsgType").Value.ToUpper(); MsgType type = (MsgType)Enum.Parse(typeof(MsgType), msgtype); //BaseMessage baseMsg = ConvertObj<BaseMessage>(postString); if (queue == null) { queue = new List <BaseMessage>(); } else if (queue.Count >= 150) { queue.RemoveRange(0, 100); } switch (type) { case MsgType.TEXT: TextMessage textMsg = ConvertObj <TextMessage>(postString); break; case MsgType.IMAGE: ImgMessage imgMsg = ConvertObj <ImgMessage>(postString); SQLHelper db = new SQLHelper(connString); bool msgExists = db.CheckMsgExists(imgMsg.MsgId); if (msgExists) { return(msg); } else { string passCode = db.InsertPicMsg(imgMsg); string response = CreateTextReponse(imgMsg.FromUserName, imgMsg.ToUserName, passCode); Trace.WriteLine(response); msg.Content = new StringContent(response, System.Text.Encoding.UTF8, "text/html"); return(msg); } break; case MsgType.EVENT: msg.Content = new StringContent("", System.Text.Encoding.UTF8, "text/html"); EventMessage eventMsg = ConvertObj <EventMessage>(postString); if (eventMsg == null) { return(msg); } //break; if (eventMsg.Event == Event.SCAN) { if (queue.Where(v => v.CreateTime == eventMsg.CreateTime && v.FromUserName == v.FromUserName).Count() > 0) { return(msg); } else { queue.Add(eventMsg); Console.WriteLine(eventMsg.FromUserName); string sceneStr = eventMsg.EventKey; //扫码消息格式 ScanQR OpenID SenceStr SendMsg("118.190.45.106", 8712, "ScanQR " + eventMsg.FromUserName + " " + sceneStr); } } return(msg); //break; default: break; } } return(msg); }