/// <summary> /// 获取企业号access_token。 /// 先从本地缓存获取,没有则从微信端获取。 /// </summary> /// <param name="suiteId"></param> /// <param name="authCorpId">授权的企业号ID</param> /// <param name="permanentCode">永久授权码</param> /// <param name="suiteAccessToken"></param> /// <returns></returns> public string GetCorpToken(string suiteId, string authCorpId, string permanentCode, string suiteAccessToken, out string errMessage) { errMessage = string.Empty; string cacheKey = string.Format("CORPTOKEN:{0}:{1}:{2}:{3}", suiteId, authCorpId, suiteAccessToken, APIType.Weixin); string access_token = CacheManager.Instance().Get <string>(cacheKey); if (!string.IsNullOrEmpty(access_token)) { return(access_token); } var request = new GetCorpTokenRequest(); request.suite_id = suiteId; request.auth_corpid = authCorpId; request.permanent_code = permanentCode; var result = APIHelper.Instance().Qy().GetCorpToken(request, suiteAccessToken); if (result.errcode != 0) { errMessage = string.Format("GetCorpToken: errcode:{0},errmsg:{1}", result.errcode, result.errmsg); return(access_token); } //缓存corp_token access_token = result.access_token; CacheManager.Instance().Set(cacheKey, access_token, result.expires_in); return(access_token); }
/// <summary> /// 获取企业号access_token /// 应用提供商在取得企业号的永久授权码并完成对企业号应用的设置之后,便可以开始通过调用企业接口(详见企业接口文档)来运营这些应用。 /// </summary> /// <param name="helper"></param> /// <param name="request"></param> /// <returns></returns> public static GetCorpTokenResult GetCorpToken(this IQyHelper helper, GetCorpTokenRequest request, string suiteAccessToken) { string url = string.Format("{0}service/get_corp_token?suite_access_token={1}", baseUrl, suiteAccessToken); return(HttpHelper.HttpPost.GetJsonResult <GetCorpTokenRequest, GetCorpTokenResult>(request, url)); }