国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
微信公眾平臺開發(fā)

在借鑒前兩篇獲取微信用戶基本信息的基礎下,本人也總結(jié)整理了一些個人筆記:如何通過OAuth2.0獲取微信用戶信息

 

1、首先在某微信平臺下配置OAuth2.0授權回調(diào)頁面:

2、通過appid構(gòu)造url獲取微信回傳code值(appid可在微信平臺下找到)

1)、微信不彈出授權頁面url:

A、code回傳到頁面wxProcess2.aspx,不帶參數(shù)

Response.Redirect(" 

B、code回傳到頁面wxProcess2.aspx,帶參數(shù)reurl,即wxProcess2.aspx獲得code的同時,也能獲取reurl的值,具體如下:

Response.Redirect("

2)、微信彈出授權頁面url:需要用戶授權,才能獲取code及后面需要獲取的用戶信息

Response.Redirect("

 

說明:微信是否彈出授權頁面url的區(qū)別只在一個參數(shù)scope,不彈出微信授權頁面:scope=snsapi_base,彈出微信授權頁面:scope=snsapi_userinfo。

微信授權頁面如下:

 

3、通過appid、secret、code構(gòu)造url,獲取微信用戶的openid和accesstoken。appid、secret可在微信平臺下找到,code已在上面方法中獲取并回傳。具體訪問url:

 

4、通過openid、access token獲取用戶信息,具體訪問url:

說明:主要通過訪問微信的3個url地址并回傳數(shù)據(jù),獲取微信用戶基本信息

 

====================================================================

具體代碼:

1、獲取微信code處理頁面:wxProcess.aspx

protected void Page_Load(object sender, EventArgs e)
    {
       if (!IsPostBack)
       {
           string reurl = "";
           //傳遞參數(shù),獲取用戶信息后,可跳轉(zhuǎn)到自己定義的頁面,想怎么處理就怎么處理
           if (Request.QueryString["reurl"] != null &&Request.QueryString["reurl"] != "")
           {
               reurl = Request.QueryString["reurl"].ToString();
           }
           else
           {
               reurl = "
           }

           string code = "";

           //彈出授權頁面(如在不彈出授權頁面基礎下未獲得openid,則彈出授權頁面,提示用戶授權)
           if (Request.QueryString["auth"] != null &&Request.QueryString["auth"] != "" &&Request.QueryString["auth"] == "1")
           {
               Response.Redirect("
           }
           else
           {
               //不彈出授權頁面
               Response.Redirect("
          }
       }
    }

 

2、獲取微信code值回傳到自己的頁面wxProcess2.aspx:

public string reurl = "";
    protectedvoid Page_Load(object sender, EventArgs e)
    {
       if (!IsPostBack)
       {
           //獲取從wxProcess.aspx傳遞過來的跳轉(zhuǎn)地址reurl
           if (Request.QueryString["reurl"] != null &&Request.QueryString["reurl"] != "")
           {
               reurl = Request.QueryString["reurl"].ToString();
           }

           string code = "";
           if (Request.QueryString["code"] != null &&Request.QueryString["code"] != "")
           {
               //獲取微信回傳的code
               code =Request.QueryString["code"].ToString();  
               OAuth_Token Model = Get_token(code); //獲取token
               OAuthUser OAuthUser_Model = Get_UserInfo(Model.access_token,Model.openid );
               if(OAuthUser_Model.openid!=null && OAuthUser_Model.openid!="")  //已獲取得openid及其他信息
               {
                   //在頁面上輸出用戶信息
                   Response.Write("用戶OPENID:" + OAuthUser_Model.openid + "
用戶昵稱:" + OAuthUser_Model.nickname + "
性別:" + OAuthUser_Model.sex + "
所在省:" + OAuthUser_Model.province + "
所在市:" + OAuthUser_Model.city + "
所在國家:" + OAuthUser_Model.country + "
頭像地址:" + OAuthUser_Model.headimgurl + "
用戶特權信息:" + OAuthUser_Model.privilege);
                   //或跳轉(zhuǎn)到自己的頁面,想怎么處理就怎么處理
                   Response.Redirect(reurl);
               }
               else //未獲得openid,回到wxProcess.aspx,訪問彈出微信授權頁面
               {
                   Response.Redirect("wxProcess.aspx?auth=1");
               }
           }
       }
    }

 

   #region 屬性
    publicstring appid = "wx6669e231bffa123f"; //公眾微信平臺下可以找到
    publicstring appsecret ="9d693f7a81236c123464281115p78445"; //公眾微信平臺下可以找到
   #endregion

 

 //根據(jù)appid,secret,code獲取微信openid、accesstoken信息
    protectedOAuth_Token Get_token(string Code)
    {
       //獲取微信回傳的openid、access token
       string Str = GetJson("
       //微信回傳的數(shù)據(jù)為Json格式,將Json格式轉(zhuǎn)化成對象
       OAuth_Token Oauth_Token_Model =JsonHelper.ParseFromJson(Str);
       return Oauth_Token_Model;
    }

   //刷新Token(好像這個刷新Token沒有實際作用)
    protectedOAuth_Token refresh_token(string REFRESH_TOKEN)
    {
       string Str = GetJson("
       OAuth_Token Oauth_Token_Model =JsonHelper.ParseFromJson(Str);
       return Oauth_Token_Model;
    }

   //根據(jù)openid,access token獲得用戶信息
    protectedOAuthUser Get_UserInfo(string REFRESH_TOKEN, string OPENID)
    {
       string Str = GetJson("
       {
           //可能發(fā)生錯誤
       }
       return returnText;
    }


    ///
    ///token類
    ///
    public classOAuth_Token
    {
       public OAuth_Token()
       {

           //
           //TODO: 在此處添加構(gòu)造函數(shù)邏輯
           //
       }
       //access_token 網(wǎng)頁授權接口調(diào)用憑證,注意:此access_token與基礎支持的access_token不同
       //expires_in access_token接口調(diào)用憑證超時時間,單位(秒)
       //refresh_token 用戶刷新access_token
       //openid 用戶唯一標識,請注意,在未關注公眾號時,用戶訪問公眾號的網(wǎng)頁,也會產(chǎn)生一個用戶和公眾號唯一的OpenID
       //scope 用戶授權的作用域,使用逗號(,)分隔
       public string _access_token;
       public string _expires_in;
       public string _refresh_token;
       public string _openid;
       public string _scope;
       public string access_token
       {
           set { _access_token = value; }
           get { return _access_token; }
       }
       public string expires_in
       {
           set { _expires_in = value; }
           get { return _expires_in; }
       }

       public string refresh_token
       {
           set { _refresh_token = value; }
           get { return _refresh_token; }
       }
       public string openid
       {
           set { _openid = value; }
           get { return _openid; }
       }
       public string scope
       {
           set { _scope = value; }
           get { return _scope; }
       }

    }

    ///
    ///用戶信息類
    ///
    public classOAuthUser
    {
       public OAuthUser()
       { }
       #region 數(shù)據(jù)庫字段
       private string _openID;
       private string _searchText;
       private string _nickname;
       private string _sex;
       private string _province;
       private string _city;
       private string _country;
       private string _headimgUrl;
       private string _privilege;
       #endregion

       #region 字段屬性
       ///
       /// 用戶的唯一標識
       ///
       public string openid
       {
           set { _openID = value; }
           get { return _openID; }
       }
       ///
       ///
       ///
       public string SearchText
       {
           set { _searchText = value; }
           get { return _searchText; }
       }
       ///
       /// 用戶昵稱
       ///
       public string nickname
       {
           set { _nickname = value; }
           get { return _nickname; }
       }
       ///
       /// 用戶的性別,值為1時是男性,值為2時是女性,值為0時是未知
       ///
       public string sex
       {
           set { _sex = value; }
           get { return _sex; }
       }
       ///
       /// 用戶個人資料填寫的省份
       ///
       public string province
       {
           set { _province = value; }
           get { return _province; }
       }
       ///
       /// 普通用戶個人資料填寫的城市
       ///
       public string city
       {
           set { _city = value; }
           get { return _city; }
       }
       ///
       /// 國家,如中國為CN
       ///
       public string country
       {
           set { _country = value; }
           get { return _country; }
       }
       ///
       ///用戶頭像,最后一個數(shù)值代表正方形頭像大?。ㄓ?、46、64、96、132數(shù)值可選,0代表640*640正方形頭像),用戶沒有頭像時該項為空
       ///
       public string headimgurl
       {
           set { _headimgUrl = value; }
           get { return _headimgUrl; }
       }
       ///
       /// 用戶特權信息,json 數(shù)組,如微信沃卡用戶為(chinaunicom)其實這個格式稱不上JSON,只是個單純數(shù)組
       ///
       public string privilege
       {
           set { _privilege = value; }
           get { return _privilege; }
       }
       #endregion
    }

    ///
    ///將Json格式數(shù)據(jù)轉(zhuǎn)化成對象
    ///
    public classJsonHelper
    {
       ///  
       /// 生成Json格式 
       ///  
       ///  
       ///  
       ///  
       public static string GetJson(T obj)
       {
           DataContractJsonSerializer json = newDataContractJsonSerializer(obj.GetType());
           using (MemoryStream stream = new MemoryStream())
           {
               json.WriteObject(stream, obj);
               string szJson = Encoding.UTF8.GetString(stream.ToArray()); returnszJson;
           }
       }
       ///  
       /// 獲取Json的Model 
       ///  
       ///  
       ///  
       ///  
       public static T ParseFromJson(string szJson)
       {
           T obj = Activator.CreateInstance();
           using (MemoryStream ms = newMemoryStream(Encoding.UTF8.GetBytes(szJson)))
           {
               DataContractJsonSerializer serializer = newDataContractJsonSerializer(obj.GetType());
               return (T)serializer.ReadObject(ms);
           }
       }
    }

 

 輸出微信用戶信息:

 

CSDN博客地址:利用OAuth2.0獲取微信用戶基本信息(CSDN版)

CSDN源碼下載地址:利用OAuth2.0獲取微信用戶基本信息源碼下載

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
微信企業(yè)號開發(fā)步驟
[代碼全屏查看]
微信開發(fā)總結(jié) 六
微信開發(fā)筆記之
C#開發(fā)微信門戶及應用(4)
微信掃碼登錄很難嗎?5步幫你搞定
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服