Czym są webhooki?
Webhooki to informacje wysyłane w przypadku wystąpienia konkretnych zdarzeń na Twojej platformie lub stronie. Muszą mieć dedykowane miejsce, w którym są odbierane.To miejsce jest dowolne - możesz napisać swój kod, który zinterpretuje webhook i wykona kolejną akcję. Dużo łatwiejszą opcją jest jednak skorzystanie z narzędzia zewnętrznego, które pozwoli w relatywnie łatwy sposób tworzyć łańcuchy zdarzeń, usprawniając automatyzację platformy.
Takie narzędzia to m.in.:
Webhooki w Publigo
Platforma Publigo oferuje możliwość zdefiniowania webhooka. Można skorzystać z 9 typów zdarzeń:- Zamówienie zostało opłacone
- Quiz został ukończony
- Certyfikat został wystawiony
- Student został zapisany na kurs
- Kurs został ukończony
- Wysłano powiadomienie, że dostęp do kursu wygasł
- Wysłano powiadomienie, że dostęp do kursu wygasa
- Wysłano powiadomienie, że płatność kartą zostanie pobrana
- Wysłano powiadomienie, że płatność kartą jest nieudana
Jak dodać webhooka w Publigo?
- Przejdź do Narzędzia ➔ Webhooki.
- Następnie kliknij przycisk Dodaj nowy
- Wybierz typ zdarzenia, który chcesz skonfigurować i wpisz adres URL. Poniżesz znajdziesz informację, gdzie go uzyskać.
- Zaznacz status webhooka jako aktywny.
Jak uzyskać adres URL potrzebny do konfiguracji webhooków?
Adres URL generujesz za pomocą wybranego przez siebie narzędzia. Przykładowo, jeśli korzystasz z webhook.site URL znajdziesz w polu Your unique URL:Jak wejść w dokumentację webhooków?
Aby wejść w dokumentację webhooka należy kliknąć 3 kropki przy webhooku i wybrać opcję: Dokumentacja.Jak zweryfikować podpis webhooka po stronie odbiorcy?
Podpis jest przesyłany w nagłówku x-wpidea-signature.
Odczytaj treść żądania (body):
Aby zweryfikować podpis, należy pobrać treść odebranego żądania. W PHP można to zrobić za pomocą:
$request_body = file_get_contents('php://input');Pobierz podpis z nagłówków:
$headers = getallheaders();
$signature_from_request = isset($headers['x-wpidea-signature']) ? $headers['x-wpidea-signature'] : '';Wygeneruj podpis:
Używając otrzymanej treści żądania ($request_body) oraz klucza licencyjnego, wygeneruj podpis przy użyciu algorytmu HMAC-SHA256. Wynik zakoduj w Base64. Przykład w PHP:
$api_key = 'klucz_licencyjny';
$computed_signature = base64_encode(hash_hmac('sha256', $request_body, $api_key, true));Porównaj podpisy:
Do porównania podpisu wygenerowanego lokalnie z podpisem otrzymanym w nagłówku w PHP można użyć funkcji hash_equals(), która zabezpiecza przed atakami timingowymi:
if (hash_equals($computedSignature, $receivedSignature)) {
// Podpisy się zgadzają – żądanie jest autentyczne
} else {
// Podpisy nie pasują – żądanie należy odrzucić
}
Podsumowanie:
Odbiorca webhooka pobiera treść żądania oraz wartość nagłówka x-wpidea-signature.
Następnie, używając swojego klucza API i algorytmu HMAC-SHA256, generuje własny podpis (zakodowany w Base64).
Na końcu porównuje wygenerowany podpis z tym przesłanym. Jeśli się zgadzają, żądanie jest autentyczne.
Przeczytaj jeszcze:
- Jak śledzić kampanie w programie partnerskim?
- Jak ustawić przekierowanie po zakupie?
- Jak skonfigurować analitykę i skrypty?
#webhook #webhooki #zapier #make.com #zdarzenia