namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
{
///
/// 一个用于构造 时使用的配置项。
///
public class WechatTenpayClientOptions
{
///
/// 获取或设置请求超时时间(单位:毫秒)。
///
/// 默认值:30000
///
///
public int Timeout { get; set; } = 30 * 1000;
///
/// 获取或设置微信支付 API 入口点。
///
/// 默认值:
///
///
public string Endpoint { get; set; } = WechatTenpayEndpoints.DEFAULT;
///
/// 获取或设置声明应答中的错误描述使用的自然语言语种。
///
/// 默认值:"zh-CN"
///
///
public string AcceptLanguage { get; set; } = "zh-CN";
///
/// 获取或设置微信支付 API 签名认证方式。
///
/// 默认值:
///
///
public string SignScheme { get; set; } = Constants.SignSchemes.WECHATPAY2_RSA_2048_WITH_SHA256;
///
/// 获取或设置微信支付商户号。
///
public string MerchantId { get; set; } = default!;
///
/// 获取或设置微信支付商户 API v3 密钥(注意与 API 密钥相区分)。
///
public string MerchantV3Secret { get; set; } = default!;
///
/// 获取或设置微信支付商户 API 证书序列号。
///
public string MerchantCertificateSerialNumber { get; set; } = default!;
///
/// 获取或设置微信支付商户 API 证书私钥(通常为 `apiclient_key.pem` 文件内容)。
///
public string MerchantCertificatePrivateKey { get; set; } = default!;
///
/// 获取或设置是否自动加密请求中的敏感字段数据。
///
/// 注意:启用该功能需配合 使用。
///
///
public bool AutoEncryptRequestSensitiveProperty { get; set; }
///
/// 获取或设置是否自动解密响应中的敏感字段数据。
///
/// 注意:启用该功能需配合 使用。
///
///
public bool AutoDecryptResponseSensitiveProperty { get; set; }
///
/// 获取或设置微信支付平台 API 认证方案回退开关。
/// 开启后会在验证签名时根据响应或回调中接收到的序列号自动推测使用哪种认证方案。
/// 开启后会有一定的性能损失,建议仅在灰度切换期间时开启,待切换进度为百分之百后请关闭。
///
/// 默认值:false
///
///
public bool PlatformAuthFallbackSwitch { get; set; }
///
/// 获取或设置微信支付平台 API 认证方案。
/// 默认值:
///
public Settings.PlatformAuthScheme PlatformAuthScheme { get; set; } = Settings.PlatformAuthScheme.Certificate;
///
/// 获取或设置微信支付平台证书管理器。
///
/// 仅当 的值为 ,或开启 开关时有效。
///
///
/// 默认值:
///
///
public Settings.ICertificateManager PlatformCertificateManager { get; set; } = new Settings.InMemoryCertificateManager();
///
/// 获取或设置微信支付平台公钥管理器。
///
/// 仅当 的值为 ,或开启 开关时有效。
///
///
/// 默认值:
///
///
public Settings.IPublicKeyManager PlatformPublicKeyManager { get; set; } = new Settings.InMemoryPublicKeyManager();
}
}