最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MVC微信网页授权获取用户OpenId

来源:动视网 责编:小采 时间:2020-11-27 22:36:27
文档

MVC微信网页授权获取用户OpenId

MVC微信网页授权获取用户OpenId:最近开发微信公众平台,做下记录,以前也开发过,这次开发又给忘了,搞了半天,还是做个笔记为好。 注意框架为MVC 开发微信公众平台。场景为,在模板页中获取用户openid,想要进行验证的页面,集成模板页就可以了。 在_Layout.cshtml中加入如下代码
推荐度:
导读MVC微信网页授权获取用户OpenId:最近开发微信公众平台,做下记录,以前也开发过,这次开发又给忘了,搞了半天,还是做个笔记为好。 注意框架为MVC 开发微信公众平台。场景为,在模板页中获取用户openid,想要进行验证的页面,集成模板页就可以了。 在_Layout.cshtml中加入如下代码


最近开发微信公众平台,做下记录,以前也开发过,这次开发又给忘了,搞了半天,还是做个笔记为好。 

注意框架为MVC 开发微信公众平台。场景为,在模板页中获取用户openid,想要进行验证的页面,集成模板页就可以了。 

在_Layout.cshtml中加入如下代码 

<head>
 <meta charset="utf-8" />
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>@ViewBag.Title - My ASP.NET Application</title>
 @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);
 }
</head> 

类AdminUtil中加入GetOpenID方法 

#region 获取OpenID
 /// <summary>
 /// 获取OpenID
 /// </summary>
 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
 /// <summary>
 /// 获取OpenId
 /// </summary>
 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/oauth2/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/oauth2/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;
 } 
 /// <summary>
 /// 工具类
 /// </summary>
 public class Tools
 {
 #region 获取Json字符串某节点的值
 /// <summary>
 /// 获取Json字符串某节点的值
 /// </summary>
 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,不发送数据
 /// <summary>
 /// 请求Url,不发送数据
 /// </summary>
 public static string RequestUrl(string url)
 {
 return RequestUrl(url, "POST");
 }
 #endregion

 #region 请求Url,不发送数据
 /// <summary>
 /// 请求Url,不发送数据
 /// </summary>
 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

MVC微信网页授权获取用户OpenId:最近开发微信公众平台,做下记录,以前也开发过,这次开发又给忘了,搞了半天,还是做个笔记为好。 注意框架为MVC 开发微信公众平台。场景为,在模板页中获取用户openid,想要进行验证的页面,集成模板页就可以了。 在_Layout.cshtml中加入如下代码
推荐度:
标签: 微信 用户 获取
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top