示例#1
0
        private static SmartWeChatOptions CheckOptions(SmartWeChatOptions options)
        {
            if (string.IsNullOrEmpty(options.Host))
            {
                options.Host = "https://api.weixin.qq.com";
            }

            if (string.IsNullOrEmpty(options.AppId))
            {
                throw new SmartWeChatException("app id not found");
            }

            if (string.IsNullOrEmpty(options.AppSecret))
            {
                throw new SmartWeChatException("app secret not found");
            }

            if (options.UsePassiveMessageProcessor && string.IsNullOrEmpty(options.ReceiveToken))
            {
                throw new SmartWeChatException("Passive Message Processor can not missing ReceiveToken");
            }

            if (options.UsePassiveMessageProcessor && options.ReceiveMessageMode != ReceiveMessageMode.Clear && string.IsNullOrEmpty(options.AESKey))
            {
                throw new SmartWeChatException("can not missing AESKey when use encrypt mode or compatibility mode");
            }

            return(options);
        }
示例#2
0
 public TokenManager(ILogger <TokenManager> logger
                     , SmartWeChatOptions options
                     , DefaultRequest sRequest)
 {
     _logger      = logger;
     _options     = options;
     _request     = sRequest;
     _memoryCache = new MemoryCache(new MemoryCacheOptions());
 }
示例#3
0
        public SmartWeChatConfig(SmartWeChatOptions options, ILoggerFactory loggerFactory = null)
        {
            if (loggerFactory != null)
            {
                LoggerFactory = loggerFactory;
            }

            Options = CheckOptions(options);
            InitConfig();
        }
示例#4
0
        public WXBizMsgCrypt(SmartWeChatOptions smartWeChatOptions)
        {
            if (string.IsNullOrEmpty(smartWeChatOptions.AppId))
            {
                throw new SmartWeChatException("AppId Not Found");
            }

            if (string.IsNullOrEmpty(smartWeChatOptions.AESKey))
            {
                throw new SmartWeChatException("AESKey Not Found");
            }

            if (string.IsNullOrEmpty(smartWeChatOptions.ReceiveToken))
            {
                throw new SmartWeChatException("Token Not Found");
            }

            Token          = smartWeChatOptions.ReceiveToken;
            EncodingAESKey = smartWeChatOptions.AESKey;
            AppId          = smartWeChatOptions.AppId;
        }
示例#5
0
 public PassiveMessageProcessor(SmartWeChatOptions options, ILoggerFactory loggerFactory)
 {
     _options = options;
     _logger  = loggerFactory.CreateLogger <PassiveMessageProcessor>();
 }
示例#6
0
 public SmartWeChatRequest(SmartWeChatOptions options, ILoggerFactory loggerFactory = null)
 {
     SmartWeChatConfig = new SmartWeChatConfig(options, loggerFactory);
 }
 private static void AddHttpClient(IServiceCollection services, SmartWeChatOptions setupOptions)
 {
     services.AddHttpClient("SmartWeChat", client => { client.BaseAddress = new Uri(setupOptions.Host); });
 }
 public static void AddSmartWeChat(this IServiceCollection services, SmartWeChatOptions setupOptions, ILoggerFactory loggerFactory = null)
 {
     services.AddSingleton(new SmartWeChatRequest(setupOptions, loggerFactory));
 }
 public SmartWeChatHttpClientFactory(SmartWeChatOptions options)
 {
     Host = options.Host;
 }