@sptdev/itpv
v1.0.20
Published
Reimplementación ITPV
Downloads
43
Readme
@sptdev/itpv
Módulo nativo de React Native para procesamiento de pagos con terminales MITM POS. Compatible con Android (Kotlin) e iOS (Swift), e implementado con la nueva arquitectura de React Native.
✨ Características
- Login bancario con validación de usuario bloqueado
- Conexión a dispositivos vía Bluetooth
- Selección de dispositivos emparejados
- Procesamiento de pagos con múltiples métodos:
- Contado
- Meses sin intereses (MSI)
- Meses con intereses (MCI)
- Lectura de tarjeta (chip/contactless)
- Emisión de voucher vía email
- Soporte para firma digital
- Soporte para múltiples merchant IDs y monedas
🚀 Instalación
npm install @sptdev/itpvó con yarn:
yarn add @sptdev/itpv⚙️ Uso básico
import Itpv from '@sptdev/itpv';
// Login
await Itpv.loginUser({
user: 'usuario123',
password: 'claveSegura',
reference: 'Ref001',
amount: '100.00',
currency: 'mxn',
email: '[email protected]',
usrTrx: '',
useMSI: false,
activeMonths: '',
company: 'ecompany',
branch: 'ebranch',
merchant: 'merchantMode',
});
// Inicializar dispositivo
await Itpv.initDevice({
reader: 'DEVICE_NAME',
amount: 12345,
reference: 'Ref001',
mcurrency: 'MXN',
user: 'usuario123',
email: '[email protected]',
companyEmail: '[email protected]',
useMSI: true,
activeMonths: ['3', '6', '12'],
});
// Procesar pago
await Itpv.startTransaction();
// Desconectar dispositivo
await Itpv.disconnectDevice();📋 API Métodos
loginUser(params: LoginParams): Promise<void>
Autentica al usuario en el sistema de pagos.
Parámetros:
user: string - Usuario de accesopassword: string - Contraseña de accesoreference: string - Referencia de la transacciónamount: string - Monto de la transaccióncurrency: string - Moneda (ej: 'mxn', 'usd')email: string - Email del clientecompany: string - Empresabranch: string - Sucursalmerchant: string - Modo de merchant
initDevice(params: DeviceParams): Promise<void>
Inicializa y configura el dispositivo de pago.
startTransaction(): Promise<void>
Inicia el proceso de transacción de pago. El dispositivo debe estar conectado y configurado previamente.
disconnectDevice(): Promise<void>
Desconecta el dispositivo de pago.
📡 Eventos disponibles
Puedes escuchar eventos emitidos por el módulo:
import { NativeEventEmitter, NativeModules } from 'react-native';
const eventEmitter = new NativeEventEmitter(NativeModules.Itpv);
eventEmitter.addListener('loginStatus', (status) => {
console.log('Login:', status);
});
eventEmitter.addListener('deviceState', (state) => {
console.log('Dispositivo:', state); // 'connected' o 'disconnected'
});
eventEmitter.addListener('transactionStatus', (statusData) => {
console.log('Estado transacción:', statusData.message); // Actualizaciones en tiempo real
});
eventEmitter.addListener('transactionResult', (data) => {
console.log('Transacción aprobada:', data);
});
eventEmitter.addListener('transactionResultError', (error) => {
console.error('Error en transacción:', error);
});
eventEmitter.addListener('voucherResult', (mensaje) => {
console.log('Voucher:', mensaje);
});🛠️ Requisitos
- React Native >= 0.70
- Permisos Bluetooth habilitados en Android (BLUETOOTH_CONNECT y BLUETOOTH_SCAN)
- Android SDK 31+ para permisos dinámicos
- iOS con soporte para Swift
🧪 En desarrollo
Este módulo está en fase inicial y se encuentra en evolución activa. Se recomienda probar en ambientes controlados antes de implementarlo en producción.
📄 Licencia
MIT © sptdev
