Example #1
0
        /// <summary>
        /// 获取第三方平台access_token。该API用于获取第三方平台令牌(component_access_token)
        /// <para>传入:ComponentVerifyTicket(微信后台推送的ticket,此ticket会定时推送)</para>
        /// </summary>
        /// <param name="param"></param>
        /// <returns>返回ComponentAccessToken(第三方平台access_token)</returns>
        public static ComponentTokenResult GetComponentToken(WeChatParam param)
        {
            var result = CacheHelper.Get("ComponentToken") as ComponentTokenResult;

            if (result == null || string.IsNullOrWhiteSpace(result.ComponentAccessToken))
            {
                result = HttpHelper.Post <ComponentTokenResult>(ApiList.ApiComponentToken, new
                {
                    component_appid         = WeChatConfig.GetOpenAppId(),
                    component_appsecret     = WeChatConfig.GetOpenAppSecret(),
                    component_verify_ticket = param.ComponentVerifyTicket
                });
                if (!string.IsNullOrWhiteSpace(result.ComponentAccessToken))
                {
                    CacheHelper.Set("ComponentToken", result, result.ExpiresIn - 60);
                }
                else
                {
                    LogHelper.Debug("GetComponentToken失败!" + result.ErrMsg, "微信_Fail_");
                }
            }
            return(result);
        }