c# 微信公众号开发(三)网页授权和获取用户信息

写在前面:关注最下方公众号“Dotnet专栏”回复“微信开发”免费获取源码。

我们今天就来实现微信网页授权和获取用户信息,这篇文章呢主要是挑代码讲流程,详细的我们可以去看微信公众平台官方说明,等这个系列讲完,完整的代码会放给大家玩哈。系列后面还有回复用户发送的信息。access_token、CheckJsapi_ticket的实时更新和JSSDK的接口调用诸如接入扫一扫拍照地图门店等等,所以就一次性搞完再放源码了,一篇文章写太多也乱。

链接: 微信官方文档.

流程简单分三步

  1. 第一步: 用户进入授权页面同意授权,获取code
  2. 第二步: 通过第一步返回的code换取网页授权access_token
  3. 第三步: 根据第二步返回来的access_token和openid获取用户基本信息

第一步:授权页面同意授权,获取code值

在这里插入图片描述

public ActionResult Index(string reUrl="")
  {
     return Redirect($"https://open.weixin.qq.com/connect/oauth2/authorize?appid={WxConfig.Config.appID}&redirect_uri=http://{WxConfig.Config.domain}/Home/Login?reUrl={reUrl}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect");
  }

参数说明:
appid:公众号的唯一标识
redirect_uri:授权后重定向的回调链接地址,就是用户点击授权同意后跳到下个想要访问的页面, 请使用 urlEncode 对链接进行处理
response_type:返回类型,请填写code
scope:应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )
state:重定向后会带上state参数
wechat_redirect:无论直接打开还是做页面302重定向时候,必须带此参数

好了,如果我们的测试号都配置好了的话,数据库中的值也是我们订阅号配置的值,那么就会成功授权然后会带参数code=CODE&state=STATE跳到redirect_uri这个地址,我用的是授权了以后跳到登录页面Login,看自己需要哈。

第二步:通过code换取网页授权access_token

参数说明
appid:公众号的唯一标识
secret:公众号的appsecret
code:第一步返回的code值grant_type:就是访问类型,具体看文档哈,这里填写为authorization_code

 UserOpenIdModel userOpenIdModel = _JsonSerializer.Deserialize<UserOpenIdModel>(webClient.DownloadString($"https://api.weixin.qq.com/sns/oauth2/access_token?appid={WxConfig.Config.appID}&secret={WxConfig.Config.appsecret}&code={code}&grant_type=authorization_code"));

OK fine,请求后我们用一个model来接一下返回的json数据。
在这里插入图片描述

第三步:获取用户基本信息

参数说明:

access_token:第二步返回的值
openid:用户的唯一标识
lang:返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语

UserInfoModel userInfoModel = _JsonSerializer.Deserialize<UserInfoModel>(webClient.DownloadString($"https://api.weixin.qq.com/sns/userinfo?access_token={userOpenIdModel.access_token}&openid={userOpenIdModel.openid}&lang=zh_CN"));

和第二步一样,我们用一个model接返回的json数据,字段命名都很清楚了哈哈,
在这里插入图片描述
关注我们,获取更多Dotnet开发资源
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值