Testowanie webhooka Shopify lokalnie
Tworzenie aplikacji Shopify wymaga obsługi jej webhooków (zamówienia, produkty) — bez tworzenia prawdziwych zamówień przy każdym teście. Wygeneruj event Shopify podpisany (X-Shopify-Hmac-Sha256, base64), edytuj payload i wyślij go do swojego lokalnego serwera, aby zwalidować weryfikację HMAC.
Zweryfikuj podpis po stronie serwera
import crypto from 'crypto';
const hmac = req.headers['x-shopify-hmac-sha256'];
const digest = crypto
.createHmac('sha256', process.env.SHOPIFY_SECRET)
.update(rawBody, 'utf8')
.digest('base64');
const ok = crypto.timingSafeEqual(Buffer.from(hmac), Buffer.from(digest));Aby odebrać prawdziwy webhook Shopify lokalnie, zarejestruj URL swojego tunelu Relay w swojej aplikacji Shopify.
Najczęstsze pytania
Jak zasymulować zamówienie Shopify lokalnie?
Wybierz event orders/create, wklej tajny klucz swojej aplikacji, podaj URL swojego lokalnego handlera (przez Relay) i wyślij. Header X-Shopify-Hmac-Sha256 jest obliczany w HMAC-SHA256 zakodowanym w base64, dokładnie jak w Shopify.
Czy HMAC Shopify jest w hex czy base64?
W base64, w przeciwieństwie do Stripe czy GitHub, które używają systemu szesnastkowego. Generator tworzy właściwe kodowanie automatycznie.
Jakie eventy są dostępne?
Dostępne są orders/create i products/update, z odpowiadającym headerem X-Shopify-Topic. Możesz dowolnie edytować payload JSON.
Czy Shopify jest darmowy?
Shopify należy do presetów premium, dostępnych z planem Pro za 14,90 €/miesiąc.