Esempio n. 1
0
 private void CheckOption(WeChatAccessOption option)
 {
     if (option == null || string.IsNullOrEmpty(option.AppId))
     {
         throw new WeChatException("没有配置默认参数WeChatAccessOption,请在Add或者Use的时候配置参数");
     }
 }
Esempio n. 2
0
        /// <summary>
        /// 添加模板处理工具类
        /// </summary>
        /// <param name="services"></param>
        /// <param name="acOption"></param>
        /// <returns></returns>
        public static IServiceCollection UseWeChatTemplateMessage(this IServiceCollection services, Action <WeChatAccessOption> acOption)
        {
            WeChatAccessOption option = new WeChatAccessOption();

            acOption?.Invoke(option);
            if (string.IsNullOrEmpty(option.AppId) || string.IsNullOrEmpty(option.AppSecret))
            {
                throw new WeChatConfigException("配置异常,没有配置appid或者appsecret");
            }
            return(AddWeChatTemplateMessage(services, option));
        }
Esempio n. 3
0
        /// <summary>
        /// 添加token管理工具,一般都不用添加,其他方法会自动检测并且自主添加的
        /// </summary>
        /// <param name="services"></param>
        /// <param name="option"></param>
        /// <returns></returns>
        public static IServiceCollection AddWeChatAccessTokenManager(IServiceCollection services, WeChatAccessOption option)
        {
            AddAccessTokenManager(services);
            if (services.Any(t => t.ServiceType == typeof(Access.WeChatAccessTokenManager)))
            {
                return(services);
            }
            var cacheManager = services.First(t => t.ServiceType == typeof(AccessTokenCacheManager)).ImplementationInstance as AccessTokenCacheManager;

            services.AddSingleton(new Access.WeChatAccessTokenManager(cacheManager, option));
            return(services);
        }
Esempio n. 4
0
        public static IServiceCollection AddWeChatTemplateMessage(this IServiceCollection services, WeChatAccessOption option)
        {
            AddWeChatAccessTokenManager(services, option);
            var tokenManager = services.First(t => t.ServiceType == typeof(Access.WeChatAccessTokenManager)).ImplementationInstance as Access.WeChatAccessTokenManager;

            if (tokenManager == null)
            {
                throw new WeChatException("在此之前没有添加WeChatAccessTokenManager,请添加WeChatAccessTokenManager后在添加WeChatTemplateMessage单例");
            }
            services.AddSingleton(new TemplateMessageProvider(option, tokenManager));
            return(services);
        }
Esempio n. 5
0
 public TemplateMessageProvider(WeChatAccessOption option, WeChatAccessTokenManager tokenManager) : this(tokenManager)
 {
     this.option = option;
     this.tokenManager.SetOption(option);
 }