微信基础类:用于连接微信的API,获取或发送数据。
1 static class WeiXinBase 2 { 3 public static string GetAccessToken(WeiXinConfig config) 4 { 5 string url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + config.AppID + "&secret=" + config.AppSecret; 6 JMAccessToken at = JsonHelper.ParseFormByJson<JMAccessToken>(HttpGet(url)); 7 return at.access_token; 8 } 9 10 public static string HttpGet(string url) 11 { 12 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 13 request.Method = "GET"; 14 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 15 Stream responseStream = response.GetResponseStream(); 16 string StrDate = string.Empty; 17 string strValue = string.Empty; 18 StreamReader Reader = new StreamReader(responseStream, Encoding.UTF8); 19 while ((StrDate = Reader.ReadLine()) != null) 20 { 21 strValue += StrDate + "\r\n"; 22 } 23 responseStream.Close(); 24 return strValue; 25 } 26 27 public static string HttpPost(string url, string postData) 28 { 29 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 30 request.Method = "POST"; 31 request.ContentType = "application/json;charset=UTF-8"; 32 byte[] payload = System.Text.Encoding.UTF8.GetBytes(postData); 33 request.ContentLength = payload.Length; 34 Stream requestStream = request.GetRequestStream(); 35 requestStream.Write(payload, 0, payload.Length); 36 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 37 Stream responseStream = response.GetResponseStream(); 38 string StrDate = string.Empty; 39 string strValue = string.Empty; 40 StreamReader Reader = new StreamReader(responseStream, Encoding.UTF8); 41 while ((StrDate = Reader.ReadLine()) != null) 42 { 43 strValue += StrDate + "\r\n"; 44 } 45 requestStream.Close(); 46 responseStream.Close(); 47 return strValue; 48 } 49 } 50 public class WeiXinConfig 51 { 52 public string AppID { get; set; } 53 public string AppSecret { get; set; } 54 public string AccessToken { get; set; } 55 } 56 public class JMAccessToken 57 { 58 public string access_token { get; set; } 59 public string expires_in { get; set; } 60 }
发消息功能
1 public class WeixinSms 2 { 3 private WeiXinConfig wxConfig; 4 5 public WeixinSms(WeiXinConfig config) 6 { 7 this.wxConfig = config; 8 } 9 10 public string Send(JMSendSms jmsms) 11 { 12 string url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=" + WeiXinBase.GetAccessToken(this.wxConfig); 13 return WeiXinBase.HttpPost(url, JsonHelper.ToJson<JMSendSmsAll>(jmsms)); 14 } 15 16 public string SendAll(JMSendSmsAll jmall) 17 { 18 string url = "https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=" + WeiXinBase.GetAccessToken(this.wxConfig); 19 return WeiXinBase.HttpPost(url, JsonHelper.ToJson<JMSendSmsAll>(jmall)); 20 } 21 }
Json数据转换请参考: JSON 数据转换