1.1.微信公众号开发----获取个人用户信息(2)---获取微信用户信息

根据开发者文档获取用户信息分为4步: 获取code(授权标识)--->通过code掉微信接口获取OpenId(微信公众号每个用户的唯一标识)-->获取accessToken(调接口标识)---》通过OpenId、accessToken 掉接口获取 用户信息。

前面已经提到获取code,https://blog.csdn.net/wangwengrui40/article/details/103710839

那么我们怎么利用code获取 用户信息呢

一.获取openid

获取openid,直接调用微信的接口

Appid 与  secret开发者密码 在微信公众号内

 

        public async Task<string> GetUserMessageCode(string code)
        {
           HttpClient httpClient = new HttpClient();//C#封装的Http访问接口的方法,其他语言切换
            var getParameter = await httpClient.GetStringAsync("https://api.weixin.qq.com/sns/oauth2/access_token?appid=" 
+ 你自己的Appid+ "&secret=" +你自己的开发者密码 + "&code=" + code + "&grant_type=authorization_code");
            //得到的参数序列化
            var usermesage = JsonConvert.DeserializeObject<GetUserCodeDto>(getParameter);
            return usermesage.openid;
        }
    public class GetUserCodeDto
    {/// <summary>
     /// access_token
     /// </summary>
        public string access_token { get; set; }
        /// <summary>
        /// openid
        /// </summary>
        public string openid { get; set; }
    }

二.获取AccessToken

获取用户信息要不,你本机的公网ip加进白名单。不知道的话,错误信息会告诉你的,(看微信返回报错的ip)

        /// <summary>
        /// 得到ACCESS_TOKEN
        /// </summary>
        /// <returns></returns>
        public async Task<string> GetACCESS_TOKEN()
        {
            HttpClient httpClient = new HttpClient();//C#封装的Http访问接口的方法,其他语言切换
            var getParameter = await httpClient.GetStringAsync("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="
 +你自己的appid + "&secret=" + 你自己的secret);
            var access_token = JsonConvert.DeserializeObject<AccessTokenDto>(getParameter);
            return access_token.access_token;
        }
    public class AccessTokenDto
    {/// <summary>
     /// access_token
     /// </summary>
        public string access_token { get; set; }
    }

三.获取用户信息

 

        public async Task<GetUserDto> GetUserMessage(string openid, string lang = "zh_CN")
        {
           HttpClient httpClient = new HttpClient();//C#封装的Http访问接口的方法,其他语言切换
            var getParameter = await httpClient.GetStringAsync("https://api.weixin.qq.com/cgi-bin/user/info?access_token=" + 获取到的access_token + "&openid=" +  获取到的openid + "&lang=" + lang);
            var magess2 = JsonConvert.DeserializeObject<GetUserDto>(getParameter);
            return magess2;
        }
    public class GetUserDto
    {
        public int? subscribe { get; set; }
        public string openid { get; set; }
        public string nickname { get; set; }
        public int? sex { get; set; }
        public string language { get; set; }
        public string city { get; set; }
        public string province { get; set; }
        public string country { get; set; }
        public string headimgurl { get; set; }
        public int? subscribe_time { get; set; }
        public int? unionid { get; set; }
        public string remark { get; set; }
        public int groupid { get; set; }
        public string[] tagid_list { get; set; }
        public string subscribe_scene { get; set; }
        public int? qr_scene { get; set; }
        public string qr_scene_str { get; set; }
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值