Files
edgeKey/lib/validators/payment.ts
2026-06-16 15:33:45 +08:00

55 lines
1.8 KiB
TypeScript

import { badRequestError } from "../app-error";
export function validatePaymentConfigInput(input: {
name?: string;
baseUrl?: string;
provider: string;
isEnabled?: boolean;
appSecret?: string;
pid?: string;
key?: string;
alipayAppId?: string;
alipayPrivateKey?: string;
alipayPublicKey?: string;
}) {
const name = input.name?.trim() || "";
if (!name) {
throw badRequestError("支付方式名称不能为空", "PAYMENT_NAME_REQUIRED");
}
const baseUrl = input.baseUrl?.trim() || "";
if (input.isEnabled !== false && !baseUrl) {
throw badRequestError("启用支付方式时必须填写网关地址", "PAYMENT_BASE_URL_REQUIRED");
}
if (input.provider === "BEPUSDT" && input.isEnabled !== false && !(input.appSecret?.trim())) {
throw badRequestError("启用 BEpusdt 时必须填写 App Secret", "BEPUSDT_APP_SECRET_REQUIRED");
}
if (input.provider === "EPAY" && input.isEnabled !== false) {
if (!(input.pid?.trim())) {
throw badRequestError("启用 Epay 时必须填写 PID", "EPAY_PID_REQUIRED");
}
if (!(input.key?.trim())) {
throw badRequestError("启用 Epay 时必须填写 Key", "EPAY_KEY_REQUIRED");
}
}
if ((input.provider === "ALIPAY" || input.provider === "ALIPAY_FACE") && input.isEnabled !== false) {
if (!(input.alipayAppId?.trim())) {
throw badRequestError("启用支付宝时必须填写 App ID", "ALIPAY_APP_ID_REQUIRED");
}
if (!(input.alipayPrivateKey?.trim())) {
throw badRequestError("启用支付宝时必须填写应用私钥", "ALIPAY_PRIVATE_KEY_REQUIRED");
}
if (!(input.alipayPublicKey?.trim())) {
throw badRequestError("启用支付宝时必须填写支付宝公钥", "ALIPAY_PUBLIC_KEY_REQUIRED");
}
}
return {
name,
baseUrl,
};
}