這年頭,招個人不容易,現在大小活都得干了, 現在干起了微信開發這活兒,順帶寫點經驗。
上一回,寫了篇文章是封裝微信接口消息的處理的,具體可以看:實現雖易,寫好不易——小玩意也能體現編碼功力,微信消息處理框架發布
現在來談談如何獲取通過微信提供的接口來獲取微信用戶所寫的基本信息,包括國家,省,市,昵稱。當然,要獲取用戶的信息,是要經過用戶授權。關於這部份的文檔,點擊這里可以看到。
我要說的是具體的操作。
一、填寫授權回調頁面的域名
在這里填的是 wx.alinq.org。在獲得用戶的授權后,會跳轉到一個由開發人員指定的頁面,該頁面的鏈接必須在該域名下。如果沒有填寫的話,會出現一個頁面鏈接無效的頁面。
二、引導用戶到指定的授權頁面
關於參數的解釋,具體可以參考微信相關的文檔。值得注意的是 redirect_uri 是一個 url ,必須要對它進行 url 編碼,在生成該 url 后,你可以到 http://cli.im/text/2014052714?4QbdC 來對把 url 生成一個二維碼,然后在微信里掃一掃來進行測試。
掃一掃后:
三、最后奉上完整實現的代碼
下面是完整的代碼,希望對大家有用。^_^
<%@ WebHandler Language="C#" Class="UserAuth" %> public class UserAuth : IHttpHandler { public void ProcessRequest(HttpContext context) { var appid = "wxf1c24c60e3ac13b7"; var secret = "5902b9817acb7a290d4b7c2e6e97d4d3"; var code = context.Request.QueryString["Code"]; if (string.IsNullOrEmpty(code)) { var url = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri=http%3a%2f%2fwx.alinq.org%2fTest%2fUserAuth.ashx&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect", appid); context.Response.Redirect(url); } else { var client = new System.Net.WebClient(); client.Encoding = System.Text.Encoding.UTF8; var url = string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appid, secret, code); var data = client.DownloadString(url); var serializer = new JavaScriptSerializer(); var obj = serializer.Deserialize<Dictionary<string, string>>(data); string accessToken; if (!obj.TryGetValue("access_token", out accessToken)) return; var opentid = obj["openid"]; url = string.Format("https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN", accessToken, opentid); data = client.DownloadString(url); var userInfo = serializer.Deserialize<Dictionary<string, object>>(data); foreach (var key in userInfo.Keys) { context.Response.Write(string.Format("{0}: {1}", key, userInfo[key]) + "<br/>"); } } } }
最后,留下聯系方式,做微信開發的同學,有啥問題可以討論討論,當然,討論其它方面的技術問題也是可以的。
QQ: 81932759
Q群: 71418067
各位朋友,可以掃一掃下這面這個公眾號,建這個公眾號的目的,希望能夠和更多的同行交流。大家放心,這個公眾號是絕對不會打擾大家的。
另外,再順便給大家介紹我寫的另外一款免費軟件:
千呼萬喚豈出來,寫款軟件不容易——Visual Entity 2.0 發布