95992828九五至尊2

微信集团号的通信录管理支付之部门管理,开发微信门户及利用

二月 2nd, 2019  |  882828九五至尊手机版

 前边一篇小说公司号的一对基础新闻,以及介绍怎样安插公司号的回调格局完成和供销社号服务器进行互换的大桥。本篇主要照旧两次三番介绍集团号的付出工作的开展,介绍微信集团号通信录管理支付效用,介绍其中社团机构内部怎样取得和管制单位的消息等情节。

前方一篇随笔公司号的一部分基础信息,以及介绍怎样安顿集团号的回调格局贯彻和商店号服务器举办沟通的桥梁。本篇主要照旧后续介绍公司号的开销工作的开展,介绍微信公司号通讯录管理支付作用,介绍其中社团部门内部怎么着得到和保管机关的音讯等情节。

 1、集团团体的成立和布局

先是大家可以在店铺号的管住后台里面创制一个团伙机构,里面创制一些单位和人士列表,方便大家开发和采纳。

比如说创设一个斯德哥尔摩爱奇迪的根结构,然后在里头在开立一些团伙机关,如下图所示。

882828九五至尊手机版 1

接下来给集体结构根节点“里斯本爱奇迪”扩展一个协会者权限,以后再支付接口里面也就足以采取那些管理员所属的权能Secret值举行调用了。

882828九五至尊手机版 2

CorpID是店铺号的标识,每个公司号具备一个唯一的CorpID;Secret是管理组凭证密钥。
882828九五至尊手机版,系统管理员可经过管理端的权杖管理作用创建管理组,分配管理组对采纳、通信录、接口的走访权限。达成后,管理组即可取得唯一的secret。系统管理员可经过权限管理查看所有管理组的secret,其余管理员可透过安装中的开发者凭据查看。

自我的集团号的创立者和“里斯本爱奇迪”协会布局的管理人是例外的,由于Secret是管理组凭证密钥,因而管理者负责差别的团体部门管理以来,自己的管理Secret值可能就分化了。尽管大家要求调用接口,就需求用到那个属于自己权力级其他Secret值,如下图所示。

882828九五至尊手机版 3

 即使不是店铺号的创小编,那么可能仍旧不能修改里面的片段权力分配,只好查看。

882828九五至尊手机版 4

1、公司协会的始建和布署

第一大家得以在集团号的管住后台里面创设一个团伙机构,里面创造一些单位和人员列表,方便大家开发和选择。
比如创设一个都柏林爱奇迪的根结构,然后在里边在成立一些团伙机关,如下图所示。

882828九五至尊手机版 5

下一场给协会结构根节点“圣菲波哥大爱奇迪”扩大一个管理员权限,将来再开发接口里面也就足以采用那几个管理员所属的权限Secret值举办调用了。

882828九五至尊手机版 6

CorpID是合作社号的标识,每个商家号具备一个唯一的CorpID;Secret是管理组凭证密钥。系统管理员可通过管理端的权力管理效果创立管理组,分配管理组对使用、通信录、接口的拜访权限。完毕后,管理组即可得到唯一的secret。系统管理员可由此权限管理查看所有管理组的secret,其他管理员可通过安装中的开发者凭据查看。
自身的小卖部号的创作者和“华盛顿爱奇迪”协会布局的管理人是例外的,由于Secret是管理组凭证密钥,由此管理者负责分化的公司机构管理以来,自己的军事管制Secret值可能就分化了。假如我们需求调用接口,就要求用到这一个属于自己权力级其余Secret值,如下图所示。

882828九五至尊手机版 7

比方不是公司号的创办人,那么可能不可能修改里面的一对权力分配,只可以查看。

882828九五至尊手机版 8

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访问的大局唯一票据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; }
    }

 

2、通信录管理之部门信息的尊敬

有了首节里面的造访票据,大家就足以应用API来做过多政工了,包蕴社团结构的取得、创设、删除等等功效。
创制机关的法定接口定义如下所示。
请求表达

Https请求格局: POST
https://qyapi.weixin.qq.com/cgi-bin/department/create?access\_token=ACCESS\_TOKEN
伸手包结构体为:
{ “name”: “邮箱产品组”, “parentid”: “1”}

参数表达

882828九五至尊手机版 9

Paste_Image.png

归来结果

{ “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的成效,如下所示。

882828九五至尊手机版 10

上面大家来介绍一下调用的代码和成效浮现。

        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);
            }
        }

882828九五至尊手机版 11

 

 

万一对那一个《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#支付微信门户及使用(5)–用户分组音讯保管

C#付出微信门户及运用(4)–关怀用户列表及详细音信管理

C#支出微信门户及应用(3)–文本信息和图文消息的回应

C#支付微信门户及选用(2)–微信新闻的处理和回应

C#开发微信门户及应用(1)–发轫运用微信接口

 

3、部门管理的API调用

地点小节介绍了如何封装部门管理的API,那么我们封装好了对应的接口和接口落成,怎么样在其实条件之中进行调用处理的呢,为了方便我创立一个小的Winform程序来测试对应API的功效,如下所示。

882828九五至尊手机版 12

下边大家来介绍一下调用的代码和效劳展示。

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);
    }
}

882828九五至尊手机版 13

万一对这一个《C#开发微信门户及应用》连串感兴趣,可以关切本身的其余小说.

相关文章

Your Comments

近期评论

    功能


    网站地图xml地图