# Instrucciones para Prueba de Mastercard - Diagnóstico

## ✅ Logging Implementado

Se ha agregado logging detallado en:

### Backend (`InvitationProcessPaymentController.php`)
- 💳 Datos enviados a Mercado Pago (payment_method_id, issuer_id y su tipo)
- ❌ Errores de API de Mercado Pago con detalles completos
- 📥 Respuesta completa de Mercado Pago (status, status_detail, etc.)
- ⚠️ Información específica de pagos rechazados

### Frontend (`pay_mercadopago.blade.php` y `upgrade-invitation-plan-mercadopago.blade.php`)
- 💳 Datos de tarjeta capturados (payment_method_id, issuer_id, tipo de issuer_id)
- 📋 cardFormData completo
- 📥 Respuesta de Mercado Pago parseada
- ❌ Detalles completos de rechazo (status_detail, payment_method_id, issuer_id)

## 🧪 Pasos para Realizar la Prueba

### 1. Limpiar logs anteriores
```bash
cd /Users/matias/Sites/eventdate
# Opcional: hacer backup del log actual
cp storage/logs/laravel.log storage/logs/laravel.log.backup

# Limpiar el log para tener solo los nuevos
echo "" > storage/logs/laravel.log
```

### 2. Abrir la aplicación en el navegador
- El servidor está corriendo en: **http://127.0.0.1:8000**
- Navegar a la página de pago de invitaciones
- Abrir las **DevTools del navegador** (F12 o Cmd+Option+I en Mac, F12 en Windows/Linux)
- Ir a la pestaña **Console**

### 3. Realizar prueba con Mastercard
Usar la tarjeta de prueba oficial de Mastercard:
- **Número**: 5031 7557 3453 0604
- **Nombre**: APRO
- **CVV**: 123
- **Fecha de vencimiento**: Cualquier fecha futura (ej: 12/25)

### 4. Capturar información de la consola

Buscar y copiar los siguientes logs en la consola del navegador:

```
🚀 SUBMIT - Iniciando pago...
💳 DATOS DE TARJETA CAPTURADOS:
  - payment_method_id: [VALOR]
  - issuer_id: [VALOR]
  - issuer_id type: [TIPO]
  - installments: [VALOR]
  - token: [PRESENTE/AUSENTE]
📋 cardFormData COMPLETO: [JSON]

📥 RESPUESTA MERCADOPAGO: [JSON]
📥 DATA PARSEADA: [JSON]
📥 STATUS: [VALOR]

❌ PAGO RECHAZADO O PENDIENTE
  - status: [VALOR]
  - status_detail: [VALOR]
  - payment_method_id: [VALOR]
  - issuer_id: [VALOR]
  - payment_id: [VALOR]
  - transaction_amount: [VALOR]
📋 RESPUESTA COMPLETA DE RECHAZO: [JSON]
```

### 5. Revisar logs de Laravel

**Opción A - Usar el script de análisis automático** (Recomendado):
```bash
cd /Users/matias/Sites/eventdate
./analizar_logs_mastercard.sh
```

Este script mostrará automáticamente todos los logs relevantes organizados por categoría.

**Opción B - Ver logs manualmente**:
```bash
cd /Users/matias/Sites/eventdate
tail -100 storage/logs/laravel.log
```

Buscar los siguientes logs:

```
💳 DATOS ENVIADOS A MERCADO PAGO
📥 RESPUESTA DE MERCADO PAGO
⚠️  PAGO RECHAZADO O PENDIENTE
❌ ERROR MERCADO PAGO API (si hay error de API)
```

## 📊 Información Crítica a Compartir

Una vez realizada la prueba, compartir:

1. **De la consola del navegador**:
   - El valor de `issuer_id` y su tipo (number, string, etc.)
   - El `status_detail` del rechazo
   - La respuesta completa de rechazo (JSON)

2. **De los logs de Laravel** (`storage/logs/laravel.log`):
   - Los logs con emojis 💳, 📥, ⚠️, ❌
   - Especialmente el `status_detail` y cualquier mensaje de error

## 🔍 Qué Buscar

Los datos más importantes para el diagnóstico son:

1. **`issuer_id`**: 
   - ¿Qué valor tiene?
   - ¿Es un número o string?
   - ¿Es diferente para Mastercard vs Visa/Amex?

2. **`status_detail`**: 
   - Este campo indica el motivo específico del rechazo
   - Ejemplos: `cc_rejected_bad_filled_card_number`, `cc_rejected_invalid_installments`, etc.

3. **Errores de API**:
   - Si hay errores antes de crear el pago (problemas con issuer_id, por ejemplo)

## 🎯 Próximos Pasos

Con esta información podremos:
1. Identificar si el problema es con el `issuer_id` de Mastercard
2. Ver si hay un error específico de configuración
3. Determinar si es un problema de credenciales TEST
4. Implementar la solución específica según el diagnóstico

---

**Nota**: Los logs están diseñados para ser fáciles de encontrar con los emojis. Simplemente busca en la consola y en el archivo de log los emojis mencionados.
