微信公司号的通讯录管理支付之部门管理

 前边一篇随笔公司号的有的基础音信,以及介绍咋样安插集团号的回调情势完结和店家号服务器举办调换的桥梁。本篇首要仍然后续介绍公司号的支付工作的拓展,介绍微信公司号通讯录管理支出作用,介绍其中组织机关内部怎么着得到和管理机构的新闻等内容。

 1、公司社团的始建和布局

首先大家可以在店堂号的田间管理后台里面创制一个团伙单位,里面创立一些单位和人员列表,方便我们开发和选拔。

比如说创设一个华盛顿爱奇迪的根结构,然后在里头在开创一些团队机关,如下图所示。

必发bifa88手机客服端 1

下一场给集体结构根节点“马尼拉爱奇迪”扩张一个社团者权限,未来再开发接口里面也就可以动用这些管理员所属的权柄Secret值进行调用了。

必发bifa88手机客服端 2

CorpID是商店号的标识,每个公司号具备一个唯一的CorpID;Secret是管理组凭证密钥。
系统管理员可通过管理端的权限管理功效创制管理组,分配管理组对运用、通讯录、接口的访问权限。已毕后,管理组即可获得唯一的secret。系统管理员可因而权限管理查看所有管理组的secret,其余管理员可通过安装中的开发者凭据查看。

自身的营业所号的创小编和“布宜诺斯艾利斯(Ellis)爱奇迪”协会布局的指挥者是见仁见智的,由于Secret是管理组凭证密钥,因而管理者负责不一致的集团机构管理以来,自己的军事管制Secret值可能就差距了。即使我们需求调用接口,就要求用到那些属于自己权力级其他Secret值,如下图所示。

必发bifa88手机客服端 3

 要是不是集团号的创办者,那么可能不可以修改里面的一对权力分配,只好查看。

必发bifa88手机客服端 4

2、API访问的大局唯一票据AccessToken的取得

和马自达号一样,大家调用集团号API的第一步也是内需先拿走访问的票证AccessToken。这些单子是全局性的,有必然的时效和成效控制,因而需求至极的开展缓存,无法每便调用都去刷新获取。

合营社号获取访问票据的首要的逻辑代码如下所示,其主要的就是内需运用管理者的Secret值去得到相应的口令,那样它就可以了然管理的是至极社团结构的了。

        /// <summary>
        /// 获取每次操作微信API的Token访问令牌
        /// </summary>
        /// <param name="corpid">企业Id</param>
        /// <param name="corpsecret">管理组的凭证密钥</param>
        /// <returns></returns>
        public string GetAccessTokenNoCache(string corpid, string corpsecret)
        {
            var url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}",
                                    corpid, corpsecret);

            HttpHelper helper = new HttpHelper();
            string result = helper.GetHtml(url);
            string regex = "\"access_token\":\"(?<token>.*?)\"";

            string token = CRegex.GetText(result, regex, "token");
            return token;
        }

微信公司号的求证如下所示:

当公司应用调用公司号接口时,集团号后台为根据这次访问的AccessToken,校验访问的合法性以及所对应的管理组的管理权限以回到相应的结果。

*注:您应有不假思索配置管理组的权杖,够用即好,权限过大会增添误操作可能性及消息安全隐患。*

AccessToken是集团号的大局唯一票据,调用接口时需引导AccessToken。AccessToken须求用CorpIDSecret来换取,区其他Secret会回到分歧的AccessToken。常规处境下AccessToken有效期为7200秒,有效期内重新获取重临相同结果,并活动续期。由于获得access_token的api调用次数万分不难,提出集团全局存储与更新access_token,频繁刷新access_token会招致api调用受限,影响自己工作

 

2、通讯录管理之部门信息的护卫

有了第三节里面的拜会票据,大家就足以使用API来做过多工作了,包蕴集体结构的获得、制造、删除等等作用。

制造单位的法定接口定义如下所示。

  • 恳请表达

Https请求形式: POST

https://qyapi.weixin.qq.com/cgi-bin/department/create?access_token=ACCESS_TOKEN

请求包结构体为:

{
   "name": "邮箱产品组",
   "parentid": "1"
}
  • 参数表明
参数 必须 说明
access_token 调用接口凭证
name 部门名称。长度限制为1~64个字符
parentid 父亲部门id。根部门id为1

 

  • 回去结果

{
   "errcode": 0,
   "errmsg": "created",
   "id": 2
}

按照地点的一部分近乎的接口定义表明,大家先来定义下社团单位单位数据的护卫接口,然后在渐渐得以已毕和调用。

        #region 部门管理
        /// <summary>
        /// 创建部门。
        /// 管理员须拥有“操作通讯录”的接口权限,以及父部门的管理权限。
        /// </summary>
        CorpDeptCreateJson CreateDept(string accessToken, string name, string parentId);

        /// <summary>
        /// 更新部门。
        /// 管理员须拥有“操作通讯录”的接口权限,以及该部门的管理权限。
        /// </summary>
        CommonResult DeleteDept(string accessToken, int id);

        /// <summary>
        /// 删除部门.
        /// 管理员须拥有“操作通讯录”的接口权限,以及该部门的管理权限。
        /// </summary>
        CorpDeptListJson ListDept(string accessToken);

        /// <summary>
        /// 获取部门列表.
        /// 管理员须拥有’获取部门列表’的接口权限,以及对部门的查看权限。
        /// </summary>
        CommonResult UpdateDept(string accessToken, int id, string name); 
        #endregion

如创设机关的接口达成如下所示,紧要就是构建URL和POST的数据包,然后统一调用并得到重临数据,转换为现实的Json对象实体即可。其余接口的贯彻情势接近,不在赘述。

        /// <summary>
        /// 创建部门。
        /// 管理员须拥有“操作通讯录”的接口权限,以及父部门的管理权限。
        /// </summary>
        public CorpDeptCreateJson CreateDept(string accessToken, string name, string parentId)
        {
            string urlFormat = "https://qyapi.weixin.qq.com/cgi-bin/department/create?access_token={0}";
            var data = new
            {
                name = name,
                parentId = parentId
            };
            var url = string.Format(urlFormat, accessToken);
            var postData = data.ToJson();

            CorpDeptCreateJson result = CorpJsonHelper<CorpDeptCreateJson>.ConvertJson(url, postData);
            return result;
        }

CorpDeptCreateJson
对象实体类的定义如下所示,大家第一是基于再次来到结果进行定义的。

    /// <summary>
    /// 创建部门的返回结果
    /// </summary>
    public class CorpDeptCreateJson : BaseJsonResult
    {
        /// <summary>
        /// 返回的错误消息
        /// </summary>
        public CorpReturnCode errcode { get; set; }

        /// <summary>
        /// 对返回码的文本描述内容
        /// </summary>
        public string errmsg { get; set; }

        /// <summary>
        /// 创建的部门id。
        /// </summary>
        public int id { get; set; }
    }

 

 3、部门管理的API调用

 上边小节介绍了怎么封装部门管理的API,那么大家封装好了对应的接口和接口达成,咋样在实际上条件之中进行调用处理的呢,为了方便我创设一个小的Winform程序来测试对应API的功效,如下所示。

必发bifa88手机客服端 5

上面大家来介绍一下调用的代码和职能体现。

        private void btnCreateDeleteDept_Click(object sender, EventArgs e)
        {
            ICorpAddressBookApi bll = new CorpAddressBookApi();
            string name = "测试部门";
            CorpDeptCreateJson json = bll.CreateDept(token, name, "2");
            if (json != null)
            {
                Console.WriteLine("创建了部门:{0}, ID:{1}", name, json.id);

                //更新部门信息
                name = "测试部门修改名称";
                CommonResult result = bll.UpdateDept(token, json.id, name);
                if(result != null)
                {
                    Console.WriteLine("修改部门名称:{0} {1}", (result.Success ? "成功" : "失败"), result.ErrorMessage);
                }

                //删除部门
                result = bll.DeleteDept(token, json.id);
                if (result != null)
                {
                    Console.WriteLine("删除部门名称:{0} {1}", (result.Success ? "成功" : "失败"), result.ErrorMessage);
                }
            }

        }

        /// <summary>
        /// 获取部门列表
        /// </summary>
        private void btnListDept_Click(object sender, EventArgs e)
        {
            ICorpAddressBookApi bll = new CorpAddressBookApi();
            CorpDeptListJson list = bll.ListDept(token);
            foreach (CorpDeptJson info in list.department)
            {
                string tips = string.Format("{0}:{1}", info.name, info.id);
                Console.WriteLine(tips);
            }
        }

必发bifa88手机客服端 6

 

 

一旦对那个《C#开发微信门户及利用》系列感兴趣,可以关注自我的其他小说,种类小说如下所示:

C#开发微信门户及应用(25)-微信公司号的客户端管住职能

C#付出微信门户及采纳(24)-微信小店货架音讯保管

C#支出微信门户及利用(23)-微信小店商品管理接口的包裹和测试

C#支付微信门户及应用(22)-微信小店的开发和应用

C#支付微信门户及采纳(21)-微信公司号的音讯和事件的收取处理及解密 

C#开发微信门户及运用(20)-微信公司号的食谱管理

C#开发微信门户及应用(19)-微信公司号的新闻发送(文本、图片、文件、语音、视频、图文音讯等)

C#开发微信门户及使用(18)-微信公司号的通讯录管理支付之成员管理

C#开发微信门户及采用(17)-微信集团号的通讯录管理支付之部门管理

C#付出微信门户及利用(16)-微信公司号的布局和选拔

C#支出微信门户及应用(15)-微信菜单扩展扫一扫、发图片、发地理地方成效

 C#支出微信门户及使用(14)-在微信菜单中接纳重定向获取用户数据

C#支出微信门户及运用(13)-使用地理地方扩充相关应用

C#支付微信门户及应用(12)-使用语音处理

C#开发微信门户及接纳(11)–微信菜单的有余突显方法介绍

C#付出微信门户及利用(10)–在治本种类中一起微信用户分组消息

C#付出微信门户及应用(9)-微信门户菜单管理及提交到微信服务器

C#支付微信门户及选用(8)-微信门户应用管理连串机能介绍

C#开发微信门户及利用(7)-微信多客服效用及支付集成

C#付出微信门户及选取(6)–微信门户菜单的治本操作

C#必发bifa88手机客服端,支出微信门户及利用(5)–用户分组新闻保管

C#开发微信门户及使用(4)–关怀用户列表及详细消息管理

C#付出微信门户及利用(3)–文本音讯和图文信息的答应

C#支出微信门户及使用(2)–微信音信的拍卖和回复

C#支付微信门户及运用(1)–初步运用微信接口

 

相关文章