using MiAssessment.Model.Models.Payment;
namespace MiAssessment.Core.Interfaces;
///
/// 微信支付配置服务接口
///
public interface IWechatPayConfigService
{
///
/// 获取默认微信支付配置
///
/// 商户配置
WechatPayMerchantConfig GetDefaultConfig();
///
/// 根据订单号获取商户配置
///
/// 订单号
/// 商户配置
WechatPayMerchantConfig GetMerchantByOrderNo(string orderNo);
///
/// 根据商户前缀获取商户配置
///
/// 商户前缀(3位字符)
/// 商户配置
WechatPayMerchantConfig? GetMerchantByPrefix(string merchantPrefix);
///
/// 根据小程序前缀获取小程序配置
///
/// 小程序前缀(2位字符)
/// 小程序配置
MiniprogramConfig? GetMiniprogramByPrefix(string miniprogramPrefix);
///
/// 根据域名获取小程序配置
///
/// 域名
/// 小程序配置
MiniprogramConfig? GetMiniprogramByDomain(string domain);
///
/// 获取默认小程序配置
///
/// 小程序配置
MiniprogramConfig? GetDefaultMiniprogram();
///
/// 从订单号中提取前缀信息
///
/// 订单号
/// 前缀信息
OrderPrefixInfo? ExtractOrderPrefix(string orderNo);
///
/// 根据权重随机获取一个商户
///
/// 商户列表
/// 随机选择的商户
WechatPayMerchantConfig? GetRandomMerchant(IEnumerable merchants);
///
/// 获取微信支付配置(支持随机商户选择)
///
/// 包含商户和AppId的配置
(WechatPayMerchantConfig Merchant, string AppId) GetWxPayConfig();
///
/// 获取固定的微信支付配置(基于订单前缀)
///
/// 订单前缀
/// 包含商户和AppId的配置
(WechatPayMerchantConfig? Merchant, string AppId) GetFixedWxPayConfig(string orderPrefix);
}