private void CheckOption(WeChatAccessOption option) { if (option == null || string.IsNullOrEmpty(option.AppId)) { throw new WeChatException("没有配置默认参数WeChatAccessOption,请在Add或者Use的时候配置参数"); } }
/// <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)); }
/// <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); }
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); }
public TemplateMessageProvider(WeChatAccessOption option, WeChatAccessTokenManager tokenManager) : this(tokenManager) { this.option = option; this.tokenManager.SetOption(option); }