C# 给自己的网址接入微信扫描登录入口,根据官网整理出来欢迎交流
/// <summary>
/// 微信登录接入 OAuthSnsApiUserInfo/// </summary>
/// <returns></returns>
public ActionResult OAuthSnsApiUserInfo()
{
string code = Request.QueryString["code"];
string appid = "wx1sdfsdf2136te46rtert34";
string appsecret = "1s21f2s1fs1f2sdsddf1g2d1fgdfg1";
MySqlConnection conn = new MySqlConnection(DbHelper.bj_connstring);
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));
string access_token = oauthToken.access_token;
string openid = oauthToken.openid;
//if (b != null)
if (oauthToken != null && !string.IsNullOrEmpty(oauthToken.openid) && !string.IsNullOrEmpty(oauthToken.access_token))
{
string uri = string.Format("https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN", access_token, openid);//获取信息地址
OAuthUserInfo userInfo = Get<OAuthUserInfo>(string.Format("https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN"
, access_token, openid));
ViewData["nickName"] = userInfo.nickname;
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/qrconnect?appid={0}&redirect_uri={1}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect", "wx0d9a0bfa8fe63c7c", Server.UrlEncode("http://" + Request.Url.Host + Url.Action("OAuthSnsApiUserInfo"))));
}
}
catch (Exception ex)
{
ViewData["errmsg"] = ex.Message;
}
return View();
}
/// <summary>
/// 获取微信用户信息回调数据Json转换JsonConvert.DeserializeObject<T>(result);
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="url"></param>
/// <returns></returns>
public T Get<T>(string url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "get";
request.Timeout = 2000;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8);
string result = sr.ReadToEnd();
// Log("result:" + result);
return JsonConvert.DeserializeObject<T>(result);
}