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

2.9 KiB

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:

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