Testar um webhook Shopify localmente
Desenvolver um app Shopify envolve lidar com os webhooks dele (pedidos, produtos) — sem criar pedidos reais a cada teste. Gere um evento Shopify assinado (X-Shopify-Hmac-Sha256, base64), edite o payload e envie para o seu servidor local para validar sua verificação HMAC.
Verificar a assinatura no servidor
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));Para receber um webhook real da Shopify localmente, registre a URL do seu túnel Relay no seu app Shopify.
Perguntas frequentes
Como simular um pedido Shopify localmente?
Escolha o evento orders/create, cole a chave secreta do seu app, informe a URL do seu handler local (via Relay) e envie. O header X-Shopify-Hmac-Sha256 é calculado em HMAC-SHA256 codificado em base64, exatamente como a Shopify faz.
O HMAC da Shopify é em hex ou base64?
Em base64, diferente de Stripe ou GitHub, que usam hexadecimal. O gerador produz a codificação certa automaticamente.
Quais eventos estão disponíveis?
orders/create e products/update são fornecidos, com o header X-Shopify-Topic correspondente. Você pode editar livremente o payload JSON.
A Shopify é grátis?
A Shopify faz parte dos presets premium, disponíveis com o plano Pro por 14,90 €/mês.