接口  https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=@access_token

返回参数及输入参数说明链接官网 http://mp.weixin.qq.com/wiki/1/8a5ce6257f1d3b2afb20f83e72b72ce9.html

直接贴方法咯

        /// <summary>/// 批量获取用户基本信息/// </summary>/// <param name="accessTokenOrAppId"></param>/// <param name="userList"></param>/// <param name="timeOut"></param>/// <returns></returns>public static BatchGetUserInfoJson BatchGetUserInfo(string accessTokenOrAppId, List<BatchGetUserInfoData> userList, int timeOut = Config.TIME_OUT){return ApiHandlerWapper.TryCommonApi(accessToken =>{string url = string.Format("https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token={0}",accessToken);var data = new{user_list = userList,};return CommonJsonSend.Send<BatchGetUserInfoJson>(accessToken, url, data, timeOut: timeOut);}, accessTokenOrAppId);}

用户基本信息类和 top方法返回类,可以写在同一个命名空间下

   /// </summary>public class UserInfoJson : WxJsonResult{/// <summary>/// 用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号,拉取不到其余信息。/// </summary>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 long subscribe_time { get; set; }public string unionid { get; set; }public string remark { get; set; }public int groupid { get; set; }}/// <summary>/// 批量获取用户基本信息返回结果/// </summary>public class BatchGetUserInfoJson : WxJsonResult{public List<UserInfoJson> user_info_list { get; set; }}
WxJsonResult Json返回结果(用于菜单接口)
<pre name="code" class="csharp">    public class WxJsonResult{public  ReturnCode errcode { get; set; }public string errmsg { get; set; }/// <summary>/// 为P2P返回结果做准备/// </summary>public virtual object P2PData { get; set; }}

ReturnCode 枚举返回码  顺便把批量返回语言的枚举Language <pre name="code" class="csharp">也贴了


<pre name="code" class="csharp">   /// <summary>/// 返回码(JSON)/// </summary>public enum ReturnCode{系统繁忙此时请开发者稍候再试 = -1,请求成功 = 0,获取access_token时AppSecret错误或者access_token无效 = 40001,不合法的凭证类型 = 40002,不合法的OpenID = 40003,不合法的媒体文件类型 = 40004,不合法的文件类型 = 40005,不合法的文件大小 = 40006,不合法的媒体文件id = 40007,不合法的消息类型 = 40008,不合法的图片文件大小 = 40009,不合法的语音文件大小 = 40010,不合法的视频文件大小 = 40011,不合法的缩略图文件大小 = 40012,不合法的APPID = 40013,不合法的access_token = 40014,不合法的菜单类型 = 40015,不合法的按钮个数1 = 40016,不合法的按钮个数2 = 40017,不合法的按钮名字长度 = 40018,不合法的按钮KEY长度 = 40019,不合法的按钮URL长度 = 40020,不合法的菜单版本号 = 40021,不合法的子菜单级数 = 40022,不合法的子菜单按钮个数 = 40023,不合法的子菜单按钮类型 = 40024,不合法的子菜单按钮名字长度 = 40025,不合法的子菜单按钮KEY长度 = 40026,不合法的子菜单按钮URL长度 = 40027,不合法的自定义菜单使用用户 = 40028,不合法的oauth_code = 40029,不合法的refresh_token = 40030,不合法的openid列表 = 40031,不合法的openid列表长度 = 40032,不合法的请求字符不能包含uxxxx格式的字符 = 40033,不合法的参数 = 40035,不合法的请求格式 = 40038,不合法的URL长度 = 40039,不合法的分组id = 40050,分组名字不合法 = 40051,缺少access_token参数 = 41001,缺少appid参数 = 41002,缺少refresh_token参数 = 41003,缺少secret参数 = 41004,缺少多媒体文件数据 = 41005,缺少media_id参数 = 41006,缺少子菜单数据 = 41007,缺少oauth_code = 41008,缺少openid = 41009,access_token超时 = 42001,refresh_token超时 = 42002,oauth_code超时 = 42003,需要GET请求 = 43001,需要POST请求 = 43002,需要HTTPS请求 = 43003,需要接收者关注 = 43004,需要好友关系 = 43005,多媒体文件为空 = 44001,POST的数据包为空 = 44002,图文消息内容为空 = 44003,文本消息内容为空 = 44004,多媒体文件大小超过限制 = 45001,消息内容超过限制 = 45002,标题字段超过限制 = 45003,描述字段超过限制 = 45004,链接字段超过限制 = 45005,图片链接字段超过限制 = 45006,语音播放时间超过限制 = 45007,图文消息超过限制 = 45008,接口调用超过限制 = 45009,创建菜单个数超过限制 = 45010,回复时间超过限制 = 45015,系统分组不允许修改 = 45016,分组名字过长 = 45017,分组数量超过上限 = 45018,不存在媒体数据 = 46001,不存在的菜单版本 = 46002,不存在的菜单数据 = 46003,解析JSON_XML内容错误 = 47001,api功能未授权 = 48001,用户未授权该api = 50001,参数错误invalid_parameter = 61451,无效客服账号invalid_kf_account = 61452,客服帐号已存在kf_account_exsited = 61453,/// <summary>/// 客服帐号名长度超过限制(仅允许10个英文字符,不包括@及@后的公众号的微信号)(invalid kf_acount length) /// </summary>客服帐号名长度超过限制 = 61454,/// <summary>/// 客服帐号名包含非法字符(仅允许英文+数字)(illegal character in kf_account) /// </summary>客服帐号名包含非法字符 = 61455,/// <summary>///      客服帐号个数超过限制(10个客服账号)(kf_account count exceeded) /// </summary>客服帐号个数超过限制 = 61456,无效头像文件类型invalid_file_type = 61457,系统错误system_error = 61450,日期格式错误 = 61500,日期范围错误 = 61501,//新加入的一些类型,以下文字根据P2P项目格式组织,非官方文字发送消息失败_48小时内用户未互动 = 10706,发送消息失败_该用户已被加入黑名单_无法向此发送消息 = 62751,发送消息失败_对方关闭了接收消息 = 10703,对方不是粉丝 = 10700}/// <summary>/// 语言/// </summary>public enum Language{/// <summary>/// 中文简体/// </summary>zh_CN,/// <summary>/// 中文繁体/// </summary>zh_TW,/// <summary>/// 英文/// </summary>en}

参数  BatchGetUserInfoData类  

<pre name="code" class="csharp">    public class BatchGetUserInfoData{/// <summary>/// 用户的标识,对当前公众号唯一/// 必填/// </summary>public string openid { get; set; }/// <summary>/// 国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语,默认为zh-CN/// 非必填/// </summary>public Language lang { get; set; }}


HB类ApiHandlerWapper

   /// <summary>/// 针对AccessToken无效或过期的自动处理类/// </summary>public static class ApiHandlerWapper{/// <summary>/// 使用AccessToken进行操作时,如果遇到AccessToken错误的情况,重新获取AccessToken一次,并重试。/// 使用此方法之前必须使用AccessTokenContainer.Register(_appId, _appSecret);或JsApiTicketContainer.Register(_appId, _appSecret);方法对账号信息进行过注册,否则会出错。/// </summary>/// <typeparam name="T"></typeparam>/// <param name="fun"></param>/// <param name="accessTokenOrAppId">AccessToken或AppId。如果为null,则自动取已经注册的第一个appId/appSecret来信息获取AccessToken。</param>/// <param name="retryIfFaild">请保留默认值true,不用输入。</param>/// <returns></returns>public static T TryCommonApi<T>(Func<string, T> fun, string accessTokenOrAppId = null, bool retryIfFaild = true) where T : WxJsonResult{string appId = null;string accessToken = null;if (accessTokenOrAppId == null){appId = AccessTokenContainer.GetFirstOrDefaultAppId();if (appId == null){throw new WeixinException("尚无已经注册的AppId,请先使用AccessTokenContainer.Register完成注册(全局执行一次即可)!");}}else if (ApiUtility.IsAppId(accessTokenOrAppId)){if (!AccessTokenContainer.CheckRegistered(accessTokenOrAppId)){throw new WeixinException("此appId尚未注册,请先使用AccessTokenContainer.Register完成注册(全局执行一次即可)!");}appId = accessTokenOrAppId;}else{//accessTokenaccessToken = accessTokenOrAppId;}T result = null;try{if (accessToken == null){var accessTokenResult = AccessTokenContainer.GetAccessTokenResult(appId, false);accessToken = accessTokenResult.access_token;}result = fun(accessToken);}catch (ErrorJsonResultException ex){if (retryIfFaild&& appId != null&& ex.JsonResult.errcode == ReturnCode.获取access_token时AppSecret错误或者access_token无效){//尝试重新验证var accessTokenResult = AccessTokenContainer.GetAccessTokenResult(appId, true);//强制获取并刷新最新的AccessTokenaccessToken = accessTokenResult.access_token;result = TryCommonApi(fun, appId, false);}else{throw;}}return result;}/// <summary>/// 使用AccessToken进行操作时,如果遇到AccessToken错误的情况,重新获取AccessToken一次,并重试/// </summary>/// <typeparam name="T"></typeparam>/// <param name="appId"></param>/// <param name="appSecret"></param>/// <param name="fun">第一个参数为accessToken</param>/// <param name="retryIfFaild"></param>/// <returns></returns>[Obsolete("请使用TryCommonApi()方法")]public static T Do<T>(Func<string, T> fun, string appId, string appSecret, bool retryIfFaild = true)where T : WxJsonResult{T result = null;try{var accessToken = AccessTokenContainer.TryGetAccessToken(appId, appSecret, false);result = fun(accessToken);}catch (ErrorJsonResultException ex){if (retryIfFaild && ex.JsonResult.errcode == ReturnCode.获取access_token时AppSecret错误或者access_token无效){//尝试重新验证var accessToken = AccessTokenContainer.TryGetAccessToken(appId, appSecret, true);result = Do(fun, appId, appSecret, false);}}return result;}}

AccessTokenContainer 里面包含ApiHandlerWapper  检验方法
<pre name="code" class="csharp">        /// <summary>/// 返回已经注册的第一个AppId/// </summary>/// <returns></returns>public static string GetFirstOrDefaultAppId(){return ItemCollection.Keys.FirstOrDefault();}

这些感觉都是没用的代码,也不删了, 就是为第一个方法做反射,return 出

BatchGetUserInfoJson对象 

微信批量获取用户基本信息接口相关推荐

  1. 微信jsapi获取用户地理位置接口开发(第八课)

    本章节给大家介绍通过微信jsapi获取用户的地理位置,微信官方文档关于地理位置给了两种接口,一种是通过微信内置地图查看用户的地理位置,第二种是直接获取当前用户的地理位置坐标信息. 使用微信内置地图查看 ...

  2. 微信小程序之获取用户基本信息

    微信小程序之获取用户基本信息 一.使用Redis存储access-token package com.qfjy.project.weixin.api.accessToken;import com.qf ...

  3. 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息

    第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...

  4. PHP开发之-微信网页授权获取用户基本信息

    如何通过网页授权获取用户基本信息(国家,省,市,昵称)相关信息 必要条件: 1)公众号认证 2)有网页授权获取用户基本信息的权限接口 注意:最近有朋友说:在公众平台申请的测试号,会出现无法取到用户信息 ...

  5. Java微信公众平台开发(十六)--微信网页授权(OAuth2.0授权)获取用户基本信息

    转自:http://www.cuiyongzhi.com/post/78.html 好长时间没有写文章了,主要是最近的工作和生活上的事情比较多而且繁琐,其实到现在我依然还是感觉有些迷茫,最后还是决定静 ...

  6. 微信公众号开发系列-网页授权获取用户基本信息

    OAuth2.0网页授权这个也是在做微信公众平台用到最多的,可以利用授权接口对自己平台内用户进行绑定,实现用户扫描码和微信分享.微信签到.微信商城购物等: 1.高级接口OAuth2.0网页授权设置 a ...

  7. Java微信公众号开发之网页授权获取用户基本信息

    本篇博客讲解的网页授权只需要前端传递一个backUrl(回调地址) 到后台接口,后台接口会完成整个授权流程,无需前端做更多工作: 一. 前言 微信公众号开发,需要用到网页授权获取用户信息,通过OAut ...

  8. 静默获取用户基本信息的一种方法

    首先我们需要获取openid, 1.获取code https://open.weixin.qq.com/connect/oauth2/authorize?appid=这里是你的公众号的APPID&am ...

  9. 网页授权获取用户基本信息

    转自:https://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html eg:https://open.weixin.qq. ...

最新文章

  1. HTTP报文简单介绍
  2. IDEA是否会嫌导jar包麻烦吗???赶快来学习maven吧,冲冲冲
  3. C语言求最大公约数3种方法
  4. linux如何编译php扩展,linux环境下编译php扩展
  5. 各种协议在RFC中的编号
  6. android中的适配器模式
  7. docker server 容器连接sql_借力 Docker ,三分钟搞定 MySQL 主从复制!
  8. JAVA语法基础作业——动手动脑以及课后实验性问题 (七)
  9. Pycharm中更改镜像源
  10. 1043 Is It a Binary Search Tree (25 分) BST反转?不反转 遍历+vector
  11. 基于javaweb+jsp的运动会体育比赛管理系统(带报告文档)
  12. Layui Table格式化日期(表格)
  13. 微信小程序 实现带刻尺度滑块
  14. 高精度地图2019-2020年或可落地
  15. linux-CentOS-rpm、yum、源码安装
  16. Java常见面试题(三)
  17. 只要35+的程序员,招聘广告开始玩噱头?
  18. java登录密码错误锁定账号
  19. 【黑金ZYNQ7000系列原创视频教程】01.熟悉vivadomdash;mdash;纯逻辑led实验
  20. Qt Qml 查看所有字体、添加字体库、使用字体库的方法

热门文章

  1. 统考计算机在线作业正确答案,华师在线作业(答案) 计算机多媒体技术常见操作考题 2021年计算机基础统考辅导.docx...
  2. 淘宝、1688采集商品信息详情API
  3. AMDR5-5600X+光威天策3200 16G AIDA64内存速度测试
  4. 软件测试常见的linux场景,干货——软件测试工程师linux的10大场景命令使用
  5. C语言连接两个字符串
  6. NFT合约解析(3)——SafeMath.sol——2021.5.17
  7. python-16-正则表达式,简单爬虫,爬取电影网站连接到数据库
  8. java实现专门爬取网页图片的软件
  9. 全球及中国微型热电偶行业市场需求趋势与投资前景预测分析报告2022-2028年
  10. 阻抗匹配选取50Ω的原因