Testare un webhook Shopify in locale
Sviluppare un'app Shopify implica gestirne i webhook (ordini, prodotti) — senza creare ordini reali a ogni test. Genera un evento Shopify firmato (X-Shopify-Hmac-Sha256, base64), modifica il payload e invialo al tuo server locale per validare la tua verifica HMAC.
Verificare la firma lato server
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));Per ricevere un vero webhook Shopify in locale, registra l'URL del tuo tunnel Relay nella tua app Shopify.
Domande frequenti
Come simulare un ordine Shopify in locale?
Scegli l'evento orders/create, incolla la tua chiave segreta dell'app, indica l'URL del tuo handler locale (tramite Relay) e invia. L'header X-Shopify-Hmac-Sha256 viene calcolato in HMAC-SHA256 codificato in base64, esattamente come fa Shopify.
L'HMAC Shopify è in hex o base64?
In base64, a differenza di Stripe o GitHub che usano l'esadecimale. Il generatore produce la codifica corretta automaticamente.
Quali eventi sono disponibili?
orders/create e products/update sono forniti, con l'header X-Shopify-Topic corrispondente. Puoi modificare liberamente il payload JSON.
Shopify è gratis?
Shopify fa parte dei preset premium, disponibili con il piano Pro a 14,90 €/mese.