skailan-core
Version:
Servicio de autenticación y multitenancy para Skailan.
65 lines • 1.83 kB
TypeScript
import { PrismaClient } from "@prisma/client";
import { EPaycoPaymentResponse } from "../config/epayco.config.js";
export interface PaymentRequest {
organizationId: string;
planId: string;
userId: string;
metadata?: any;
}
export interface PaymentResponse {
checkoutUrl: string;
reference: string;
amount: number;
planName: string;
expiresAt: Date;
}
export interface PaymentConfirmationRequest {
body: EPaycoPaymentResponse;
expectedAmount: number;
}
export declare class PaymentService {
private static instance;
private prisma;
private configService;
private signatureService;
private trialService;
private constructor();
static getInstance(prisma: PrismaClient): PaymentService;
/**
* Inicia un proceso de pago
*/
startPayment(request: PaymentRequest): Promise<PaymentResponse>;
/**
* Confirma un pago recibido de ePayco
*/
confirmPayment(request: PaymentConfirmationRequest): Promise<any>;
/**
* Lista los pagos de una organización
*/
listPayments(organizationId: string, limit?: number, offset?: number): Promise<any[]>;
/**
* Obtiene estadísticas de pagos
*/
getPaymentStats(organizationId: string): Promise<any>;
/**
* Reembolsa un pago
*/
refundPayment(paymentId: string, reason: string): Promise<void>;
/**
* Valida la solicitud de pago
*/
private validatePaymentRequest;
/**
* Genera una referencia única para el pago
*/
private generatePaymentReference;
/**
* Genera la URL de checkout de ePayco
*/
private generateCheckoutUrl;
/**
* Crea o actualiza la suscripción después de un pago exitoso
*/
private createOrUpdateSubscription;
}
//# sourceMappingURL=PaymentService.d.ts.map