diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayBusiness/WechatTenpayBusinessClientBuilder.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayBusiness/WechatTenpayBusinessClientBuilder.cs
new file mode 100644
index 00000000..7b3fc585
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayBusiness/WechatTenpayBusinessClientBuilder.cs
@@ -0,0 +1,94 @@
+using System;
+using System.Collections.Generic;
+using System.Net.Http;
+
+namespace SKIT.FlurlHttpClient.Wechat.TenpayBusiness
+{
+ ///
+ /// 用于构造 实例的构造器。
+ ///
+ public partial class WechatTenpayBusinessClientBuilder : ICommonClientBuilder
+ {
+ private readonly WechatTenpayBusinessClientOptions _options;
+ private readonly IList> _configures;
+ private readonly IList _interceptors;
+ private HttpClient? _httpClient;
+ private bool? _disposeClient;
+
+ private WechatTenpayBusinessClientBuilder(WechatTenpayBusinessClientOptions options)
+ {
+ _options = options;
+ _configures = new List>();
+ _interceptors = new List();
+ }
+
+ ICommonClientBuilder ICommonClientBuilder.ConfigureSettings(Action configure)
+ {
+ return ConfigureSettings(configure);
+ }
+
+ ICommonClientBuilder ICommonClientBuilder.UseInterceptor(HttpInterceptor interceptor)
+ {
+ return UseInterceptor(interceptor);
+ }
+
+ ICommonClientBuilder ICommonClientBuilder.UseHttpClient(HttpClient httpClient, bool disposeClient)
+ {
+ return UseHttpClient(httpClient, disposeClient);
+ }
+
+ public WechatTenpayBusinessClientBuilder ConfigureSettings(Action configure)
+ {
+ if (configure is null) throw new ArgumentNullException(nameof(configure));
+
+ _configures.Add(configure);
+ return this;
+ }
+
+ public WechatTenpayBusinessClientBuilder UseInterceptor(HttpInterceptor interceptor)
+ {
+ if (interceptor is null) throw new ArgumentNullException(nameof(interceptor));
+
+ _interceptors.Add(interceptor);
+ return this;
+ }
+
+ public WechatTenpayBusinessClientBuilder UseHttpClient(HttpClient httpClient, bool disposeClient = true)
+ {
+ if (httpClient is null) throw new ArgumentNullException(nameof(httpClient));
+
+ _httpClient = httpClient;
+ _disposeClient = disposeClient;
+ return this;
+ }
+
+ public WechatTenpayBusinessClient Build()
+ {
+ WechatTenpayBusinessClient client = _disposeClient.HasValue
+ ? new WechatTenpayBusinessClient(_options, _httpClient, _disposeClient.Value)
+ : new WechatTenpayBusinessClient(_options, _httpClient);
+
+ foreach (Action configure in _configures)
+ {
+ client.Configure(configure);
+ }
+
+ foreach (HttpInterceptor interceptor in _interceptors)
+ {
+ client.Interceptors.Add(interceptor);
+ }
+
+ return client;
+ }
+ }
+
+ partial class WechatTenpayBusinessClientBuilder
+ {
+ public static WechatTenpayBusinessClientBuilder Create(WechatTenpayBusinessClientOptions options)
+ {
+ if (options is null) throw new ArgumentNullException(nameof(options));
+
+ return new WechatTenpayBusinessClientBuilder(options);
+ }
+ }
+}