UNPKG

@nicotordev/flowcl-pagos

Version:

SDK en TypeScript para integrar pagos con la API de Flow.cl de manera sencilla y segura.

198 lines (141 loc) 4.43 kB
# Flow.cl - Cliente API para Node.js ![Flow.cl](https://www.flow.cl/images/header/logo-flow.svg) [![NPM Version](https://img.shields.io/npm/v/@nicotordev/flowcl-pagos.svg)](https://www.npmjs.com/package/@nicotordev/flowcl-pagos) [![License](https://img.shields.io/npm/l/@nicotordev/flowcl-pagos.svg)]([LICENSE](https://github.com/nicotordev/flowcl-pagos/blob/main/LICENSE)) ![Build](https://github.com/nicotordev/flowcl-pagos/actions/workflows/verify-build.yml/badge.svg) ![Tests](https://github.com/nicotordev/flowcl-pagos/actions/workflows/test.yml/badge.svg?style=flat-square) ## Descripción Este paquete proporciona un Cliente API en TypeScript para integrar: - **Pagos** - **Clientes** - **Planes de suscripción** - **Suscripciones e ítems de suscripción** - **Reembolsos** - **Cupones** - **Facturas (Invoices)** - **Liquidaciones (Settlements)** - **Información del comercio (Merchant)** con la API de [Flow.cl](https://www.flow.cl/) de manera sencilla y segura. ## Instalación ```sh npm install @nicotordev/flowcl-pagos ``` ```sh yarn add @nicotordev/flowcl-pagos ``` ## Uso ### Importar y configurar el cliente ```typescript import Flow from '@nicotordev/flowcl-pagos'; const flow = new Flow( 'tu_api_key', 'tu_secret_key', 'sandbox', // o 'production' ); ``` ## Funcionalidades principales ### 1. Pagos #### Crear una orden de pago ```typescript const order = await flow.payments.create({ commerceOrder: '123456', subject: 'Compra de producto', amount: 10000, email: 'cliente@example.com', urlReturn: 'https://tusitio.com/retorno', urlConfirmation: 'https://tusitio.com/confirmacion', }); console.log('URL de pago:', order.url + '?token=' + order.token); // Redireccionar al usuario a order.url + '?token=' + order.token || redirectUrl ``` #### Consultar el estado de un pago ```typescript const status = await flow.payments.status.byToken('token_de_transaccion'); console.log('Estado del pago:', status.status); // Se puede usar status.status o status.statusStr ``` ### 2. Clientes #### Crear un cliente ```typescript const customer = await flow.customers.create{ email: 'cliente@example.com', name: 'Juan Pérez', externalId: '123123', }); console.log('Cliente creado:', customer); ``` ### 3. Planes de suscripción #### Crear un plan ```typescript const plan = await flow.plans.create({ name: 'Plan Mensual', amount: 5000, currency: 'CLP', interval: 3, // Monthly, }); console.log('Plan creado:', plan); ``` ### 4. Suscripciones #### Crear una suscripción ```typescript const subscription = await flow.subscriptions.createToPlan({ planId: '1234', customerId: '5678', }); console.log('Suscripción creada:', subscription); ``` ### 5. Reembolsos #### Solicitar un reembolso ```typescript const refund = await flow.refunds.create({ refundCommerceOrder: '98765', receiverEmail: 'example@example.com', amount: 5000, urlCallBack: 'https://tusitio.com/callback', }); console.log('Reembolso solicitado:', refund); ``` ### 6. Cupones #### Crear un cupón ```typescript const coupon = await flow.coupons.create({ name: 'SomeCouponName', amount: 5000, }); console.log('Cupón creado:', coupon); ``` ### 7. Ítems de suscripción #### Agregar un ítem a una suscripción ```typescript const subscriptionItem = await flow.subscriptionsItems.create({ name: 'SomeItemName', currency: 'CLP', amount: 1000, }); console.log('Ítem agregado a la suscripción:', subscriptionItem); ``` ### 8. Facturas (Invoices) #### Obtener una Factura ```typescript const invoice = await flow.invoices.get.normal('someUniqueUUid'); console.log('Factura creada:', invoice); ``` ### 9. Liquidaciones (Settlements) #### Obtener una liquidación por ID ```typescript const settlement = await flow.settlements.getLiquidationById('stl_12345'); console.log('Liquidación:', settlement); ``` ### 10. Información del comercio (Merchant) #### Obtener información de comercios ```typescript const merchantInfo = await flow.merchants.getAssociatedMerchants(); console.log('Información del comercio:', merchantInfo); ``` ## Requisitos - Node.js 16+ - TypeScript 5+ ## Contribuciones Las contribuciones son bienvenidas. Por favor, abre un issue o un pull request en el [repositorio de GitHub](https://github.com/nicotordev/flowcl-pagos). ## Licencia Este proyecto está bajo la licencia MIT. Ver el archivo [LICENSE](LICENSE) para más detalles.