Sådan tilsluttes Standard Webhooks til Shopify Flow

Standard Webhooks er en åben specifikation til signering af webhooks, der anvendes af OpenAI, Supabase Auth Hooks og et stadigt stigende antal tjenester. Én forudindstilling dækker dem alle. Workflow Webhooks omdanner det pågældende opkald til en »Shopify Flow«-udløser, så din butik kan reagere på det: mærk en kunde, tilføj en ordrebemærkning, send en intern e-mail, opdater et metafelt - alt, hvad Shopify Flow kan gøre.

Denne vejledning beskriver hele forløbet - Standard Webhooks sender, Workflow Webhooks modtager og verificerer, Shopify Flow udfører handlingen - hvor Standard Webhooks’ HMAC-signatur kontrolleres ved hver eneste anmodning, så kun Standard Webhooks kan igangsætte din arbejdsgang.

Hvad du kan bygge

  • Brug et OpenAI-webhook - et afsluttet batchjob eller et færdigbehandlet svar - og lad Shopify Flow reagere på resultatet i din butik.
  • Reager på en Supabase Auth Hook, så en tilmelding i din egen app knytter sig til den tilsvarende kunde på Shopify.
  • Modtag data fra enhver tjeneste, der følger standardwebhooks.com-specifikationen, uden at skulle konfigurere en brugerdefineret signatur.

Typiske hændelser, der skal sendes: enhver hændelse, som den afsendende tjeneste definerer.

Den samme forudindstilling verificerer også webhooks fra OpenAI og Supabase Auth Hooks.

Før du går i gang

  • Workflow Webhooks installeret på din Shopify-butik.
  • Shopify Flow installeret, som kan hentes gratis fra App Store på Shopify.
  • En konto på Standard Webhooks med tilladelse til at oprette webhooks.

Trin 1 - Opret webhook på Workflow Webhooks

  1. Åbn Workflow Webhooks -> Webhooks -> Opret webhook, og giv den et navn, du kan genkende i Shopify Flow, f.eks. Standard Webhooks events.
  2. Vælg HMAC under »Autentificering«.
  3. Under »Signaturudbyder« skal du vælge »Standard Webhooks«. Appen udfylder automatisk header, algoritme, signeret payload og replay-vindue for dig - der er ikke andet, du skal konfigurere.
  4. Lad feltet »Hemmelighed« være tomt foreløbig, og klik på »Gem«. Kopier den webhook-URL, der vises på siden.

Se Godkendelse for de øvrige godkendelsesmetoder og Kortlægning af payload og strømningsvariabler for at vælge, hvilke felter der skal sendes til Shopify Flow.

Trin 2 - Tilføj endpointet i Standard Webhooks

Indtast URL’en som slutpunkt i afsender-tjenesten, og kopier derefter den signeringsnøgle, der vises (den starter med whsec_).

Sådan finder du din signeringsnøgle til Standard Webhooks

Underskriftsnøglen, der begynder med whsec_. Indsæt den i sin helhed; hvis den vises som v1,whsec_... (Supabase), skal du udelade det indledende »v1,«.

Standard Webhooks’ egen dokumentation om webhook-signaturer indeholder den præcise formulering og skærmbilleder, der gælder for din konto.

Indsæt den hemmelige nøgle i feltet »Secret« for webhooken på Workflow Webhooks, og gem. Fra det øjeblik bliver hver eneste levering via Standard Webhooks verificeret, inden den når frem til Shopify Flow.

Hvad dette kontrollerer

Hvad Værdi
Signaturhoved webhook-signature
Hvor underskriften er placeret Værdien i overskriften, efter præfikset v1,
Hvad der er underskrevet {header:webhook-id}.{timestamp}.{body}
Underskrift HMAC-SHA256, base64-kodet
Tidspunkt webhook-timestamp-overskriften, angivet i Unix-sekunder
Beskyttelse mod gentagelse Anmodninger, hvis signerede tidsstempel ligger mere end 5 minutter fra nu, afvises
Hemmeligheden Afkodes til Base64 før brug. Den indledende whsec_ fjernes før afkodningen. Indsæt den nøjagtigt, som afsenderen viser den

I den signerede payload er {body} den rå anmodningstekst, byte for byte, mens {timestamp} er ovenstående tidsstempel, og {header:webhook-id} er anmodningsheaderen »webhook-id«.

En anmodning, der ikke opfylder et af disse kriterier, afvises med fejlmeddelelsen »401«, registreres i »Historik og fejlfinding« og udløser aldrig en arbejdsgang.

Trin 3 - Opret arbejdsgangen »Shopify Flow«

  1. I »Shopify Flow« skal du oprette en arbejdsgang og vælge udløseren »Workflow Webhooks«.
  2. Tryk på »Optag begivenheder«, og send derefter en testbegivenhed fra »Standard Webhooks« (eller brug »Send test« i »Workflow Webhooks«), så Shopify Flow kan lære dine datas struktur at kende.
  3. Hver eneste webhook, du ejer, udløser den samme Shopify Flow-trigger, så tilføj en første betingelse baseret på webhook-id’et for at sikre, at denne arbejdsgang kun omfatter standard-webhooks. Id’et vises på webhook-siden.
  4. Tilføj dine handlinger - tag en kunde, tilføj en note, send en intern e-mail, opdater et metafelt.
Shopify Flow
I »Shopify Flow« skal du vælge »Select a trigger«, åbne »Workflow Webhooks« og vælge »Webhook Trigger«.
I Shopify Flow: Webhook-id'et er det samme som ID'et for en bestemt webhook
Det første trin i enhver arbejdsgang: en betingelse baseret på webhook-ID’et, så arbejdsgangen kun udføres for netop denne webhook.
Den færdige arbejdsgang: Webhook-udløser, en betingelse baseret på webhook-id’et, og derefter »Send intern e-mail« på »True«-grenen
Den færdige arbejdsgang: udløser, betingelse baseret på webhook-ID’et og derefter din handling på »True«-grenen.

Trin 4 - Test det fra start til slut

Udløs en reel begivenhed i Standard Webhooks. Under »Workflow Webhooks« → »History« bør du kunne se opkaldet med status »Success«. Hvis signaturen var forkert, får du i stedet en fejlmelding med årsagen, og under »Bekræftelse af signerede webhooks« finder du en forklaring på signaturtesteren, der viser dig præcis, hvilket trin der mislykkedes.

En anmodning, der blev åbnet i History med dens anmodningsheadere, payload, status, varighed og identifikatorer
En gennemført begivenhed i History: Status »Success« betyder, at Shopify Flow har godkendt den.
Underskriften stemmer ikke overens▾

I denne rækkefølge: hemmeligheden (den mest almindelige årsag - et ekstra mellemrum eller en nøgle fra det forkerte miljø), om afsenderen bruger en hemmelighed fra et andet endpoint, og om noget mellem Standard Webhooks og appen omskriver brødteksten. Signaturer dækker de rå bytes, så en proxy, der omformaterer JSON, ødelægger dem. Signaturtesteren på webhook-siden viser den nøjagtige tekst, der blev signeret.

Jeg får en 401-fejl ved hver eneste anmodning▾

Kontroller, at webhookens godkendelse er indstillet til HMAC med udbyderen »Standard Webhooks« valgt, at den hemmelige nøgle er udfyldt, og at »Standard Webhooks« sender data til URL’en nøjagtigt som angivet i appen, inklusive koden i slutningen.

Der vises intet under »Historik«▾

Anmodningen er aldrig modtaget. Tjek URL’en igen i Standard Webhooks, og se i Standard Webhooks’ egen leveringslog, hvilket svar der blev modtaget. En 404 betyder, at webhooken er forkert eller slettet, mens en 429 betyder, at du har overskredet din abonnements grænse for antal kald - se Planer og anvendelse.

Arbejdsgangen kører for de forkerte begivenheder▾

Hver eneste webhook i din butik udløser den samme Shopify Flow-trigger. Tilføj en betingelse baseret på webhook-id’et som det første trin i arbejdsgangen, eller indsnævret de begivenheder, du sender fra Standard Webhooks.

Anmodningerne mislykkes med fejlmeddelelsen »tidsstempel uden for tolerancegrænsen«▾

Standard Webhooks underskriver et tidsstempel, og appen afviser alt, der er mere end 5 minutter gammelt. Dette skyldes normalt et urproblem hos afsenderen eller en levering, som Standard Webhooks har forsøgt at sende igen meget senere med det oprindelige tidsstempel. Gentagne forsøg fra den samme oprindelige anmodning kan ikke godkendes; bed Standard Webhooks om at sende en ny begivenhed.

Relateret