C#微信公眾號開發-高級接口-之網頁授權oauth2.0獲取用戶基本信息(二)


C#微信公眾號開發之網頁授權oauth2.0獲取用戶基本信息(一)

中講解了如果通過微信授權2.0snsapi_base獲取已經關注用戶的基本信息,然而很多情況下我們經常需要獲取非關注用戶的信息,方法如下:

第一步和之前講的一樣:獲取code,但是scope使用方法是snsapi_userinfo;

第二步,根據code獲取openid和access_token(此處的access_token是通過網頁授權code換取的不是我們之前講的全局的票據),代碼:

 1     /// <summary>
 2     ///用code換取獲取用戶信息(包括非關注用戶的)
 3     /// </summary>
 4     /// <param name="Appid"></param>
 5     /// <param name="Appsecret"></param>
 6     /// <param name="Code">回調頁面帶的code參數</param>
 7     /// <returns>獲取用戶信息(json格式)</returns>
 8     public string GetUserInfo(string Appid, string Appsecret, string Code)
 9     {
10         string url = string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", Appid, Appsecret, Code);
11         string ReText = CommonMethod.WebRequestPostOrGet(url, "");//post/get方法獲取信息
12         Dictionary<string, object> DicText = (Dictionary<string, object>)Jss.DeserializeObject(ReText);
13         if (!DicText.ContainsKey("openid"))
14         {
15             CommonMethod.WriteTxt("獲取openid失敗,錯誤碼:" + DicText["errcode"].ToString());
16             return "";
17         }
18         else
19         {
20             System.Web.HttpContext.Current.Session["Oauth_Token"] = DicText["access_token"];
21             System.Web.HttpContext.Current.Session.Timeout = 7200;
22             return CommonMethod.WebRequestPostOrGet("https://api.weixin.qq.com/sns/userinfo?access_token=" + DicText["access_token"] + "&openid=" + DicText["openid"] + "&lang=zh_CN", "");
23         }
24     }
View Code

方法已經寫好,只要傳入appid、appsecret、code三個參數就可以返回帶用戶個人信息的json數據包,格式如下:

{
   "openid":" OPENID",
   " nickname": NICKNAME,
   "sex":"1",
   "province":"PROVINCE"
   "city":"CITY",
   "country":"COUNTRY",
    "headimgurl":    "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46", 
	"privilege":[
	"PRIVILEGE1"
	"PRIVILEGE2"
    ],
    "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
}

 QQ群:C#.NETWEB程序開發交流


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM