@phqb/mcp-server
Version:
PHQB MCP Payment Server - AI-powered payment processing for Claude and other AI assistants
105 lines • 4.31 kB
JavaScript
;
// MCP 服务器类型定义
Object.defineProperty(exports, "__esModule", { value: true });
exports.RateLimitError = exports.ValidationError = exports.PermissionError = exports.AuthenticationError = exports.MCPError = exports.MCP_TOOL_PERMISSIONS = exports.RefundHistorySchema = exports.RefundStatusSchema = exports.CreateRefundSchema = exports.CancelOrderSchema = exports.RecentOrdersSchema = exports.SearchOrdersSchema = exports.OrderDetailsSchema = exports.CreatePaymentSchema = void 0;
const zod_1 = require("zod");
// 支付创建参数
exports.CreatePaymentSchema = zod_1.z.object({
amount: zod_1.z.number().positive(),
description: zod_1.z.string().min(1),
payment_method: zod_1.z.enum(['wechat', 'alipay', 'auto']).optional().default('auto'),
customer_email: zod_1.z.string().email().optional(),
expires_in: zod_1.z.number().positive().optional().default(3600),
success_url: zod_1.z.string().url().optional()
});
// 订单查询参数
exports.OrderDetailsSchema = zod_1.z.object({
order_id: zod_1.z.string().min(1)
});
// 订单搜索参数
exports.SearchOrdersSchema = zod_1.z.object({
status: zod_1.z.enum(['all', 'pending', 'paid', 'failed', 'expired', 'refunded']).optional().default('all'),
amount_min: zod_1.z.number().positive().optional(),
amount_max: zod_1.z.number().positive().optional(),
date_from: zod_1.z.string().optional(), // YYYY-MM-DD
date_to: zod_1.z.string().optional(), // YYYY-MM-DD
customer_email: zod_1.z.string().email().optional(),
limit: zod_1.z.number().min(1).max(100).optional().default(20)
});
// 最近订单参数
exports.RecentOrdersSchema = zod_1.z.object({
limit: zod_1.z.number().min(1).max(100).optional().default(10),
status: zod_1.z.enum(['all', 'pending', 'paid', 'failed']).optional().default('all')
});
// 取消订单参数
exports.CancelOrderSchema = zod_1.z.object({
order_id: zod_1.z.string().min(1),
reason: zod_1.z.string().optional()
});
// 创建退款参数
exports.CreateRefundSchema = zod_1.z.object({
order_id: zod_1.z.string().min(1),
amount: zod_1.z.number().positive().optional(),
reason: zod_1.z.string().min(1)
});
// 退款状态参数
exports.RefundStatusSchema = zod_1.z.object({
refund_id: zod_1.z.string().min(1)
});
// 退款历史参数
exports.RefundHistorySchema = zod_1.z.object({
limit: zod_1.z.number().min(1).max(100).optional().default(20),
status: zod_1.z.enum(['all', 'processing', 'completed', 'failed']).optional().default('all')
});
// MCP 工具权限映射
exports.MCP_TOOL_PERMISSIONS = {
// 支付创建工具组
'create_wechat_payment': ['mcp:payment:create'],
'create_alipay_payment': ['mcp:payment:create'],
'create_auto_payment': ['mcp:payment:create'],
// 订单查询工具组
'get_order_details': ['mcp:payment:query'],
'search_orders': ['mcp:payment:query', 'mcp:history:read'],
'get_recent_orders': ['mcp:payment:query'],
// 订单管理工具组
'cancel_order': ['mcp:order:manage'],
// 退款工具组
'create_refund': ['mcp:refund:create'],
'get_refund_status': ['mcp:refund:query'],
'get_refund_history': ['mcp:refund:query', 'mcp:history:read'],
};
// 错误类型
class MCPError extends Error {
constructor(message, code = 'UNKNOWN_ERROR', statusCode = 500) {
super(message);
this.code = code;
this.statusCode = statusCode;
this.name = 'MCPError';
}
}
exports.MCPError = MCPError;
class AuthenticationError extends MCPError {
constructor(message = 'Authentication failed') {
super(message, 'AUTH_ERROR', 401);
}
}
exports.AuthenticationError = AuthenticationError;
class PermissionError extends MCPError {
constructor(message = 'Insufficient permissions') {
super(message, 'PERMISSION_ERROR', 403);
}
}
exports.PermissionError = PermissionError;
class ValidationError extends MCPError {
constructor(message = 'Invalid input parameters') {
super(message, 'VALIDATION_ERROR', 400);
}
}
exports.ValidationError = ValidationError;
class RateLimitError extends MCPError {
constructor(message = 'Rate limit exceeded') {
super(message, 'RATE_LIMIT_ERROR', 429);
}
}
exports.RateLimitError = RateLimitError;
//# sourceMappingURL=types.js.map