Suas ideias em realidade digital!
Webhook é uma requisição HTTP enviada automaticamente por outro sistema quando um evento acontece.
Exemplos:
Mas existe um problema grave: qualquer pessoa pode tentar enviar requisição para seu endpoint.
Por isso você precisa validar a assinatura (HMAC).
"Payload ou assinatura ausente"]);
exit;
}
---
A maioria dos gateways usa:
hash_hmac('sha256', payload, secret)
"Assinatura inválida"]);
exit;
}
⚠️ Sempre use hash_equals() para evitar ataques de timing.
Alguns provedores enviam timestamp no header. Você pode bloquear requisições antigas:
300) {
http_response_code(403);
echo json_encode(["error" => "Requisição expirada"]);
exit;
}
---
"JSON inválido"]);
exit;
}
switch ($data["event"] ?? "") {
case "payment.approved":
// atualiza pedido
break;
case "subscription.cancelled":
// cancela plano
break;
default:
// loga evento desconhecido
}
---
Webhooks devem responder rápido (200 OK).
"ok"]);
---
"ok"]);
---