2.9 KiB
2.9 KiB
Solución de Problemas - PayPal
Si ves "Error al procesar el pago con PayPal"
Paso 1: Abre la Consola del Navegador
- Presiona F12 o Cmd+Option+I (Mac)
- 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: 200Response 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_IDyPAYPAL_CLIENT_SECRETesté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:
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_IDen settings.py (no vacío)PAYPAL_CLIENT_SECRETen 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:
- Ve a https://sandbox.paypal.com/
- Login con tu cuenta
- Ve a Dashboard > Apps & Credentials
- Copia Client ID y Secret
- Actualiza en settings.py
- 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