🧠 ¿Qué es un Webhook?
Un webhook es una forma de que una aplicación envíe datos en tiempo real a otra mediante una solicitud HTTP POST. A diferencia de las APIs tradicionales, los webhooks son reactivos, es decir, solo se ejecutan cuando ocurre un evento específico.
Ejemplo común: cuando recibes una notificación de pago en tiempo real desde PayPal o Stripe a tu servidor.
⚙️ Crear el archivo webhook.php en tu servidor
<?php
// Leer datos entrantes del cuerpo de la solicitud
$input = file_get_contents("php://input");
// Guardar en archivo log para fines de depuración
file_put_contents("log_webhook.txt", $input . PHP_EOL, FILE_APPEND);
// Decodificar si viene en formato JSON
$data = json_decode($input, true);
if ($data) {
// Procesar los datos recibidos
$evento = $data['evento'] ?? 'desconocido';
$mensaje = "Evento recibido: " . $evento;
file_put_contents("procesados.txt", $mensaje . PHP_EOL, FILE_APPEND);
// Respuesta al emisor del webhook
echo json_encode(['status' => 'ok', 'mensaje' => $mensaje]);
} else {
http_response_code(400);
echo json_encode(['status' => 'error', 'mensaje' => 'Entrada inválida']);
}
?>
🌐 Cómo probar tu Webhook
- Sube el archivo
webhook.phpa tu servidor (por ejemplo:https://tusitio.com/webhook.php). - Desde Postman o cURL envía un POST:
curl -X POST -H "Content-Type: application/json" \
-d '{"evento": "nuevo_usuario"}' \
https://tusitio.com/webhook.php
- Revisa el archivo
log_webhook.txten tu servidor para confirmar que recibiste el evento.
🛡️ Seguridad Básica
Para evitar llamadas no autorizadas, puedes usar un token secreto:
$headers = getallheaders();
if ($headers['Authorization'] !== 'Bearer TU_SECRETO') {
http_response_code(403);
exit('No autorizado');
}
Y luego, al hacer el POST:
-H "Authorization: Bearer TU_SECRETO"
✅ Conclusión
Crear un webhook en PHP es sencillo y poderoso. Puedes usarlo para automatizar acciones como pagos, registros, notificaciones y más.