91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現MVC微信網頁授權獲取用戶OpenId

發布時間:2021-09-16 15:59:16 來源:億速云 閱讀:163 作者:小新 欄目:開發技術

小編給大家分享一下如何實現MVC微信網頁授權獲取用戶OpenId,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

注意框架為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/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;
  }
 /// <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”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江西省| 田东县| 永安市| 兴海县| 视频| 仁化县| 保康县| 大同县| 阿合奇县| 麦盖提县| 垦利县| 浦东新区| 册亨县| 湘潭县| 河东区| 西林县| 滦南县| 和龙市| 凤翔县| 贡觉县| 青海省| 蛟河市| 桐乡市| 颍上县| 南昌市| 封丘县| 福贡县| 扶绥县| 犍为县| 兴海县| 德令哈市| 长白| 山阴县| 松江区| 高陵县| 招远市| 桐柏县| 镇安县| 天峻县| 红原县| 福建省|