Files
proyecto-final/PAYPAL_TROUBLESHOOTING.md
2026-02-15 09:23:44 +01:00

100 lines
2.9 KiB
Markdown

# 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