1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 微信公众号查看关注者接口

微信公众号查看关注者接口

时间:2019-06-23 10:24:07

相关推荐

微信公众号查看关注者接口

一个人如若不能使自己的人生辉煌,但也没有理由使它黯淡;人生可以平凡,但不可以庸俗堕落;人生不在乎掠取多少,而在于追求过程的完美与卓越!

实体类:

public class userlist{public string total { get; set; }public string count { get; set; }public userlistopenid data { get; set; }public string next_openid { get; set; }}

public class userlistopenid{public List<string> openid { get; set;}

public class userdetail{public int subscribe { get; set; }public string openid { get; set; }public string nickname { get; set; }public int sex { get; set; }public string language { get; set; }public string city { get; set; }public string province { get; set; }public string country { get; set; }public string headimgurl { get; set; }public int subscribe_time { get; set; }public string unionid { get; set; }public string remark { get; set; }public int groupid { get; set; }public int[] tagid_list { get; set; }}

getUser.aspx代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="getUser.aspx.cs" Inherits="MyTest.WebUI.Manager.usermsg.getUser" %><!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title></title><!-- Bootstrap --><link href="///bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"><!--[if lt IE 9]><script src="///html5shiv/3.7.2/html5shiv.min.js"></script><script src="///respond.js/1.4.2/respond.min.js"></script><![endif]--></head><body><form runat="server"><div class="container"><div class="row"><div class="col-md-6 col-md-push-2"><asp:Button class="btn btn-primary" ID="btnGet" runat="server" Text="获取所有用户openID" OnClick="btnGet_Click" /></div><div class="col-md-6 col-md-pull-2"><asp:DropDownList CssClass="form-control" ID="ddlopenids" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlopenids_SelectedIndexChanged"></asp:DropDownList><asp:Label ID="lblMSG" runat="server" Text=""></asp:Label><asp:Image class="img-circle" ID="imgHead" runat="server" Width="180px" Height="180px" /></div></div></div><script src="///jquery/1.11.3/jquery.min.js"></script><script src="///bootstrap/3.3.5/js/bootstrap.min.js"></script></form></body></html>

public partial class getUser : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}//获取用户列表protected void btnGet_Click(object sender, EventArgs e){string next_opid = string.Empty;string url = "https://api./cgi-bin/user/get?access_token="+mainArg.get_Token()+"&next_openid=";HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);using (HttpWebResponse response = (HttpWebResponse)req.GetResponse()){StreamReader sr = new StreamReader(response.GetResponseStream());string result = sr.ReadToEnd();sr.Close();mon.Entity.userlist userlist = mon.Util.JsonEntityExchange<mon.Entity.userlist>.Json2Entity(result);//Response.Write(userlist.count + "/"+userlist.data+"/"+userlist.next_openid+"/"+userlist.total);ddlopenids.DataSource = userlist.data.openid;ddlopenids.DataTextField = "";ddlopenids.DataValueField = "";ddlopenids.DataBind();ListItem item = new ListItem();item.Text = "--请选择用户的openID--";item.Value = "--0--";ddlopenids.Items.Insert(0, item);}}//获取用户基本信息(包括UnionID机制)protected void ddlopenids_SelectedIndexChanged(object sender, EventArgs e){string url = "https://api./cgi-bin/user/info?access_token="+ mainArg.get_Token() + "&openid="+ddlopenids.SelectedItem.Text+"&lang=zh_CN ";HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);using (HttpWebResponse response = (HttpWebResponse)req.GetResponse()){StreamReader sr = new StreamReader(response.GetResponseStream());string result = sr.ReadToEnd();sr.Close();mon.Entity.userdetail user= mon.Util.JsonEntityExchange<mon.Entity.userdetail>.Json2Entity(result);lblMSG.Text = user.subscribe + "/" + user.openid + "/" + user.nickname + "/";imgHead.ImageUrl = user.headimgurl;}}}

mainArg.cs获取accessToken帮助类:

public class mainArg{//测试号public static string appid = "wx3eb5bf1290db2ca0";public static string secret = "e6013be0a7338c7d3e02877db116e231";public string jsapi_ticket;public string noncestr;public long timestamp;public string signature;private static string path = HttpContext.Current.Server.MapPath(@"~/TemplePath");private static string tokenPath = HttpContext.Current.Server.MapPath(@"~/TemplePath/token.txt");private static string ticketPath = HttpContext.Current.Server.MapPath(@"~/TemplePath/ticket.txt");public mainArg() {noncestr = getNonceStr();timestamp = getTime();}/// <summary>/// 获取access_token/// </summary>/// <returns></returns>public static string get_Token(){string token = null;//判断是否存在或过期if (File.Exists(tokenPath)) {FileStream fs = new FileStream(tokenPath, FileMode.Open);var serializer = new DataContractJsonSerializer(typeof(AccToken));AccToken readJSToken = (AccToken)serializer.ReadObject(fs);fs.Close();FileInfo fi = new FileInfo(tokenPath);if (CheckTimeOut(fi.LastWriteTime) < (readJSToken.expires_in-200)) {return token = readJSToken.access_token;}}string url = @"https://api./cgi-bin/token?grant_type=client_credential&";string urlarg = @"appid=" + appid + @"&secret=" + secret;// HttpUtility.UrlEncode(appid,Encoding.GetEncoding("utf-8"));url += urlarg;HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);using (WebResponse response = req.GetResponse()){Stream s = response.GetResponseStream();StreamReader sr = new StreamReader(s);token = sr.ReadToEnd();if (!Directory.Exists(path)){Directory.CreateDirectory(path);}if (File.Exists(tokenPath)){File.Delete(tokenPath);}FileStream fs = File.Create(tokenPath);StreamWriter sw = new StreamWriter(fs);sw.Write(token);sw.Flush();sw.Close();fs.Close();FileStream fs1 = new FileStream(tokenPath, FileMode.Open);var serializer = new DataContractJsonSerializer(typeof(AccToken));AccToken readJSToken = (AccToken)serializer.ReadObject(fs1);fs1.Close();token = readJSToken.access_token;return token;}}/// <summary>/// 获取ticket/// </summary>/// <returns></returns>public string getTicket() {string ticket = null;// 判断是否存在或过期if (File.Exists(ticketPath)){FileStream fs = new FileStream(ticketPath, FileMode.Open);var serializer = new DataContractJsonSerializer(typeof(JsTicket));JsTicket readJSTicket = (JsTicket)serializer.ReadObject(fs);fs.Close();FileInfo fi = new FileInfo(ticketPath);if (CheckTimeOut(fi.LastWriteTime) < (readJSTicket.expires_in - 200)){return ticket = readJSTicket.ticket;}}string url = @"https://api./cgi-bin/ticket/getticket?type=jsapi&";string urlarg = @"access_token="+get_Token();// HttpUtility.UrlEncode(appid,Encoding.GetEncoding("utf -8"));url += urlarg;HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);using (WebResponse response = req.GetResponse()){Stream s = response.GetResponseStream();StreamReader sr = new StreamReader(s);ticket = sr.ReadToEnd();if (!Directory.Exists(path)){Directory.CreateDirectory(path);}if (File.Exists(ticketPath)){File.Delete(ticketPath);}FileStream fs = File.Create(ticketPath);StreamWriter sw = new StreamWriter(fs);sw.Write(ticket);sw.Flush();sw.Close();fs.Close();FileStream fs1 = new FileStream(ticketPath, FileMode.Open);var serializer = new DataContractJsonSerializer(typeof(JsTicket));JsTicket readJSTicket = (JsTicket)serializer.ReadObject(fs1);fs1.Close();ticket = readJSTicket.ticket;return ticket;}}//public static long getTime() {return Convert.ToInt64((DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalSeconds);}public static string getTimeString(DateTime dt){TimeSpan ts = dt.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0, 0);return Convert.ToInt64(ts.TotalSeconds).ToString();}//获取16位随机字符串public static string getNonceStr(){int length = 16;string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";string str = "";Random rad = new Random();for (int i = 0; i < length; i++){str += chars.Substring(rad.Next(0, chars.Length - 1), 1);}return str;}//得到签名public string getSign() {jsapi_ticket = getTicket();string s1 = string.Format("jsapi_ticket={0}&noncestr={1}&timestamp={2}&url=/Manager/Main/testjs.aspx", jsapi_ticket, noncestr, timestamp.ToString()); signature = GetSHA1(s1);return signature;}public static string GetSHA1(string strSource){string strResult = string.Empty;System.Security.Cryptography.SHA1 sha = System.Security.Cryptography.SHA1.Create();byte[] bytResult = puteHash(System.Text.Encoding.UTF8.GetBytes(strSource));for (int i = 0; i < bytResult.Length; i++){strResult = strResult + bytResult[i].ToString("x2");}return strResult;}//SHA1哈希加密算法 public static string GetSHA1_1(string str_sha1_in){SHA1 sha1 = new SHA1CryptoServiceProvider();byte[] bytes_sha1_in = Encoding.Default.GetBytes(str_sha1_in);byte[] bytes_sha1_out = puteHash(bytes_sha1_in);string str_sha1_out = BitConverter.ToString(bytes_sha1_out);str_sha1_out = str_sha1_out.Replace("-", "").ToLower();return str_sha1_out;}// 判断是否超过7200spublic static long CheckTimeOut(DateTime changeTime){return Convert.ToInt64((DateTime.Now - changeTime).TotalSeconds);}}# region 创建Json序列化 及反序列化类目 //创建JSon类 保存文件 ticket.txtpublic class AccToken{public string access_token { get; set; }public long expires_in { get; set; }}//创建从微信返回结果的一个类 用于获取ticket public class JsTicket{public long errcode { get; set; }public string errmsg { get; set; }public string ticket { get; set; }public long expires_in { get; set; }}#endregion

JSon序列化,反序列化

public class JsonEntityExchange<T> where T:new(){/// <summary>/// json转实体LIST/// </summary>/// <param name="JsonStr"></param>/// <returns></returns>public static List<T> Json2Entitys(string JsonStr){JavaScriptSerializer Serializer = new JavaScriptSerializer();List<T> objs = Serializer.Deserialize<List<T>>(JsonStr);return objs;}/// <summary>/// json转实体/// </summary>/// <param name="json"></param>/// <returns></returns>public static T Json2Entity(string json){T obj = Activator.CreateInstance<T>();using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json))){DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());return (T)serializer.ReadObject(ms);}}/// <summary>/// 实体转json/// </summary>/// <param name="lists">实体list</param>/// <returns></returns>public static string Entity2Json(List<T> lists) {return new JavaScriptSerializer().Serialize(lists);}}

结果如图:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。