~/cuaderno / 2019 / entrada-527.md

PayPal IPN: investigar el error «handshake invalid»

Publicado 09 julio 2019 2 min de lectura Revisado 23 septiembre 2026
Logotipo de PayPal: dos letras P superpuestas en azul junto a la palabra PayPal

Al integrar PayPal IPN encontré el error «handshake invalid». La codificación del mensaje puede ser una causa, pero no es la única. Cambiar el juego de caracteres de la cuenta no debe ser la respuesta automática a cualquier validación fallida.

Paypal ipn / verificar el mensaje. Validación del protocolo y comprobación del pedido
Diagrama explicativo creado para esta entrada; no es una captura de producto.

Qué está verificando IPN

El receptor recibe una notificación y la valida con PayPal siguiendo su protocolo. La petición de verificación debe conservar correctamente los datos recibidos y añadir el comando previsto para esa comprobación. Reconstruir campos alterando codificación, orden o valores puede introducir errores.

Comprueba que utilizas el endpoint HTTPS del entorno correcto: producción y sandbox no son intercambiables.

Validar no basta para marcar un pago

Una respuesta VERIFIED confirma la validación del mensaje, pero la aplicación todavía debe comprobar el destinatario, el estado del pago, el importe, la moneda y su relación con el pedido. También debe evitar procesar dos veces el mismo identificador de transacción.

IPN puede reenviar notificaciones. Una integración robusta debe ser idempotente: repetir el mensaje no debería duplicar una entrega ni un abono.

Investigar sin perder el mensaje original

Registra el resultado de la validación y los datos estrictamente necesarios para diagnosticarlo. Compara el cuerpo recibido con lo enviado a verificar y revisa la codificación configurada. No publiques registros que contengan datos personales o credenciales.

Referencia: implementación de IPN, PayPal.

Compartir: X / Twitter LinkedIn Reddit Email
Siguiente comando: volver al archivo o pulsa Ctrl + K

3 comentarios

TIP RÁPIDO

Sé concreto, añade contexto (versión, distro, stack) y si puedes pega logs en bloque de código. Menos drama, más señales.

nginx plesk mariadb logs
  1. Hola, he buscado esa opción en paypal y de verdad que no la encuentro 🙁 no se que hacer para arreglar ese problema, espero me puedar ayudar indicándome un poco mejor donde encuentro esa opción en paypal.

  2. David Abellán OP ADMIN

    PayPal ha cambiado el panel de control y ahora tienes que hacer lo siguiente. Debes ir a configuración de tu cuenta paypal business, ver las opciones de website payments y desde allí verás una opción que reza: Paypal button language encode. Desde ahí podrás cambiar el charset y hacerlo compatible con UTF-8.

Deja una respuesta

NormaRespeto, claridad, y cero spam. El email no se publica.

Consejo: usa bloques de código para logs. Ej: ```log ... ```

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.