mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2025-09-19 18:22:24 +08:00
53 lines
2.1 KiB
C#
53 lines
2.1 KiB
C#
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Sample.Options
|
|
{
|
|
public partial class TenpayOptions
|
|
{
|
|
public static readonly Lazy<TenpayOptions> Instance = new Lazy<TenpayOptions>(() =>
|
|
{
|
|
var configMerchantRegex = new Regex("^TenpayOptions_Merchant_(\\d+)_MerchantId$");
|
|
var configMerchantIndexes = WebConfigurationManager.AppSettings.AllKeys
|
|
.Where(key => configMerchantRegex.IsMatch(key))
|
|
.Select(key => configMerchantRegex.Matches(key)[0].Groups[1].Value)
|
|
.ToArray();
|
|
|
|
return new TenpayOptions()
|
|
{
|
|
Merchants = configMerchantIndexes
|
|
.Select(i => new Types.WechatMerchant()
|
|
{
|
|
MerchantId = WebConfigurationManager.AppSettings[$"TenpayOptions_Merchant_{i}_MerchantId"],
|
|
SecretV3 = WebConfigurationManager.AppSettings[$"TenpayOptions_Merchant_{i}_SecretV3"],
|
|
CertificateSerialNumber = WebConfigurationManager.AppSettings[$"TenpayOptions_Merchant_{i}_CertificateSerialNumber"],
|
|
CertificatePrivateKey = WebConfigurationManager.AppSettings[$"TenpayOptions_Merchant_{i}_CertificatePrivateKey"],
|
|
})
|
|
.ToArray(),
|
|
NotifyUrl = WebConfigurationManager.AppSettings[$"TenpayOptions_NotifyUrl"]
|
|
};
|
|
}, isThreadSafe: true);
|
|
}
|
|
|
|
public partial class TenpayOptions
|
|
{
|
|
public Types.WechatMerchant[] Merchants { get; set; } = Array.Empty<Types.WechatMerchant>();
|
|
|
|
public string NotifyUrl { get; set; } = string.Empty;
|
|
}
|
|
|
|
public partial class TenpayOptions
|
|
{
|
|
public static class Types
|
|
{
|
|
public class WechatMerchant
|
|
{
|
|
public string MerchantId { get; set; } = string.Empty;
|
|
|
|
public string SecretV3 { get; set; } = string.Empty;
|
|
|
|
public string CertificateSerialNumber { get; set; } = string.Empty;
|
|
|
|
public string CertificatePrivateKey { get; set; } = string.Empty;
|
|
}
|
|
}
|
|
}
|
|
}
|