千家信息网

如何使用.NET微信公众号获取OpenID和用户信息

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这期内容当中小编将会给大家带来有关如何使用.NET微信公众号获取OpenID和用户信息,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Index.aspx.cs代码:
千家信息网最后更新 2026年11月01日如何使用.NET微信公众号获取OpenID和用户信息

这期内容当中小编将会给大家带来有关如何使用.NET微信公众号获取OpenID和用户信息,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

Index.aspx.cs代码:

 public partial class Index : System.Web.UI.Page {  //用户id  public string openid = "";  //公众号信息部分  public string appid = ConfigurationManager.AppSettings["AppId"];  public string appsecret = ConfigurationManager.AppSettings["AppSecret"];  public string redirect_uri =HttpUtility.UrlEncode("https://www.jb51.net");  public string scope = "【删除这个并填入请求类型,例如:snsapi_userinfo】";  #region 显示页面  public string accesstoken;  public string nickname;  public string sex;  public string headimgurl;  public string province;  public string country;  public string language;  public string city;  public string privilege = "";  #endregion  protected void Page_Load(object sender, EventArgs e)  {   /*   *微信认证获取openid部分:   *临时认证code   */   //微信认证部分:第二步 获得code   string code = Request["code"];   if (string.IsNullOrEmpty(code))   {    //如果code没获取成功,重新拉取一遍    OpenAccess();   }   //微信认证部分:第三步 获得openid   string url = string.Format("https://api.weixin.qq.com/sns/oauth3/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appid, appsecret, code);   string result = HttpClientHelper.GetResponse(url);   LogHelper.WriteFile(result);   JObject outputObj = JObject.Parse(result);   //微信认证部分:第四步 获得更多信息   accesstoken = outputObj["access_token"].ToString();   openid = outputObj["openid"].ToString();   url = string.Format("https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN",accesstoken,openid);   string result1 = HttpClientHelper.GetResponse(url);   LogHelper.WriteFile(result1);   JObject outputObj1 = JObject.Parse(result1);//将json转为数组   //以下是第四步获得的信息:      nickname = outputObj1["nickname"].ToString(); //昵称    sex = outputObj1["sex"].ToString(); //性别什么的    headimgurl = outputObj1["headimgurl"].ToString(); //头像url    province = outputObj1["province"].ToString(); ;    country = outputObj1["country"].ToString(); ;    language = outputObj1["language"].ToString(); ;    city = outputObj1["city"].ToString(); ;   //将获得的用户信息填入到session中   Session["openid"] = outputObj1["openid"];   //转向回入口   //OpenAccess();  }  /*   * 接入入口   * 开放到微信菜单中调用   * @param $dir_url 来源url   * @since 1.0   * @return void   */  public void OpenAccess()  {   //判断session不存在   if (Session["openid"] == null)   {    //认证第一步:重定向跳转至认证网址    string url = string.Format("https://open.weixin.qq.com/connect/oauth3/authorize?appid={0}&redirect_uri={1}&&response_type=code&scope=snsapi_userinfo&m=oauth3#wechat_redirect", appid, redirect_uri);    Response.Redirect(url);   }   //判断session存在   else   {    //跳转到前端页面.aspx    Response.Redirect(Request.Url.ToString());   }  } }

Index.aspx内容:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="TEST.Index" %>     

openid:<%=openid%>

nickname:<%=nickname%>

sex:<%=sex%>

language:<%=language%>

city:<%=city%>

country:<%=country%>

headimgurl:

privilege:<%=privilege%>

HttpClientHelper.cs代码:

public class HttpClientHelper {  ///   ///  get请求  ///   ///   ///   public static string GetResponse(string url)  {   if (url.StartsWith("https"))   {    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;   }   var httpClient = new HttpClient();   httpClient.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json"));   HttpResponseMessage response = httpClient.GetAsync(url).Result;   if (response.IsSuccessStatusCode)   {    string result = response.Content.ReadAsStringAsync().Result;    return result;   }   return null;  }  public static T GetResponse(string url)   where T : class, new()  {   if (url.StartsWith("https"))    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;   var httpClient = new HttpClient();   httpClient.DefaultRequestHeaders.Accept.Add(    new MediaTypeWithQualityHeaderValue("application/json"));   HttpResponseMessage response = httpClient.GetAsync(url).Result;   T result = default(T);   if (response.IsSuccessStatusCode)   {    Task t = response.Content.ReadAsStringAsync();    string s = t.Result;    result = JsonConvert.DeserializeObject(s);   }   return result;  }  ///   ///  post请求  ///   ///   /// post数据  ///   public static string PostResponse(string url, string postData)  {   if (url.StartsWith("https"))    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;   HttpContent httpContent = new StringContent(postData);   httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");   var httpClient = new HttpClient();   HttpResponseMessage response = httpClient.PostAsync(url, httpContent).Result;   if (response.IsSuccessStatusCode)   {    string result = response.Content.ReadAsStringAsync().Result;    return result;   }   return null;  }  ///   ///  发起post请求  ///   ///   /// url  /// post数据  ///   public static T PostResponse(string url, string postData)   where T : class, new()  {   if (url.StartsWith("https"))    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;   HttpContent httpContent = new StringContent(postData);   httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");   var httpClient = new HttpClient();   T result = default(T);   HttpResponseMessage response = httpClient.PostAsync(url, httpContent).Result;   if (response.IsSuccessStatusCode)   {    Task t = response.Content.ReadAsStringAsync();    string s = t.Result;    result = JsonConvert.DeserializeObject(s);   }   return result;  }  ///   ///  V3接口全部为Xml形式,故有此方法  ///   ///   ///   ///   ///   public static T PostXmlResponse(string url, string xmlString)   where T : class, new()  {   if (url.StartsWith("https"))    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;   HttpContent httpContent = new StringContent(xmlString);   httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");   var httpClient = new HttpClient();   T result = default(T);   HttpResponseMessage response = httpClient.PostAsync(url, httpContent).Result;   if (response.IsSuccessStatusCode)   {    Task t = response.Content.ReadAsStringAsync();    string s = t.Result;    result = XmlDeserialize(s);   }   return result;  }  ///   ///  反序列化Xml  ///   ///   ///   ///   public static T XmlDeserialize(string xmlString)   where T : class, new()  {   try   {    var ser = new XmlSerializer(typeof (T));    using (var reader = new StringReader(xmlString))    {     return (T) ser.Deserialize(reader);    }   }   catch (Exception ex)   {    throw new Exception("XmlDeserialize发生异常:xmlString:" + xmlString + "异常信息:" + ex.Message);   }  } }

结果如图:

上述就是小编为大家分享的如何使用.NET微信公众号获取OpenID和用户信息了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

信息 认证 部分 用户 公众 内容 代码 入口 数据 更多 页面 分析 成功 专业 中小 内容丰富 前端 头像 就是 序列 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网加科技 互联网科技公司起名 小马过河互联网科技 互联网科技缩写 多迪互联网科技有限公司 科技类的互联网平台 中正互联网科技招聘 互联网科技生活的内容 成都仁贤领冠互联网科技有限公司 安控科技rtu产品工业互联网 江苏南京365互联网科技 贵州叶脉互联网科技有限公司所属行业 苏州铭阳互联网科技有限公司 互联网科技的全部知识 易企秀互联网科技是做什么的 昆明中奇联合互联网科技 互联网金融运营模式中的金融科技 互联网科技对化妆品行业 东风日产互联网科技公司叫什么 如何强化互联网金融科技 华服互联网科技怎么样 北京路客互联网科技有限公司 科技互联网项目 互联网科技公司税收优惠 互联网科技垄断 互联网公司 科技公司 狮子座互联网科技有限公司 四个字互联网科技公司取名 哈尔滨秒房互联网科技有限公司 上海电发互联网科技有限公司
0