/// <summary>
        /// 设置配置项。
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        public WxpayApiClientBuilder SetApiConfig(WxpayApiConfig config)
        {
            if (config == null)
            {
                throw new ArgumentNullException();
            }

            _config = config;
            return(this);
        }
        internal WxpayApiClient(
            WxpayApiConfig config,
            HttpClient httpMessageInvoker,
            HttpVersion httpVersion,
            IList <HttpRequestInterceptor> requestInterceptors,
            IList <HttpResponseInterceptor> responseInterceptors)
            : base()
        {
            if (config == null)
            {
                throw new ArgumentNullException(nameof(config));
            }
            if (httpMessageInvoker == null)
            {
                throw new ArgumentNullException(nameof(httpMessageInvoker));
            }

            _config = config;

            IHttpClientBuilder httpClientBuilder = new BasicHttpClientBuilder()
                                                   .SetVersion(httpVersion)
                                                   .SetHttpMessageInvoker(httpMessageInvoker);

            foreach (HttpRequestInterceptor interceptor in requestInterceptors)
            {
                httpClientBuilder.AddRequestInterceptor(interceptor);
            }

            foreach (HttpResponseInterceptor interceptor in responseInterceptors)
            {
                httpClientBuilder.AddResponseInterceptor(interceptor);
            }

            _httpClient = httpClientBuilder.Build();
            _httpClient.DefaultRequestHeaders.Add("Content-Type", "application/xml");
        }