300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > C#微信公众号开发–网页授权(oauth2.0)获取用户基本信息二

C#微信公众号开发–网页授权(oauth2.0)获取用户基本信息二

时间:2018-12-01 05:01:55

相关推荐

C#微信公众号开发–网页授权(oauth2.0)获取用户基本信息二

微信小程序|微信开发

C#,微信公众号,网页授权

微信小程序-微信开发

无线餐饮源码,ubuntu删除蓝牙设备,动态配置爬虫专利,php blank,seo计划流程lzw

前言

三级营销平台源码下载,ubuntu怎么系统更新,tomcat怎么找激活码,Python爬虫的思路,php点餐小程序源码,大理seo网站lzw

这一篇实现snsapi_userinfo,写这篇时其实我是有疑惑的,因为我并没有调试成功,但是我反复检查程序和思路是没有问题的,因为我使用的测试公众号,群里一个伙计说他之前调试时用的也是测试公众号也遇到了和我一样的问题,然后换上正式公众号就好了。而且我再三检查了微信开发文档里,snsapi_userinfo的方式是要比snsapi_base简单的,也很好理解。

最新的牛贝官方源码,vscode停止运行命令,ubuntu中止安装,tomcat网页显示太慢,sqlite写入数据慢怎么办,大众点评爬虫防止爬虫,php 交友网站,重庆正规seo网络推广,额度查询网站源码,html5 几何 模板lzw

我先描述下问题吧,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 (string.Format("https://api./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(string.Format("https://api./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./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./sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN。

参考

/net-xiejun/p/4632711.html

/txw1958/p/weixin76-user-info.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。