Exemple #1
0
        /// <summary>
        /// 发送微信消息
        /// </summary>
        /// <returns></returns>
        private static bool SendWeiXinMsg(WeiXinSendMessage message, string AccessToken)
        {
            if (string.IsNullOrEmpty(AccessToken))
            {
                return(false);
            }
            //发送请求的url
            var            url     = string.Format("https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={0}", AccessToken);
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

            request.Method = "POST";
            var requestbody = JsonConvert.SerializeObject(message);

            byte[] byteArray = Encoding.UTF8.GetBytes(requestbody);
            request.ContentLength = byteArray.Length;
            Stream newStream = request.GetRequestStream();

            newStream.Write(byteArray, 0, byteArray.Length);
            newStream.Close();
            //发请求
            var          response = (HttpWebResponse)request.GetResponse();
            StreamReader sr       = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
            var          result   = sr.ReadToEnd();
            var          status   = JObject.Parse(result).ToObject <WeiXinStatus>();

            return(status.ErrMsg == "ok" ? true : false);
        }
Exemple #2
0
        /// <summary>
        /// 发消息
        /// </summary>
        /// <param name="task"></param>
        public static void SendTaskNotifyStatic(TaskRequest task)
        {
            var message = new WeiXinSendMessage();

            message.msgtype = "text";
            message.safe    = task.IsSafe ? "1" : "0";
            if (!string.IsNullOrWhiteSpace(task.ListUsers))
            {
                message.touser = task.ListUsers;
            }
            if (!string.IsNullOrWhiteSpace(task.ListPartys))
            {
                message.toparty = task.ListPartys;
            }

            if (string.IsNullOrWhiteSpace(task.ListUsers) && string.IsNullOrWhiteSpace(task.ListPartys))
            {
                message.toparty = "5";
            }

            message.agentid = 0;
            message.text    = new Text()
            {
                content = task.Content,
            };
            var CacheTokken = GetCaCheTokken();
            var sendresult  = SendWeiXinMsg(message, CacheTokken);

            //如果失败,尝试重置token,再试一次
            if (!sendresult)
            {
                if (HttpRuntime.Cache["WeiXinTokken"] != null)
                {
                    HttpRuntime.Cache.Remove("WeiXinTokken");
                }
                CacheTokken = GetCaCheTokken();
                sendresult  = SendWeiXinMsg(message, CacheTokken);
            }
        }