feat: 插件化支付渠道限额 — provider 自声明单笔/每日默认限额
- PaymentProvider 接口新增 defaultLimits(单笔 singleMax + 每日 dailyMax) - EasyPay 默认:支付宝/微信各 单笔 ¥1000、每日 ¥10000 - Stripe 默认:不限额(0 = unlimited) - getMethodDailyLimit / getMethodSingleLimit 优先读 env var,再回退 provider 默认 - queryMethodLimits 返回 singleMax,PaymentForm 按渠道动态调整最大单笔金额 - MAX_DAILY_AMOUNT_* 改为可选 env var 覆盖(不再有硬编码默认值)
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import type { PaymentProvider, PaymentType } from './types';
|
||||
import type { PaymentProvider, PaymentType, MethodDefaultLimits } from './types';
|
||||
|
||||
export class PaymentProviderRegistry {
|
||||
private providers = new Map<PaymentType, PaymentProvider>();
|
||||
@@ -24,6 +24,12 @@ export class PaymentProviderRegistry {
|
||||
getSupportedTypes(): PaymentType[] {
|
||||
return Array.from(this.providers.keys());
|
||||
}
|
||||
|
||||
/** 获取指定渠道的提供商默认限额(未注册时返回 undefined) */
|
||||
getDefaultLimit(type: string): MethodDefaultLimits | undefined {
|
||||
const provider = this.providers.get(type as PaymentType);
|
||||
return provider?.defaultLimits?.[type];
|
||||
}
|
||||
}
|
||||
|
||||
export const paymentRegistry = new PaymentProviderRegistry();
|
||||
|
||||
Reference in New Issue
Block a user