using System;
using System.Reflection;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
{
///
/// 一个用于构造 时使用的配置项。
///
public class WechatTenpayClientOptions
{
///
/// 获取或设置请求超时时间(单位:毫秒)。
/// 默认值:30000
///
public int Timeout { get; set; } = 30 * 1000;
///
/// 获取或设置微信支付 API 域名。
/// 默认值:
///
public string Endpoints { get; set; } = WechatTenpayEndpoints.DEFAULT;
///
/// 获取或设置声明应答中的错误描述使用的自然语言语种。
/// 默认值:根据操作系统自动生成
///
public string UserAgent { get; set; } = $"OS/{Environment.OSVersion.Platform} SKIT.FlurlHttpClient.Wechat.Tenpay/{Assembly.GetExecutingAssembly().GetName().Version}";
///
/// 获取或设置声明应答中的错误描述使用的自然语言语种。
/// 默认值:zh_CN
///
public string AcceptLanguage { get; set; } = "zh-CN";
///
/// 获取或设置微信支付 API 签名认证方式。
/// 默认值:
///
public string SignAlgorithm { get; set; } = Constants.SignAlgorithms.WECHATPAY2_SHA256_RSA2048;
///
/// 获取或设置微信支付商户号。
///
public string MerchantId { get; set; } = default!;
///
/// 获取或设置微信支付商户 API v3 密钥(注意与 API 密钥相区分)。
///
public string MerchantV3Secret { get; set; } = default!;
///
/// (本参数已废弃,请使用 参数)
///
[Obsolete("本参数已废弃,请使用 `MerchantCertificateSerialNumber` 参数")]
public string MerchantCertSerialNumber { get { return MerchantCertificateSerialNumber; } set { MerchantCertificateSerialNumber = value; } }
///
/// 获取或设置微信支付商户 API 证书序列号。
///
public string MerchantCertificateSerialNumber { get; set; } = default!;
///
/// (本参数已废弃,请使用 参数)
///
[Obsolete("本参数已废弃,请使用 `MerchantCertificatePrivateKey` 参数")]
public string MerchantCertPrivateKey { get { return MerchantCertificatePrivateKey; } set { MerchantCertificatePrivateKey = value; } }
///
/// 获取或设置微信支付商户 API 证书私钥(通常为 `apiclient_key.pem` 文件内容)。
///
public string MerchantCertificatePrivateKey { get; set; } = default!;
///
/// 获取或设置是否自动加密请求中的敏感字段数据。
/// 注意:启用该功能需配合 使用。
///
public bool AutoEncryptRequestSensitiveProperty { get; set; }
///
/// 获取或设置是否自动解密响应中的敏感字段数据。
/// 注意:启用该功能需配合 使用。
///
public bool AutoDecryptResponseSensitiveProperty { get; set; }
///
/// (本参数已废弃,请使用 参数)
///
[Obsolete("本参数已废弃,请使用 `PlatformCertificateManager` 参数")]
public Settings.CertificateManager CertificateManager { get { return PlatformCertificateManager; } set { PlatformCertificateManager = value; } }
///
/// 获取或设置微信支付平台证书管理器。
/// 默认值:
///
public Settings.CertificateManager PlatformCertificateManager { get; set; } = new Settings.InMemoryCertificateManager();
}
}