• 微信开发 回复用户消息 .net C#


    前段时间开发了公司的微信

     这里做个知识总结分享下经验,望一起学习。。。。。

     感觉后面写个系列的最好了 。。。。

     企业需求:

         给指定企业用户发送消息:如考勤信息、 企业通知、个人信息推送等等, 

      

       /// </summary>
            /// <param name="UserID">要发送的人ID</param>
            /// <param name="StrMessg">消息</param>
            private void SendMessage(string UserID, string StrMessg)
            {
                Como.LogUtil.WriteLog("回复用户" + UserID + "消息");
                string Access_Token = Como.GetAccessToken.GetAccess_token();
                if (Access_Token == "")
                    Como.LogUtil.WriteException("SendMessage 未能成功加载Access_Token");
                string Text = @"{
       ""touser"":";
                Text += '"' + UserID + '"';
                Text += "," + '"' + @"msgtype"": ""text"", 
               ""agentid"": ""5"", 
                ""text"": {
               ""content"":";
                Text += '"' + StrMessg + '"';
                Text += @"}, 
        ""safe"": ""0""
    }";
                ;
                string url = String.Format("https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={0}", Access_Token);
                string strResult = Como.Tools.GetPage(url, Text);
    
                JArray ja = (JArray)JsonConvert.DeserializeObject("[" + strResult + "]");
                string Error = "";
                try
                {
                    if (strResult.Contains("errcode"))
                    {
                        Error = ja[0]["errcode"].ToString();
                    }
                }
                catch (Exception ex)
                {
                    Como.LogUtil.WriteException("获取strResult,未获取到错误信息" + ex.Message.ToString());
                }
                string errcode = ja[0]["errcode"].ToString();
                string errmsg = ja[0]["errmsg"].ToString();
                if (errcode == "0" && errmsg == "ok")
                {
                    Como.LogUtil.WriteLog("回复成功!");
                }
                else
                {
                    Como.LogUtil.WriteLog("回复失败!");
                    Como.LogUtil.WriteException("回复失败:SendMessage:" + strResult); 
                }
            }
      /// <summary>
            /// 根据请求地址 和数据返回请求结果
            /// </summary>
            /// <param name="posturl"></param>
            /// <param name="postData"></param>
            /// <returns></returns>
            public static string GetPage(string posturl, string postData)
            {
    
                Stream outstream = null;
    
                Stream instream = null;
    
                StreamReader sr = null;
    
                HttpWebResponse response = null;
    
                HttpWebRequest request = null;
    
                Encoding encoding = Encoding.UTF8;
    
                byte[] data = encoding.GetBytes(postData);
    
                // 准备请求...
    
                try
                {
    
                    // 设置参数
    
                    request = WebRequest.Create(posturl) as HttpWebRequest;
    
                    CookieContainer cookieContainer = new CookieContainer();
    
                    request.CookieContainer = cookieContainer;
    
                    request.AllowAutoRedirect = true;
    
                    request.Method = "POST";
    
                    request.ContentType = "application/x-www-form-urlencoded";
    
                    request.ContentLength = data.Length;
    
                    outstream = request.GetRequestStream();
    
                    outstream.Write(data, 0, data.Length);
    
                    outstream.Close();
    
                    //发送请求并获取相应回应数据
    
                    response = request.GetResponse() as HttpWebResponse;
    
                    //直到request.GetResponse()程序才开始向目标网页发送Post请求
    
                    instream = response.GetResponseStream();
    
                    sr = new StreamReader(instream, encoding);
    
                    //返回结果网页(html)代码
    
                    string content = sr.ReadToEnd();
    
                    string err = string.Empty;
    
                    return content;
    
                }
    
                catch (Exception ex)
                {
    
                    string err = ex.Message;
                    Como.LogUtil.WriteException("Tools GetPage 异常为:"+err.ToString());
                    return string.Empty;
    
                }
    
            }

      参数引用详解:

           1.Como.GetAccessToken.GetAccess_token()   //获取 Access_token

           2.GetPage  //返回页面请求信息 结果

    
    

     以上为基础发送关键代码:

     以下为:成功后的实例图:

      有不懂的地方大家可以留言:

            个人原创,请勿抄袭!

  • 相关阅读:
    CSS cursor 属性笔记
    sql 不等于 <>
    去掉时间中的时分秒
    ref 和 out区别
    关于闭包(未完待续)
    面向对象——多态(摘)
    SQL Service 数据库 基本操作 视图 触发器 游标 存储过程
    遍历winform 页面上所有的textbox控价并赋值string.Empty
    关于Html 和Xml 区别(备忘)
    python之面向对象进阶
  • 原文地址:https://www.cnblogs.com/hcyblogs/p/5025586.html
Copyright © 2020-2023  润新知