@nicotordev/flowcl-pagos
Version:
SDK en TypeScript para integrar pagos con la API de Flow.cl de manera sencilla y segura.
188 lines • 12.8 kB
TypeScript
import { FlowCreatePaymentByEmailRequest, FlowCreatePaymentByEmailResponse, FlowCreatePaymentRequest, FlowCreatePaymentResponse, FlowPaymentsReceivedByDateRequest, FlowPaymentsReceivedByDateResponse, FlowPaymentsStatusExtendedResponse, FlowPaymentStatusResponse, FlowTransactionsReceivedByDateRequest, FlowTransactionsReceivedByDateResponse } from '../types/flow.payments';
/**
* Cliente para interactuar con la API de pagos de Flow.
* Permite crear órdenes de pago y consultar su estado.
* Implementa un sistema de errores personalizados para un mejor manejo de fallos.
*/
export default class FlowPayments {
private apiKey;
private secretKey;
private axiosInstance;
/**
* Objeto que proporciona métodos para interactuar con los pagos en Flow.
*/
/**
* Métodos para consultar el estado de pagos en Flow mediante diferentes identificadores.
*/
status: {
/**
* Obtiene el estado de un pago en Flow.
* @param {string} token Token del pago a consultar.
* @returns {Promise<FlowPaymentStatusResponse>} Respuesta de Flow con el estado del pago.
* @throws {FlowPaymentStatusError} Si ocurre un error al obtener el estado del pago.
* @throws {FlowAPIError} Si la API de Flow responde con un error HTTP.
*/
byToken: (token: string) => Promise<FlowPaymentStatusResponse>;
/**
* Obtiene el estado de un pago utilizando el identificador de comercio.
* @param {string} commerceId Identificador único del comercio asignado al pago.
* @returns {Promise<FlowPaymentStatusResponse>} Una promesa que resuelve con la respuesta de Flow sobre el estado del pago.
* @throws {FlowPaymentStatusError} Si ocurre un error al obtener el estado del pago.
* @throws {FlowAPIError} Si la API de Flow responde con un error HTTP.
*/
byCommerceId: (commerceId: string) => Promise<FlowPaymentStatusResponse>;
/**
* Obtiene el estado de un pago utilizando el número de orden de Flow.
* @param {number} flowOrder Número de orden de Flow asignado al pago.
* @returns {Promise<FlowPaymentStatusResponse>} Una promesa que resuelve con la respuesta de Flow sobre el estado del pago.
* @throws {FlowPaymentStatusError} Si ocurre un error al obtener el estado del pago.
* @throws {FlowAPIError} Si la API de Flow responde con un error HTTP.
*/
byFlowOrderNumber: (flowOrder: number) => Promise<FlowPaymentStatusResponse>;
};
/**
* Obtiene la lista de pagos recibidos en una fecha específica.
* @param {FlowPaymentsReceivedByDateRequest} data con la fecha en formato YYYY-MM-DD
* @returns {Promise<FlowPaymentsReceivedByDateResponse>} con la lista de pagos recibidos en la fecha indicada.
* @throws {PaymentsReceivedByDateError} Si ocurre un error al obtener la lista de pagos recibidos.
* @throws {FlowAPIError} Si la API de Flow responde con un error HTTP.
*/
listPaymentsByDate: (data: FlowPaymentsReceivedByDateRequest) => Promise<FlowPaymentsReceivedByDateResponse>;
/**
* Obtiene la lista de transacciones recibidas en una fecha específica.
* @param {FlowTransactionsReceivedByDateRequest} data con la fecha en formato YYYY-MM-DD
* @returns {Promise<FlowTransactionsReceivedByDateResponse>} con la lista de transacciones recibidas en la fecha indicada.
* @throws {TransactionsReceivedByDateError} Si ocurre un error al obtener la lista de transacciones recibidas.
* @throws {FlowAPIError} Si la API de Flow responde con un error HTTP.
*/
listTransactionsByDate: (data: FlowTransactionsReceivedByDateRequest) => Promise<FlowTransactionsReceivedByDateResponse>;
statusExtended: {
/**
* Obtiene el estado extendido de un pago en base al token
* @param {string} token Token único del pago a consultar.
* @returns {Promise<FlowPaymentsStatusExtendedResponse>} con la lista de pagos recibidos en la fecha indicada.
* @throws {PaymentsReceivedByDateError} Si ocurre un error al obtener la lista de pagos recibidos.
* @throws {FlowAPIError} Si la API de Flow responde con un error HTTP.
*/
byToken: (token: string) => Promise<FlowPaymentsStatusExtendedResponse>;
/**
* Obtiene el estado extendido de un pago en base al flowOrder
* @param {number} flowOrder numero de orden de Flow asignado al pago por ejemplo 68977654
* @returns {Promise<FlowPaymentsStatusExtendedResponse>} con la lista de pagos recibidos en la fecha indicada.
* @throws {PaymentsReceivedByDateError} Si ocurre un error al obtener la lista de pagos recibidos.
* @throws {FlowAPIError} Si la API de Flow responde con un error HTTP.
*
* */
byFlowOrder: (flowOrder: number) => Promise<FlowPaymentsStatusExtendedResponse>;
};
/**
* Este método permite crear una orden de pago a Flow y recibe como respuesta la URL para redirigir el browser del pagador y el token que identifica la transacción. La url de redirección se debe formar concatenando los valores recibidos en la respuesta de la siguiente forma: url + "?token=" +token Una vez que el pagador efectúe el pago, Flow notificará el resultado a la página del comercio que se envió en el parámetro urlConfirmation.
* @param {FlowCreatePaymentRequest} data con los datos necesarios para crear un pago.
* @returns {Promise<FlowCreatePaymentResponse>} con la respuesta de Flow al crear un pago.
* @throws {FlowCreatePaymentError} Si ocurre un error al crear el pago.
* @throws {FlowAPIError} Si la API de Flow responde con un error HTTP.
*/
create: (data: FlowCreatePaymentRequest) => Promise<FlowCreatePaymentResponse>;
/**
* Permite generar un cobro por email. Flow emite un email al pagador que contiene la información de la Orden de pago y el link de pago correspondiente. Una vez que el pagador efectúe el pago, Flow notificará el resultado a la página del comercio que se envió en el parámetro urlConfirmation.
* @param {FlowCreatePaymentByEmailRequest} data con los datos necesarios para crear un pago.
* @returns {Promise<FlowCreatePaymentByEmailResponse>} con la respuesta de Flow al crear un pago.
* @throws {FlowCreatePaymentByEmailError} Si ocurre un error al crear el pago.
* @throws {FlowAPIError} Si la API de Flow responde con un error HTTP.
*/
createByEmail: (data: FlowCreatePaymentByEmailRequest) => Promise<FlowCreatePaymentByEmailResponse>;
/**
* Constructor de la clase FlowClient.
* @param {string} apiKey Clave de API proporcionada por Flow.
* @param {string} secretKey Clave secreta proporcionada por Flow.
* @param {string}baseURL URL base de la API de Flow.
* @throws {FlowAuthenticationError} Si no se proporciona apiKey o secretKey.
*/
constructor(apiKey: string, secretKey: string, baseURL: string);
/**
* Realiza una petición a la API de Flow.
* @param {string} endpoint URL del endpoint de la API.
* @param {string} data Datos a enviar en la petición.
* @param {'post' | 'get'} method Método de la petición (POST o GET).
* @param {(e: unknown) => never} error Error a lanzar en caso de error.
* @param {(data: P) => P} [modifyResponse] Función para modificar la respuesta de la API.
* @returns {Promise<T>} Respuesta de la API.
* @throws {FlowAPIError} Si hay problemas con la API de Flow.
* @throws {Error} Si hay problemas al realizar la petición.
*/
private request;
/**
* Obtiene el estado de un pago en Flow.
* @param {string} token Token del pago a consultar.
* @returns {Promise<FlowPaymentStatusResponse>} Respuesta de Flow con el estado del pago.
* @throws {FlowPaymentStatusError} Si ocurre un error al obtener el estado del pago.
* @throws {FlowAPIError} Si la API de Flow responde con un error HTTP.
*/
private getPaymentStatusByToken;
/**
* Obtiene el estado de un pago utilizando el identificador de comercio.
* @param {string} commerceId Identificador único del comercio asignado al pago.
* @returns {Promise<FlowPaymentStatusResponse>} Una promesa que resuelve con la respuesta de Flow sobre el estado del pago.
* @throws {FlowPaymentStatusError} Si ocurre un error al obtener el estado del pago.
* @throws {FlowAPIError} Si la API de Flow responde con un error HTTP.
*/
private getPaymentStatusByCommerceId;
/**
* Obtiene el estado de un pago utilizando el número de orden de Flow.
* @param {number} flowOrder Número de orden de Flow asignado al pago.
* @returns {Promise<FlowPaymentStatusResponse>} Una promesa que resuelve con la respuesta de Flow sobre el estado del pago.
* @throws {FlowPaymentStatusError} Si ocurre un error al obtener el estado del pago.
* @throws {FlowAPIError} Si la API de Flow responde con un error HTTP.
*/
private getPaymentStatusByFlowOrderNumber;
/**
* Obtiene la lista de pagos recibidos en una fecha específica.
* @param {FlowPaymentsReceivedByDateRequest} data con la fecha en formato YYYY-MM-DD
* @returns {Promise<FlowPaymentsReceivedByDateResponse>} con la lista de pagos recibidos en la fecha indicada.
* @throws {PaymentsReceivedByDateError} Si ocurre un error al obtener la lista de pagos recibidos.
* @throws {FlowAPIError} Si la API de Flow responde con un error HTTP.
*/
private getPaymentsReceivedByDate;
/**
* Obtiene el estado extendido de un pago en base al token
* @param {string} token Token único del pago a consultar.
* @returns {Promise<FlowPaymentsStatusExtendedResponse>} con la lista de pagos recibidos en la fecha indicada.
* @throws {PaymentsReceivedByDateError} Si ocurre un error al obtener la lista de pagos recibidos.
* @throws {FlowAPIError} Si la API de Flow responde con un error HTTP.
*/
private getStatusExtendedByToken;
/**
* Obtiene el estado extendido de un pago en base al flowOrder
* @param {number} flowOrder numero de orden de Flow asignado al pago por ejemplo 68977654
* @returns {Promise<FlowPaymentsStatusExtendedResponse>} con la lista de pagos recibidos en la fecha indicada.
* @throws {PaymentsReceivedByDateError} Si ocurre un error al obtener la lista de pagos recibidos.
* @throws {FlowAPIError} Si la API de Flow responde con un error HTTP.
*
* */
private getStatusExtendedByFlowOrder;
/**
* Obtiene la lista de transacciones recibidas en una fecha específica.
* @param {FlowTransactionsReceivedByDateRequest} data con la fecha en formato YYYY-MM-DD
* @returns {Promise<FlowTransactionsReceivedByDateResponse>} con la lista de transacciones recibidas en la fecha indicada.
* @throws {TransactionsReceivedByDateError} Si ocurre un error al obtener la lista de transacciones recibidas.
* @throws {FlowAPIError} Si la API de Flow responde con un error HTTP.
*/
private getTransactionsReceivedByDate;
/**
* Este método permite crear una orden de pago a Flow y recibe como respuesta la URL para redirigir el browser del pagador y el token que identifica la transacción. La url de redirección se debe formar concatenando los valores recibidos en la respuesta de la siguiente forma: url + "?token=" +token Una vez que el pagador efectúe el pago, Flow notificará el resultado a la página del comercio que se envió en el parámetro urlConfirmation.
* @param {FlowCreatePaymentRequest} data con los datos necesarios para crear un pago.
* @returns {Promise<FlowCreatePaymentResponse>} con la respuesta de Flow al crear un pago.
* @throws {FlowCreatePaymentError} Si ocurre un error al crear el pago.
* @throws {FlowAPIError} Si la API de Flow responde con un error HTTP.
*/
private createPayment;
/**
* Permite generar un cobro por email. Flow emite un email al pagador que contiene la información de la Orden de pago y el link de pago correspondiente. Una vez que el pagador efectúe el pago, Flow notificará el resultado a la página del comercio que se envió en el parámetro urlConfirmation.
* @param {FlowCreatePaymentByEmailRequest} data con los datos necesarios para crear un pago.
* @returns {Promise<FlowCreatePaymentByEmailResponse>} con la respuesta de Flow al crear un pago.
* @throws {FlowCreatePaymentByEmailError} Si ocurre un error al crear el pago.
* @throws {FlowAPIError} Si la API de Flow responde con un error HTTP.
*/
private createPaymentByEmail;
}
//# sourceMappingURL=flow.payments.d.ts.map