如何实现MVC微信网页授权获取用户OpenId
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,小编给大家分享一下如何实现MVC微信网页授权获取用户OpenId,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!注意框架为M
千家信息网最后更新 2025年01月20日如何实现MVC微信网页授权获取用户OpenId
小编给大家分享一下如何实现MVC微信网页授权获取用户OpenId,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
注意框架为MVC 开发微信公众平台。场景为,在模板页中获取用户openid,想要进行验证的页面,集成模板页就可以了。
在_Layout.cshtml中加入如下代码
@ViewBag.Title - My ASP.NET Application @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/modernizr") @{ var code = HttpContext.Current.Request["code"]; Log.logmsg(code); string urlpath = HttpContext.Current.Request.Url.AbsoluteUri.ToString(); ViewBag.at = AdminUtil.GetOpenID(urlpath, code); }
类AdminUtil中加入GetOpenID方法
#region 获取OpenID ////// 获取OpenID /// public static string GetOpenID(string redirect_url, string code) { string AppID = WXModel.AppID; string AppSecret = WXModel.AppSecret; string openid = ""; openid = WXApi.GetOpenID(AppID, redirect_url, code, AppSecret); return openid; } #endregion
类WXApi中加入GetOpenID方法
#region 获取OpenId ////// 获取OpenId /// public static string GetOpenID(string appid, string redirect_url, string code, string screct) { string strJson = ""; if (string.IsNullOrEmpty(code)) { redirect_url = HttpUtility.UrlEncode(redirect_url); HttpContext.Current.Response.Redirect(string.Format("https://open.weixin.qq.com/connect/oauth3/authorize?appid={0}&redirect_uri={1}&response_type=code&scope=snsapi_base&state={2}#wechat_redirect", appid, redirect_url, new Random().Next(1000, 200000).ToString())); } else { strJson = HttpRequestUtil.RequestUrl(string.Format("https://api.weixin.qq.com/sns/oauth3/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appid, screct, code)); } return Tools.GetJsonValue(strJson, "openid"); } #endregion
public static class WXModel { public static string access_token; public static string AppID; public static string AppSecret; }
////// 工具类 /// public class Tools { #region 获取Json字符串某节点的值 ////// 获取Json字符串某节点的值 /// public static string GetJsonValue(string jsonStr, string key) { string result = string.Empty; if (!string.IsNullOrEmpty(jsonStr)) { key = "\"" + key.Trim('"') + "\""; int index = jsonStr.IndexOf(key) + key.Length + 1; if (index > key.Length + 1) { //先截逗号,若是最后一个,截"}"号,取最小值 int end = jsonStr.IndexOf(',', index); if (end == -1) { end = jsonStr.IndexOf('}', index); } result = jsonStr.Substring(index, end - index); result = result.Trim(new char[] { '"', ' ', '\'' }); //过滤引号或空格 } } return result; } #endregion }
public class HttpRequestUtil { #region 请求Url,不发送数据 ////// 请求Url,不发送数据 /// public static string RequestUrl(string url) { return RequestUrl(url, "POST"); } #endregion #region 请求Url,不发送数据 ////// 请求Url,不发送数据 /// public static string RequestUrl(string url, string method) { // 设置参数 HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; CookieContainer cookieContainer = new CookieContainer(); request.CookieContainer = cookieContainer; request.AllowAutoRedirect = true; request.Method = method; request.ContentType = "text/html"; request.Headers.Add("charset", "utf-8"); //发送请求并获取相应回应数据 HttpWebResponse response = request.GetResponse() as HttpWebResponse; //直到request.GetResponse()程序才开始向目标网页发送Post请求 Stream responseStream = response.GetResponseStream(); StreamReader sr = new StreamReader(responseStream, Encoding.Default); //返回结果网页(html)代码 string content = sr.ReadToEnd(); return content; } #endregion }
注意:需要在微信公众平台中设置授权回调域
以上是"如何实现MVC微信网页授权获取用户OpenId"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
数据
网页
用户
篇文章
中加
代码
公众
内容
字符
字符串
平台
方法
模板
节点
最小
不怎么
参数
场景
大部分
工具
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
微信小程序服务器设置
群晖数据库选择权限
辅警网络安全心得体会300字
行云数据库怎么登录
漳州市网络技术有限公司地址
学校弱口令网络安全整改报告
h3c服务器连接存储
网络安全专硕毕业前景
软件开发什么平台
我的世界服务器雪块
网络安全零报告表
喀什市网络安全局
软件开发工程师应届生面试题
战地一服务器管理器
成都管理软件开发价格
怎么连接外国服务器
税务ukey托管服务器哪卖
云计算和软件开发哪个好学
drcom服务器管理
深圳网络安全领域
信旺华府骏苑的服务器
建立员工合作伙伴数据库
软件开发成本要如何计算
专科网络安全专业有前途吗
网络安全协警职责
cepii数据库哪个代表中国
成都管理软件开发价格
桐梓县中医院网络安全
中美互联网科技公司对比图
云服务器免费试用