//public static Hashtable HashtableInstance //{ // get // { // if (_msgQueue == null) // { // lock (_objectHashtable) // { // if (_msgQueue == null) // { // _msgQueue = new Hashtable(); // } // } // } // return _msgQueue; // } //} public Result AddMessageQueue(string openID, long taskID, string ad_name) { Log.Default.Debug("AddMessageQueue:openID=" + openID + ";taskID=" + taskID); MessageQueueDAL dal = new MessageQueueDAL(); MessageQueueModel model = new MessageQueueModel(); model.PushStatus = (int)PushStatusEnum.等待; model.OpenID = openID; model.TaskID = taskID; model.AddTime = DateTime.Now; model.AdName = "wait"; dal.InsertSQL(model); //if (_msgQueue.ContainsKey(openID)) // return false.ToResult("消息队列中已存在这条消息"); //_msgQueue.Add(openID, taskID); return true.ToResult(); }
public Result SendMessageQueue() { MessageQueueDAL dal = new MessageQueueDAL(); int record = 0; IList<MessageQueueModel> _msgQueue = dal.Query(int.MaxValue, 1, out record, " PushStatus!=" + (int)PushStatusEnum.完成, " AddTime DESC"); Log.Default.Debug("MessageQueue-count:" + _msgQueue.Count); if (_msgQueue.Count < 1) { return false.ToResult(); } Snsapi_UserInfo ui = OAuth.GetAccessToken(MPOAuth.OAuthAppID, MPOAuth.OAuthAppSercet); var url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + ui.access_token; foreach (MessageQueueModel de in _msgQueue) { //Mission miss = InterfaceControler.GetMission(de.TaskID); //string ad_name = miss.ad_name; //string data = "{" + // "\"touser\": \"" + de.OpenID + "\"," + // "\"template_id\": \"" + ConfigurationManager.AppSettings["TemplateID"] + "\"," + // "\"topcolor\": \"#26c303\"," + // "\"url\": \"" + ConfigurationManager.AppSettings["ClientDeployDomain"] + "/MissionList.aspx\"," + // "\"data\": {" + // "\"first\": {\"value\":\"" + "您有新的任务" + "\",\"color\":\"#173177\"}," + // "\"keyword1\": {\"value\":\"" + ad_name + "\",\"color\":\"#173177\"}," + // "\"keyword2\": {\"value\":\"" + "待领" + "\",\"color\":\"#173177\"}," + // "\"remark\": {\"value\":\"" + "请及时领取" + "\",\"color\":\"#173177\"}" + // "}" + // "}"; //Log.Default.Debug("messageData:" + data); ////res = CommonJsonSend.Send(accessToken, url, data, CommonJsonSendType.POST); //string backstr = ""; //HttpWebResponse response = null; //StreamReader sr = null; //WxJsonResult wjr = new WxJsonResult(); //try //{ // HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); // byte[] requestBytes = System.Text.Encoding.UTF8.GetBytes(data); // req.Method = "POST"; // req.ContentType = "application/x-www-form-urlencoded"; // req.ContentLength = requestBytes.Length; // Stream requestStream = req.GetRequestStream(); // requestStream.Write(requestBytes, 0, requestBytes.Length); // requestStream.Close(); // response = (HttpWebResponse)req.GetResponse(); // sr = new StreamReader(response.GetResponseStream(), System.Text.Encoding.Default); // backstr = sr.ReadToEnd(); // Log.Default.Debug("backstr:" + backstr); // wjr = JsonConvert.DeserializeObject<WxJsonResult>(backstr); // de.PushStatus = (int)PushStatusEnum.完成; // dal.UpdateSQL(de); //} //catch (Exception ex) //{ // Log.Default.Error(ex); // if (sr != null) // sr.Close(); // if (response != null) // response.Close(); // try // { // de.PushStatus = (int)PushStatusEnum.失败; // dal.UpdateSQL(de); // } // catch (Exception) // { // } //} } return true.ToResult(); }