微信开发之微信发送消息

互联网 17-3-9
本内容为微信开发之微信发送消息

1,首先,获取开发者测试账号(申请),会根据当前扫码提供的账号生成测试账号: 链接地址:http://mp.weixin.qq.com/wiki/home/index.html

  这时候可以获取到测试用的appid和appsecrept,然后调用获取接口调用凭证 接口获取access_token;

2,下面说信息发送,模拟了单用户信息发送和多用户消息批量发送

  (1)基础方法,http方法    

/// <summary>          ///      http  get/post 公用方法          /// </summary>          /// <param name="requestUrl">请求链接</param>          /// <param name="requestJsonParams">请求参数值(如果是get方式此处为“”值,默认为 "")</param>          /// <param name="requestMethod">请求方式  post or get</param>          /// <returns></returns>          public static string Request(this string requestUrl, string requestMethod, string requestJsonParams = "")          {              string returnText = "";              StreamReader streamReader = null;              HttpWebRequest request = null;              HttpWebResponse response = null;                Encoding encoding = Encoding.UTF8;              request = (HttpWebRequest)WebRequest.Create(requestUrl);              request.Method = requestMethod;              if (!string.IsNullOrEmpty(requestJsonParams) && requestMethod.ToLower() == "post")              {                  byte[] buffer = encoding.GetBytes(requestJsonParams);                  request.ContentLength = buffer.Length;                  request.GetRequestStream().Write(buffer, 0, buffer.Length);              }                try              {                  response = (HttpWebResponse)request.GetResponse();                  using (streamReader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("gb2312")))//utf-8                  {                      returnText = streamReader.ReadToEnd();                  }              }              catch (Exception ex)              {                  returnText = ex.Message;              }                return returnText;          }

(2)模拟发送:  

/// <summary>          ///     发送微信信息(单用户发送)          /// </summary>          /// <param name="access_token">授权码(微信token)</param>          /// <param name="messageInfo">发送信息模型</param>          /// <returns></returns>          public static string SendSingleMessage(WeChatParamEntity messageInfo, string access_token)          {              messageInfo.MsgType = string.IsNullOrEmpty(messageInfo.MsgType) ? "text" : messageInfo.MsgType;              string jsonDataParams = messageInfo == null ? "" : JsonConvert.SerializeObject(new              {                  touser = messageInfo.ToUser,                  msgtype = messageInfo.MsgType,                  text = new { content = messageInfo.Text }              });              string requestUrl = string.Format(Consts.URL_POSTSINGLETEXTMESSAGE, access_token);              return requestUrl.Request("POST", jsonDataParams);          }          /// <summary>          ///     发送微信信息(多用户批量发送)          /// </summary>          /// <param name="access_token">授权码(微信token)</param>          /// <param name="messageInfo">发送信息模型</param>          /// <returns></returns>          public static string SendMessages(WeChatParamsEntity messageInfo, string access_token)          {              messageInfo.MsgType = string.IsNullOrEmpty(messageInfo.MsgType) ? "text" : messageInfo.MsgType;              string jsonDataParams = messageInfo == null ? "" : JsonConvert.SerializeObject(new              {                  touser = messageInfo.ToUser,                  msgtype = messageInfo.MsgType,                  text = new { content = messageInfo.Text }              });              string requestUrl = string.Format(Consts.URL_POSTTEXTMESSAGES, access_token);              return requestUrl.Request("POST", jsonDataParams);          }

  (3)两个参数 模型: 

/// <summary>      ///     微信 发送信息 参数实体模型      /// </summary>      public class WeChatParamEntity      {          /// <summary>          ///     普通用户openid          /// </summary>          public string ToUser { get; set; }          /// <summary>          ///     传输的文件类型(text,image, and so on)          /// </summary>          public string MsgType { get; set; } = "text";          /// <summary>          ///     传输文本内容          /// </summary>          public string Text { get; set; }        }        /// <summary>      ///     微信 发送信息 参数实体模型      /// </summary>      public class WeChatParamsEntity      {          /// <summary>          ///     普通用户openid          /// </summary>          public string[] ToUser { get; set; }          /// <summary>          ///     传输的文件类型(text,image, and so on)          /// </summary>          public string MsgType { get; set; } = "text";          /// <summary>          ///     传输文本内容          /// </summary>          public string Text { get; set; }        }

  (4)web.config中的链接

  

<!--微信接口-->        <add key="appid" value="wx123456789021"/>      <add key="appSecret" value="adasdsadasdasdsadasdsaqweqw"/>      <add key="getAccessTokenUrl" value="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&amp;appid={0}&amp;secret={1}"/>      <!--单用户信息发送-->      <add key="postSingleTextMessageUrl" value="https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token={0}"/>      <!--多用户批量发送-->      <add key="postTextMessagesUrl" value="https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token={0}"/>      <!--\微信接口-->

3,测试使用涉及到 touser的这个参数,这个是需要发送的对象的 openID,这个很简单,在开发者文档(也就是上面的步骤二中,)获取

appid 和appsecrept的时候,当前这个页面下面有一个二维码,找几个人用微信扫扫就可以自动获取openID ,这时候将参数带入脚本模拟

post即可

  另外需要注意:文档中提示的 json 参数格式

  注意三:token有效时间为7200,俩小时,需要判断当前发送信息用户的token有效性,同时每天最大可请求次数为2000.

获取token :

#region 获取token,并验证token过期时间            public static string GetAccessToken(string appid, string appSecret)          {              string token = "";              string requestUrl = string.Format(ConfigBLL.URL_GETACCESSTOKEN, appid, appSecret);              string requestResult = WebAPITransfer.Request(requestUrl, "GET", "");                CommonBLL.DebugLog(requestResult, "AccessToken-token-Params");              string[] strArray = requestResult.Split(',');              token = strArray[0].Split(':')[1].Replace("\"", "");                return token;          }            #endregion

以上就是微信开发之微信发送消息 的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 微信开发
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:C#微信开发:基础类之WeiXinConst

相关资讯