前言
這篇實現snsapi_userinfo,寫這篇時其實我是有疑惑的,因為我並沒有調試成功,但是我反複檢查程序和思路是沒有問題的,因為我使用的測試公眾號,群裡一個夥計說他之前調試時用的也是測試公眾號也遇到了和我一樣的問題,然後換上正式公眾號就好了。而且我再三檢查了微信開發文檔裡,snsapi_userinfo的方式是要比snsapi_base簡單的,也很好理解。
我先描述下問題吧,snsapi_userinfo的方式是不需要我們關注公眾號的,所以我就在未關注的情下點擊頁面地址跳轉後提示我未關注測試公眾號。
實作想法
有了上一篇網頁授權取得使用者基本資訊一的基礎,再實現snsapi_userinfo就更快了,一路調諧介面。
1、先取得code
2、依code取得網頁授權access_token及openid。 這裡微信對access_token是有呼叫限制的,每天12次,所以拿到access_token後快取起來。
3、依據access_token和openid取得使用者資訊。
看程式碼
public ActionResult OAuthSnsApiUserInfo() { string code = Request.QueryString["code"]; try { if (!string.IsNullOrEmpty(code)) { OAuthToken oauthToken = HttpUtility.Get<OAuthToken> (string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appID, appsecret, code)); if (oauthToken != null && !string.IsNullOrEmpty(oauthToken.openid) && !string.IsNullOrEmpty(oauthToken.access_token)) { OAuthUserInfo userInfo = Get <OAuthUserInfo>(string.Format("https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN", oauthToken.access_token, oauthToken.openid)); if (userInfo != null) { ViewData["headImage"] = userInfo.headimgurl; ViewData["openid"] = userInfo.openid; ViewData["nickName"] = userInfo.nickname; if (userInfo.sex == 0) { ViewData["sex"] = "未知"; } else if (userInfo.sex == 1) { ViewData["sex"] = "男"; } else { ViewData["sex"] = "女"; } ViewData["province"] = userInfo.province; ViewData["city"] = userInfo.city; } else { } } else { } } else { return Redirect(string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope=snsapi_userinfo&state=123456 #wechat_redirect", appID,Server.UrlEncode("http://" + Request.Url.Host + Url.Action("OAuthSnsApiUserInfo")))); } } catch (Exception ex) { ViewData["errmsg"] = ex.Message; } return View(); }
總結
網頁授權二里取得使用者資訊的介面是:https://api.weixin.qq.com/sns/userinfoinfo9S.com;
參考
http://www.cnblogs.com/net-xiejun/p/4632711.html
http://www.2711.html
http://www.blogblogs.com/t/135767667676663277999338338338333833383333333333333333333333333 個報擊 你
以上就是C#微信公眾號開發--網頁授權(oauth2.0)取得使用者基本資訊二的內容,更多相關內容請關注PHP中文網(www.php.cn)!
熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3漢化版
中文版,非常好用

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)