Slik kobler du Svix til Shopify Flow

Slik kobler du Svix til Shopify Flow

Kopier side

Koble Svix til Shopify Flow: bekreft HMAC-signaturer og utløs arbeidsflyter ved webhook-hendelser som registreringer eller avvisninger.

Svix er webhook-infrastrukturen som ligger bak Clerk, Resend, Superwall og mange andre produkter. Hvis avsenderen din leverer via Svix, bekrefter denne forhåndsinnstillingen dette. Workflow Webhooks omdanner dette anropet til en Shopify Flow-utløser, slik at butikken din kan reagere på det: merke en kunde, legge til en ordremerknad, sende en intern e-post, oppdatere et metafelt - alt Shopify Flow kan gjøre.

Denne veiledningen beskriver hele prosessen - Svix sender, Workflow Webhooks mottar og verifiserer, Shopify Flow utfører - og Svix’ HMAC-signatur kontrolleres ved hver forespørsel, slik at kun Svix kan sette i gang arbeidsflyten din.

Hva du kan bygge

  • Merk en Shopify-kunde når Clerk melder at vedkommende har registrert seg eller bekreftet e-postadressen sin i appen din.
  • Reager på en hendelse knyttet til ny forsendelse eller retur, og merk kunden hvis adresse gir feil.
  • Motta data fra ethvert Svix-basert produkt uten å måtte konfigurere en tilpasset signatur.

Typiske hendelser som kan sendes: alle hendelser som den sendende tjenesten definerer.

Den samme forhåndsinnstillingen verifiserer også webhooks fra Clerk, Resend og Superwall.

Før du begynner

  • Workflow Webhooks-funksjonen er installert i din Shopify-butikk.
  • Shopify Flow er installert - den er gratis å laste ned fra Shopify App Store.
  • En konto på Svix med tillatelse til å opprette webhooks.

Trinn 1 - Opprett webhooken i Workflow Webhooks

  1. Åpne Workflow Webhooks → Webhooks → Opprett webhook og gi den et navn du vil kjenne igjen i Shopify Flow, for eksempel Svix events.
  2. Under Autentisering velger du HMAC.
  3. Under Signaturleverandør velger du Svix. Appen fyller ut overskriften, algoritmen, den signerte nyttelasten og replay-vinduet for deg - det er ikke noe annet du trenger å konfigurere.
  4. La «secret»-feltet stå tomt foreløpig, og klikk på Lagre. Kopier webhook-URL-en som vises på siden.

Se Autentisering for de andre autentiseringsmodusene, og Kartlegging av nyttelast og Shopify Flow-variabler for å velge hvilke felt som skal sendes til Shopify Flow.

Trinn 2 - Legg til endepunktet i Svix

Legg til URL-adressen som sluttpunkt i webhook-innstillingene til den sendende tjenesten, og vis deretter signeringsnøkkelen (den begynner med whsec_) og kopier den.

Slik finner du din Svix-signeringsnøkkel

Signeringsnøkkelen for endepunktet som begynner med «whsec_», hentet fra tjenestens webhook-innstillinger.

Svix’ egen dokumentasjon om webhook-signaturer inneholder den nøyaktige ordlyden og skjermbilder for din konto.

Lim inn denne nøkkelen i feltet Secret for webhooken i Workflow Webhooks, og lagre. Fra det øyeblikket blir hver Svix-levering verifisert før den når Shopify Flow.

Hva dette kontrollerer

Hva Verdi
Signaturhode svix-signature
Hvor signaturen skal plasseres Verdien i overskriften, etter prefikset v1,
Hva er det som er undertegnet? {header:svix-id}.{timestamp}.{body}
Signatur HMAC-SHA256, base64-kodet
Tidsstempel svix-timestamp-overskriften, angitt i Unix-sekunder
Beskyttelse mot avspilling Forespørsler der den signerte tidsstemplingen ligger mer enn 5 minutter fra nåværende tidspunkt, avvises
Hemmeligheten Base64-dekodet før bruk. Den innledende delen whsec_ fjernes før dekodingen. Lim den inn nøyaktig slik avsenderen viser den

I den signerte nyttelasten er {body} selve forespørselsinnholdet, byte for byte, mens {timestamp} er tidsstemplet ovenfor, og {header:svix-id} er forespørselshodet svix-id.

En forespørsel som ikke oppfyller et av disse kravene, avvises med feilkoden 401, registreres i Historikk og feilsøking og setter aldri i gang en arbeidsflyt.

Trinn 3 - Opprett arbeidsflyten i Shopify Flow

  1. I Shopify Flow oppretter du en arbeidsflyt og velger utløseren Workflow Webhooks.
  2. Trykk på Registrer hendelser, og send deretter en testhendelse fra Svix (eller bruk Send test i Workflow Webhooks), slik at Shopify Flow lærer seg hvordan dataene dine ser ut.
  3. Hver webhook du eier utløser den samme Shopify Flow-utløseren, så legg til et første vilkår basert på webhook-ID-en for å sikre at denne arbeidsflyten kun gjelder Svix. ID-en vises på webhook-siden.
  4. Legg til handlinger - merk en kunde, legg til en merknad, send en intern e-post, oppdater et metafelt.
Shopify Flow
I Shopify Flow velger du «Velg en utløser», åpner Workflow Webhooks og velger «Webhook-utløser».
En Shopify Flow-betingelse: Webhook-ID-en er lik ID-en til én webhook
Det første trinnet i hver arbeidsflyt: et vilkår knyttet til webhook-ID-en, slik at arbeidsflyten kun kjører for denne webhooken.
Den ferdige arbeidsflyten: Webhook-utløser, et vilkår basert på webhook-ID-en, deretter «Send intern e-post» i «True»-grenen
Den ferdige arbeidsflyten: utløser, betingelse basert på webhook-ID-en, deretter handlingen din i «True»-grenen.

Trinn 4 - Test det fra start til slutt

Utløs en reell hendelse i Svix. Under Workflow Webhooks → History bør du se utløsningen med statusen Success. Hvis signaturen var feil, får du i stedet en feilmelding med årsaken, og Verifisering av signerte webhooks forklarer signaturtesteren som viser deg nøyaktig hvilket trinn som mislyktes.

En påkalling åpnet i «History» med forespørselshoder, nyttelast, status, varighet og identifikatorer
En gjennomført hendelse i «Historie»: Statusen «Suksess» betyr at Shopify Flow har godkjent den.
Signaturen stemmer ikke overens

I denne rekkefølgen: hemmeligheten (den vanligste årsaken - et ekstra mellomrom eller en nøkkel fra feil miljø), om avsenderen bruker hemmeligheten til et annet endepunkt, og om noe mellom Svix og appen omskriver brødteksten. Signaturene dekker de rå byteene, så en proxy som omformaterer JSON ødelegger dem. Signaturtesteren på webhook-siden viser den eksakte teksten som ble signert.

Jeg får feilmelding 401 ved hver forespørsel

Kontroller at autentiseringen for webhooken er satt til HMAC med Svix valgt som leverandør, at den hemmelige nøkkelen er fylt ut, og at Svix sender data til URL-adressen nøyaktig slik den vises i appen, inkludert koden på slutten.

Det vises ingenting i historikken

Forespørselen kom aldri frem. Sjekk URL-adressen på nytt i Svix, og se i Svix’ egen leveringslogg for å finne ut hvilket svar den mottok. En 404-kode betyr at webhooken er feil eller slettet, mens en 429-kode betyr at du har overskredet antall utløsninger i abonnementet ditt - se Planer og bruk.

Arbeidsflyten kjører for feil hendelser

Hver webhook i nettbutikken din utløser den samme Shopify Flow-utløseren. Legg til et vilkår basert på webhook-ID-en som det første trinnet i arbeidsflyten, eller begrens hvilke hendelser du sender fra Svix.

Forespørsler mislykkes med feilmeldingen «tidsstempel utenfor toleranseområdet»

Svix signerer en tidsstempel, og appen avviser alt som er eldre enn 5 minutter. Dette skyldes vanligvis et klokkeproblem hos avsenderen, eller en levering som Svix har forsøkt på nytt mye senere med den opprinnelige tidsstempelen. Nye forsøk på samme opprinnelige forespørsel godtas ikke; be Svix om å sende en ny hendelse.

Relatert