Cómo Crear un Webhook y Procesar Peticiones Automáticas en PHP [Ejemplo Completo]

Comparte

🧠 ¿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

  1. Sube el archivo webhook.php a tu servidor (por ejemplo: https://tusitio.com/webhook.php).
  2. 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
  1. Revisa el archivo log_webhook.txt en 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.





codigo fuente gratis