Configurar el IPN de Digistore24 en WordPress: guía paso a paso
Configurar el IPN de Digistore24 para que tu WordPress reciba los avisos de compra de forma automática se reduce, en el fondo, a tres cosas: la URL correcta, una firma verificada y una prueba en condiciones antes de lanzar. Esta guía va directa al grano técnico, paso a paso.
Si vendes un producto en Digistore24 y no quieres dar acceso a mano cada vez que entra una venta, la conexión IPN es imprescindible. Suena a detalle técnico menor, pero decide si tu área de miembros funciona sola o si vas a revisar ventas cada día. Este artículo va directo a la parte técnica: la URL del IPN en el backend, la verificación de la firma, los eventos y una prueba en condiciones antes de lanzar. Si primero quieres ver el montaje completo de un área de miembros con Digistore24, tenemos la guía Cómo crear un área de miembros en WordPress; aquí profundizamos en la mecánica del IPN.
¿Qué es el IPN y para qué sirve?
IPN son las siglas de Instant Payment Notification, notificación instantánea de pago. En cuanto ocurre algo relevante en Digistore24, una compra, un reembolso, un contracargo o una cancelación, Digistore24 envía automáticamente una petición HTTP POST a una URL fija de tu WordPress. Tu servidor la recibe, la verifica y actúa en consecuencia, normalmente concediendo o retirando un acceso.
Sin IPN, la alternativa es el camino manual: entrar al backend, detectar las ventas nuevas y dar de alta a cada miembro a mano. Con tres ventas al mes es tedioso pero llevadero; con un segundo producto o más volumen, se convierte en fuente constante de errores. El IPN lo automatiza: entra la compra, se concede el acceso, sin tocar nada.
Qué necesitas antes de configurar el IPN de Digistore24
Antes de empezar, conviene tener listas tres cosas:
- Una cuenta de vendedor en Digistore24, con al menos un producto ya creado.
- Un WordPress accesible por HTTPS. Digistore24 solo envía IPN a endpoints cifrados; sin SSL válido no llega ningún aviso.
- Un endpoint que procese las peticiones IPN. Un script propio, un plugin a medida o, con menos riesgo de error, un plugin de membresías con integración nativa de Digistore24, como MemberJet.
Un matiz: la interfaz de Digistore24 llama a esto «IPN», «URL de retorno» o «webhook» según la pantalla, pero es lo mismo. El nombre y su ubicación pueden cambiar; en general lo encuentras en la configuración de tu cuenta de vendedor o de cada producto.
Paso a paso: registrar la URL del IPN en el backend de Digistore24
Así es, a grandes rasgos, el proceso manual:
- Publica el endpoint del IPN en tu WordPress. Una URL fija que recibe y procesa las peticiones POST de Digistore24, por ejemplo un endpoint REST o un script dedicado.
- Entra en el backend de Digistore24 y ve a la configuración de tu cuenta de vendedor o del producto, donde está la sección del IPN.
- Introduce la URL completa. Comprueba el «https://» inicial, el dominio y la ruta sin errores de tecleo; un carácter mal puesto y no llega ningún aviso.
- Define y guarda una passphrase. Más detalle en el siguiente apartado; es un paso crítico y no opcional.
- Activa los eventos que necesitas, como la compra, el reembolso o el contracargo.
- Guarda y prueba con el simulador de IPN antes de la primera compra real.
Passphrase y verificación de firma SHA-512: el paso de seguridad más importante
Un endpoint de IPN es accesible desde fuera, es la naturaleza de cualquier webhook, así que no basta con dar por buena cualquier petición. Sin verificación, cualquiera que conozca o adivine tu URL de IPN podría enviar un aviso falso de «compra realizada» y colarse en contenido de pago sin haber pagado.
Digistore24 resuelve esto con una passphrase que defines en el backend y que solo conocéis tú y Digistore24. Con ella y los datos de cada notificación, Digistore24 calcula una firma SHA-512 que envía junto con la petición. Tu endpoint recalcula esa firma y la compara con la recibida: si coinciden, el aviso es auténtico; si no, descartas la petición, por muy convincente que parezca.
- Nunca guardes la passphrase en texto plano en el código ni en un archivo público; si cae en manos ajenas, cualquiera puede calcular firmas válidas.
- Compara la firma con una función de tiempo constante, como
hash_equalsen PHP, no con una comparación de cadenas normal, para evitar ataques de temporización. - Piensa en fail-closed, no en fail-open: si la firma no se puede verificar o es inválida, no se concede nada.
Esta verificación no es un extra opcional, es el núcleo de la seguridad del IPN. Saltársela o implementarla mal puede abrir una puerta de acceso gratuito a contenido de pago.
Los eventos del IPN y qué debería hacer tu web con cada uno
Digistore24 distingue varios eventos, cada uno con su propia notificación. Para un área de miembros o un curso, los que más importan son estos:
| Evento | Qué ocurre | Reacción de tu web |
|---|---|---|
| Pago / compra | Un cliente ha pagado correctamente | Crear o activar al miembro, conceder acceso al producto comprado |
| Reembolso | Se ha devuelto el importe total o parcial | Bloquear el acceso o desactivar la membresía |
| Contracargo | El cliente ha reclamado el cargo a través de su banco | Bloquear el acceso de inmediato, suele requerir revisión adicional |
| Cancelación de suscripción | Se ha cancelado una suscripción activa | Bloquear el acceso al terminar el periodo ya pagado, no de inmediato |
El último punto es donde más fallan las implementaciones caseras: una cancelación no es un reembolso. Quien cancela ya ha pagado el periodo actual y debería seguir usándolo hasta el final; bloquear de inmediato solo castiga a clientes que no quieren renovar y genera soporte innecesario. Trata además cada evento de forma idempotente: si la misma notificación llega duplicada, por ejemplo porque el servidor respondió tarde la primera vez, eso no debe crear al mismo miembro dos veces.
Prueba con el simulador de IPN de Digistore24
Antes de que el primer cliente real pase por tu endpoint, pruébalo con datos ficticios. Digistore24 ofrece en su backend un simulador de IPN con el que envías notificaciones de prueba a tu URL registrada sin generar una compra real.
- Abre el simulador y selecciona tu URL de IPN junto con el evento de prueba.
- Lanza la notificación y comprueba que respondes con un 200-OK; cualquier otra respuesta o un timeout cuenta como entrega fallida.
- Verifica en tu WordPress que la acción esperada se ha ejecutado, por ejemplo un miembro de prueba creado o un acceso concedido.
- Prueba varios eventos, no solo la compra: simula también un reembolso y, si es posible, una cancelación.
Dedícale tiempo sin prisas: un fallo del IPN suele descubrirse cuando el primer cliente de pago escribe porque su acceso no se activó, el peor momento para depurar.
Errores típicos al configurar el IPN de Digistore24
La mayoría de los problemas se reducen a un puñado de causas recurrentes.
- URL incorrecta o incompleta: falta el «https://», hay una errata en la ruta o apunta a un dominio antiguo. Revísala carácter por carácter.
- La firma no coincide: la passphrase del backend no coincide con la que usa tu código, a veces por un espacio de más al copiarla o por un cambio que no llegó a todas partes.
- La caché bloquea la respuesta: un plugin de caché o el caché del servidor intercepta el POST en lugar de dejarlo pasar. El endpoint del IPN debe quedar siempre fuera de cualquier caché.
- El firewall o un plugin de seguridad bloquea el POST: algunos firewalls marcan como sospechosa cualquier petición POST desconocida; añade tu endpoint como excepción si hace falta.
- No se devuelve un 200-OK: si el script lanza un error o tarda demasiado, Digistore24 lo trata como entrega fallida. Responde rápido y limpio, aunque el procesamiento real siga en segundo plano.
Consejos de depuración
Si una notificación no llega como esperabas, ve paso a paso: revisa los logs del servidor para ver si la petición POST llega siquiera; si no, el problema suele estar en la URL, el firewall o una redirección. Haz que el endpoint registre temporalmente los datos en bruto recibidos, para ver qué llega antes de la verificación de firma. Calcula también la firma esperada de forma aislada con un script de prueba, para distinguir un error de passphrase de uno de cálculo. Desactiva caché y plugins de seguridad y relanza el simulador; si el aviso pasa entonces, ya tienes acotada la causa. Y saca del flujo de respuesta inmediata los pasos más pesados, como el correo de bienvenida, para responder con el 200-OK sin demora.
El camino cómodo: que MemberJet se encargue del IPN
Todo lo anterior, construir el endpoint, verificar la firma, procesar cada evento de forma correcta e idempotente, puedes montarlo tú mismo. Pero es justo donde más errores se cuelan: basta un detalle pasado por alto, como una comparación sin hash_equals o un 200-OK que llega tarde, para dejar fuera a clientes que sí han pagado o abrir un agujero de seguridad.
Para eso existe MemberJet. El plugin trae la integración del IPN de Digistore24 ya resuelta: copias la URL que te proporciona MemberJet, la pegas en Digistore24, guardas tu passphrase en MemberJet y ya está. La verificación SHA-512 corre en automático, el procesamiento es idempotente, y las compras conceden acceso con la misma automaticidad con la que un reembolso o un contracargo lo retiran, mientras que una cancelación, deliberadamente, no bloquea nada de inmediato. La passphrase, además, MemberJet la guarda cifrada con libsodium, no en texto plano. Para el montaje completo de un área de miembros con MemberJet y Digistore24, desde la vinculación del producto hasta el login por enlace mágico, tenemos la guía Cómo crear un área de miembros en WordPress, y si dudas entre un plugin propio o una alternativa como Hotmart, la comparación está en Hotmart frente a WordPress, con las comisiones de cada plataforma en comisiones de las plataformas de cursos.
El IPN, sin depurar nada
MemberJet conecta WordPress con Digistore24 ya configurado y con verificación SHA-512: copias la URL del IPN, pegas tu passphrase y el acceso se concede solo.
Conclusión
Configurar el IPN de Digistore24 se reduce, en esencia, a esto: registrar una URL correcta en el backend, verificar cada notificación con la firma SHA-512 y tratar bien cada evento, compra, reembolso, contracargo y cancelación, con su propia lógica. Si lo montas tú mismo, usa el simulador de IPN sin atajos y depura de forma sistemática, desde los logs hasta el tiempo de respuesta. Si prefieres ahorrarte esas fuentes de error, MemberJet trae una integración ya resuelta y revisada en seguridad que hace ese trabajo por ti. Si además quieres saber cómo estructurar un curso completo sobre esta base, echa un vistazo a nuestra guía Cómo crear un área de miembros en WordPress.
Preguntas frecuentes sobre configurar el IPN de Digistore24
¿Qué diferencia hay entre el IPN y un webhook normal?
Técnicamente, una notificación IPN no es otra cosa que un webhook: una petición HTTP POST automática que Digistore24 envía a una URL que tú has definido cuando ocurre un evento concreto. «IPN» es simplemente el nombre que usa Digistore24 para este concepto, similar al de otros proveedores de pago. En cuanto al contenido, la notificación IPN transporta información sobre la compra, el reembolso, el contracargo o la cancelación, para que tu web pueda reaccionar de forma automática. Lo importante, en cualquier caso, es que verifiques cada aviso mediante la comprobación de firma antes de confiar en él.
¿Dónde registro la URL del IPN en el backend de Digistore24?
La configuración del IPN está en el backend de Digistore24, dentro de los ajustes de tu cuenta de vendedor o del producto correspondiente, según si quieres una URL de IPN global o específica de un producto. Como el nombre exacto y la ubicación en la interfaz de Digistore24 pueden cambiar con el tiempo, si tienes dudas conviene revisar la documentación actual de Digistore24 o contactar con su soporte. Lo decisivo es que la URL registrada sea exacta, con HTTPS, el dominio correcto y la ruta sin errores de tecleo. Una pequeña diferencia basta para que no llegue ni una sola notificación.
¿Realmente es tan importante la verificación de firma SHA?
Es el paso de seguridad más importante de toda la integración del IPN. Sin verificación de firma, en teoría cualquiera que conozca tu URL de IPN podría enviar a tu servidor un aviso falso de compra y colarse en contenido de pago sin haber pagado. Con una verificación de firma SHA bien implementada, idealmente con una comparación de tiempo constante como hash_equals, solo aceptas notificaciones que estén firmadas de forma demostrable con tu passphrase secreta por parte de Digistore24. No te saltes este paso bajo ningún concepto, ni siquiera «solo para probar» o «de forma temporal».
¿Cómo pruebo mi integración de IPN sin generar una compra real?
Para eso, Digistore24 ofrece en su backend un simulador de IPN con el que puedes enviar notificaciones de prueba de distintos eventos a tu URL registrada, sin que se mueva dinero real. Comprueba tanto que tu servidor responde con un 200-OK como que la acción esperada se ejecuta de verdad en tu WordPress, por ejemplo que se activa un acceso de prueba. Si puedes, prueba no solo la compra sino también un reembolso simulado, para confirmar que la lógica de bloqueo también funciona. Solo cuando ambas direcciones funcionan de forma fiable conviene poner la integración en producción.
¿Por qué no llegan mis notificaciones de IPN aunque la URL parece correcta?
Las causas más habituales son un plugin de caché o el caché del propio servidor interceptando la petición POST, un firewall o un plugin de seguridad que bloquea peticiones POST desconocidas, o un servidor que no responde lo bastante rápido con un 200-OK limpio. Empieza revisando los logs del servidor para ver si la petición llega siquiera. Si llega pero el procesamiento falla, el problema suele estar en la verificación de firma, por ejemplo una passphrase mal copiada. En cualquier caso, excluye siempre tu endpoint de IPN de la caché y, si hace falta, añádelo como excepción en tu plugin de seguridad.