
# DOCUMENTACION DE CONFIGURACION - CAFECOIN

## ARQUITECTURA

MercadoPago -> Vercel (proxy) -> VPS Viejo + VPS Nuevo

## URLS

- Webhook MP (IPN): https://vercel-deploy-lake-one.vercel.app/api/webhook
- VPS Viejo (agexpendedoras.com.ar): ESP01-ESP30
- VPS Nuevo (cafecoin.ddns.net): ESP50-ESP80

## MERCADOPAGO

- App ID: 3042243836620387
- User ID (collector): 47829110
- Site: MLA (Argentina)
- Token VPS Viejo: APP_USR-3995818594143367-030320-32ec76b4df0ede3a78295b8e5943bf25-47829110
- Token VPS Nuevo: APP_USR-3042243836620387-120420-c55b8cada8b53fe593694f1d0a210572-47829110
- Token Vercel Deploy: vcp_16B02SoLgxpm9OwKsifcgcytK52TzblZGacf6hZiDhK1BSGN290yb8qB

### Tienda y POS

- Store ID: 78204861 (PCPRUEBA)
- POS ID: 133896669 (PCPRUEBA, fixed_amount: true)

## VERCEL

- Proyecto: trading1976/vercel-deploy
- URL: https://vercel-deploy-lake-one.vercel.app/api/webhook
- Endpoints: GET/HEAD → 200 OK, POST → reenvia a ambos VPS
- Archivo local: C:\Users\Usuario\cafetera-mp\vercel\api\webhook.js

## VPS NUEVO (149.50.128.5:5849)

- User: root / Pass: 12345678
- Codigo: /var/www/webhook/webhook.js
- Servicio: PM2 (webhook-mp)
- Puerto: 3002 (HTTP)
- MQTT: ws://localhost:9001
- Logs: /var/www/webhook/webhook.log
- Pagos procesados: /var/www/webhook/pagos_procesados.json
- ESPs: ESP50 a ESP80

### Funcionamiento
1. Recibe POST de Vercel en /webhook
2. Consulta MP para obtener datos del pago
3. Verifica que el ESP (external_reference) este en su lista (ESP50-80)
4. Si no esta en lista → ignora (NO reembolsa)
5. Verifica estado online del ESP
6. Si offline → reembolsa y notifica por email
7. Si online → publica MQTT (cafetera/pago/{ESP}), guarda en Firebase, guarda ID en pagos_procesados.json
8. Envia notificacion Telegram

## VPS VIEJO (www.agexpendedoras.com.ar)

- Puerto: 3002 (HTTPS con SSL)
- MQTT: ws://149.50.135.26:9001
- ESPs: ESP01 a ESP30
- Mismo flujo que VPS nuevo pero con sus propios ESPs

## CAMBIOS REALIZADOS

### 1. Fix: VPS nuevo reembolsaba ESPs ajenos
- Problema: Al recibir pagos de ESP01-30 via Vercel, el VPS nuevo reembolsaba porque no estaban en su lista
- Solucion: Cambiar logica de "reembolsando" a "ignorado"

### 2. Fix: Rutas absolutas en VPS nuevo
- Problema: ARCHIVO_PAGOS y ARCHIVO_LOGS usaban rutas relativas, PM2 corre desde /root
- Solucion: Cambiar a rutas absolutas: /var/www/webhook/pagos_procesados.json

### 3. Fix: Try-catch en guardarPago
- Problema: Error de escritura podia perder IDs de pagos procesados
- Solucion: Agregar try-catch con log de error

### 4. Fix: Vercel health check
- Problema: UptimeRobot usaba HEAD requests y recibia 405
- Solucion: Agregar soporte para GET y HEAD con respuesta 200

## MONITOREO

- UptimeRobot: https://uptimerobot.com
- URL monitoreada: https://vercel-deploy-lake-one.vercel.app/api/webhook
- Frecuencia: cada 5 minutos (plan gratis)

## TELEGRAM

- Bot Token: 5439702151:AAHnPjMVB0bNyzDGjebSHuuROpX2OQ_flSg
- Chat ID: 803228423
- Recibe notificaciones de: ventas exitosas, reembolsos, errores

## FIREBASE

- Proyecto: ventas-de-mercadopago
- Database URL: https://ventas-de-mercadopago-default-rtdb.firebaseio.com
- Estructura: ventas/{ESP}/{pushId} con monto, email, id_pago, fechas

## COMANDOS UTILES

### VPS Nuevo
- Ver logs en vivo: pm2 logs webhook-mp
- Ver estado: pm2 status
- Reiniciar: pm2 restart webhook-mp
- Editar codigo: nano /var/www/webhook/webhook.js
- Ver pagos procesados: cat /var/www/webhook/pagos_procesados.json

### Vercel
- Deploy: vercel deploy --prod (desde C:\Users\Usuario\cafetera-mp\vercel)
- Ver logs: vercel logs vercel-deploy-lake-one.vercel.app

