# Solución de Problemas - PayPal

## Si ves "Error al procesar el pago con PayPal"

### Paso 1: Abre la Consola del Navegador
1. Presiona **F12** o **Cmd+Option+I** (Mac)
2. Ve a la pestaña **Console**

### Paso 2: Busca el mensaje de error
Cuando hagas clic en "Pagar con PayPal", deberías ver en la consola:
- `CSRF Token encontrado: Sí`
- `Response status: 200`
- `Response data: {"redirect": "https://www.sandbox.paypal.com/..."}`
- `Redirigiendo a: https://www.sandbox.paypal.com/...`

### Paso 3: Interpreta los errores

#### Error: "CSRF Token encontrado: No"
**Solución:**
- El formulario no tiene token CSRF
- Asegúrate de que `{% csrf_token %}` esté en el template checkout.html
- Recarga la página (Ctrl+Shift+R)

#### Error: "Response status: 403"
**Causa:** Error de CSRF token o permisos
**Solución:**
- Verifica que estés logueado
- Limpia cookies: Settings > Clear browsing data > Cookies
- Recarga la página

#### Error: "Response status: 500"
**Causa:** Error en el servidor
**Solución:**
- Ve a la terminal donde corre Django
- Busca el mensaje de error (stack trace en rojo)
- Verifica que `PAYPAL_CLIENT_ID` y `PAYPAL_CLIENT_SECRET` estén correctos en settings.py

#### Error: "Error inesperado al procesar el pago"
**Solución:**
- Mira en la consola qué dice exactamente
- Copia el error completo
- Revisa los logs de Django en la terminal

### Paso 4: Verifica el Backend

En la terminal donde corre Django, deberías ver:
```
[00/Month/2026 12:00:00] "POST /tienda/paypal/create-payment/ HTTP/1.1" 200 123
```

Si ves un error (4xx o 5xx), el problema está en el servidor.

### Paso 5: Test Manual

Ejecuta en la terminal:
```bash
cd /home/daniel/projects/proyecto/proyecto2/proyecto
.venv/bin/python test_paypal.py
```

Si todo está bien, deberías ver:
```
✓ paypalrestsdk importado correctamente
✓ Configuración de PayPal aplicada
✓ Pago creado exitosamente
```

## Checklist de Configuración

- [ ] `pip install paypalrestsdk` (verificar con: `.venv/bin/pip list | grep paypal`)
- [ ] `PAYPAL_CLIENT_ID` en settings.py (no vacío)
- [ ] `PAYPAL_CLIENT_SECRET` en settings.py (no vacío)
- [ ] `PAYPAL_MODE = 'sandbox'` en settings.py
- [ ] `{% csrf_token %}` en checkout.html
- [ ] El usuario está autenticado (login requerido)
- [ ] El carrito tiene items

## Credenciales de Prueba

Si necesitas nuevas credenciales:
1. Ve a https://sandbox.paypal.com/
2. Login con tu cuenta
3. Ve a Dashboard > Apps & Credentials
4. Copia Client ID y Secret
5. Actualiza en settings.py
6. Recarga la página

## Logs Útiles

Para ver más detalles, edita `/tienda/views.py` y busca la función `create_paypal_payment`:
- Ya tiene `print()` para loguear errores
- Verás los mensajes en la terminal de Django

## Contacto con PayPal

Si todo lo anterior no funciona:
- El problema puede ser con las credenciales de PayPal
- Verifica que sean del **SANDBOX** (no production)
- Intenta regenerar las credenciales en paypal.com
