예제 #1
0
        public static async Task <AccessTokenResult> GetTokenAsync(string corpId, string corpSecret)
        {
            #region 主动调用的频率限制

            /*
             * 当你获取到AccessToken时,你的应用就可以成功调用企业号后台所提供的各种接口以管理或访问企业号后台的资源或给企业号成员发消息。
             *
             * 为了防止企业应用的程序错误而引发企业号服务器负载异常,默认情况下,每个企业号调用接口都有一定的频率限制,当超过此限制时,调用对应接口会收到相应错误码。
             *
             * 以下是当前默认的频率限制,企业号后台可能会根据运营情况调整此阈值:
             *
             * 基础频率
             * 每企业调用单个cgi/api不可超过1000次/分,30000次/小时
             *
             * 每ip调用单个cgi/api不可超过2000次/分,60000次/小时
             *
             * 每ip获取AccessToken不可超过300次/小时
             *
             * 发消息频率
             * 每企业不可超过200次/分钟;不可超过帐号上限数*30人次/天
             *
             * 创建帐号频率
             * 每企业创建帐号数不可超过帐号上限数*3/月
             */
            #endregion

            var url    = string.Format(Config.ApiWorkHost + "/cgi-bin/gettoken?corpid={0}&corpsecret={1}", corpId.AsUrlData(), corpSecret.AsUrlData());
            var result = await CommonJsonSend.SendAsync <AccessTokenResult>(null, url, null, CommonJsonSendType.POST).ConfigureAwait(false);

            if (Config.ThrownWhenJsonResultFaild && result.errcode != ReturnCode_Work.请求成功)
            {
                throw new WeixinWorkException(
                          string.Format("微信请求发生错误(CommonApi.GetToken)!错误代码:{0},说明:{1}",
                                        (int)result.errcode, result.errmsg), null);
            }

            return(result);
        }
예제 #2
0
        public static async Task <AccessTokenResult> GetTokenAsync(string corpId, string corpSecret)
        {
            #region 主动调用的频率限制

            /*
             * 当你获取到AccessToken时,你的应用就可以成功调用企业号后台所提供的各种接口以管理或访问企业号后台的资源或给企业号成员发消息。
             *
             * 为了防止企业应用的程序错误而引发企业号服务器负载异常,默认情况下,每个企业号调用接口都有一定的频率限制,当超过此限制时,调用对应接口会收到相应错误码。
             *
             * 以下是当前默认的频率限制,企业号后台可能会根据运营情况调整此阈值:
             *
             * 基础频率
             * 每企业调用单个cgi/api不可超过1000次/分,30000次/小时
             *
             * 每ip调用单个cgi/api不可超过2000次/分,60000次/小时
             *
             * 每ip获取AccessToken不可超过300次/小时
             *
             * 发消息频率
             * 每企业不可超过200次/分钟;不可超过帐号上限数*30人次/天
             *
             * 创建帐号频率
             * 每企业创建帐号数不可超过帐号上限数*3/月
             */
            #endregion

            var url    = string.Format(Config.ApiWorkHost + "/cgi-bin/gettoken?corpid={0}&corpsecret={1}", corpId.AsUrlData(), corpSecret.AsUrlData());
            var result = await CommonJsonSend.SendAsync <AccessTokenResult>(null, url, null, CommonJsonSendType.POST).ConfigureAwait(false);

            if (Config.ThrownWhenJsonResultFaild && result.errcode != ReturnCode_Work.请求成功)
            {
                var unregisterAppIdEx = new UnRegisterAppIdException(null, $"尚无已经注册的AppId,请先使用AccessTokenContainer.Register完成注册(全局执行一次即可)!模块:{NeuChar.PlatformType.WeChat_Work}");
                throw unregisterAppIdEx;//抛出异常
            }

            return(result);
        }
예제 #3
0
        public static async Task <GetCallBackIpResult> GetCallBackIpAsync(string accessToken)
        {
            var url = string.Format(Config.ApiWorkHost + "/cgi-bin/getcallbackip?access_token={0}", accessToken.AsUrlData());

            return(await CommonJsonSend.SendAsync <GetCallBackIpResult>(null, url, null, CommonJsonSendType.GET).ConfigureAwait(false));
        }