Så här kopplar du ihop Svix med Shopify Flow

Så här kopplar du ihop Svix med Shopify Flow

Kopiera sidan

Anslut Svix till Shopify Flow: verifiera HMAC-signaturer och utlös arbetsflöden vid webhook-händelser som registreringar eller returmeddelanden.

Svix är den webhook-infrastruktur som ligger till grund för Clerk, Resend, Superwall och många andra produkter. Om din avsändare levererar via Svix verifierar den här förinställningen detta. Workflow Webhooks omvandlar det anropet till en Shopify Flow-utlösare, så att din butik kan reagera på det: märka en kund, lägga till en orderanteckning, skicka ett internt e-postmeddelande, uppdatera ett metafält - allt som Shopify Flow kan göra.

Den här guiden beskriver hela processen - Svix skickar, Workflow Webhooks tar emot och verifierar, Shopify Flow utför åtgärderna - där Svix HMAC-signatur kontrolleras vid varje förfrågan, så att endast Svix kan starta ditt arbetsflöde.

Vad du kan bygga

  • Märk en Shopify-kund när Clerk meddelar att kunden har registrerat sig eller verifierat sin e-postadress i din app.
  • Reagera på en händelse avseende omleverans eller retur och markera den kund vars adress inte fungerar.
  • Ta emot data från vilken Svix-baserad produkt som helst utan att behöva konfigurera en anpassad signatur.

Typiska händelser som ska skickas: alla händelser som den sändande tjänsten definierar.

Samma förinställning verifierar även webhooks från Clerk, Resend och Superwall.

Innan du börjar

  • Workflow Webhooks-funktioner som är installerade i din Shopify-butik.
  • Shopify Flow är installerat, vilket är gratis att hämta från Shopify App Store.
  • Ett konto på Svix med behörighet att skapa webhooks.

Steg 1 - Skapa webhooken i Workflow Webhooks

  1. Öppna ”Workflow Webhooks”** -> ”Webhooks” -> ”Skapa webhook”** och ge den ett namn som du känner igen i Shopify Flow, till exempel Svix events.
  2. Under ”Autentisering” väljer du HMAC.
  3. Under ”Signaturleverantör” väljer du Svix. Appen fyller i rubriken, algoritmen, den signerade datan och återuppspelningsfönstret åt dig - det finns inget annat att konfigurera.
  4. Lämna fältet för hemligheten tomt för tillfället och klicka på Spara. Kopiera webhook-URL:en som visas på sidan.

Se Autentisering för övriga autentiseringslägen och Kartläggning av nyttolast och Shopify Flow-variabler för att välja vilka fält som ska skickas till Shopify Flow.

Steg 2 - Lägg till slutpunkten i Svix

Lägg till URL:en som slutpunkt i webhook-inställningarna för den sändande tjänsten och visa och kopiera sedan dess signeringsnyckel (den börjar med whsec_).

Så här hittar du din Svix-signeringsnyckel

Den hemliga nyckeln för signering av slutpunkter som börjar med ”whsec_”, från tjänstens webhook-inställningar.

Svix egen dokumentation om webhook-signaturer innehåller den exakta formuleringen och skärmdumpar för ditt konto.

Klistra in den hemliga koden i fältet ”Secret” för webhooken i Workflow Webhooks och spara. Från och med då verifieras varje Svix-leverans innan den når Shopify Flow.

Vad detta kontrollerar

Vad Värde
Signaturrubrik svix-signature
Var signaturen ska placeras Värdet i rubriken, efter prefixet v1,
Vad som har undertecknats {header:svix-id}.{timestamp}.{body}
Signatur HMAC-SHA256, Base64-kodad
Tidsstämpel svix-timestamp-rubriken, uttryckt i Unix-sekunder
Skydd mot uppspelning Förfrågningar vars signerade tidsstämpel ligger mer än 5 minuter från nuvarande tidpunkt avvisas
Hemligheten Avkodas med Base64 före användning. Det inledande whsec_-prefixet tas bort före avkodningen. Klistra in det exakt så som avsändaren visar det

I den signerade nyttolasten är {body} den obearbetade begäran, byte för byte, {timestamp} är tidsstämpeln ovan och {header:svix-id} är begäranrubriken svix-id.

En begäran som inte uppfyller något av dessa krav avvisas med 401, registreras i Historik och felsökning och sätter aldrig igång ett arbetsflöde.

Steg 3 - Skapa arbetsflödet i Shopify Flow

  1. I Shopify Flow skapar du ett arbetsflöde och väljer utlösaren ”Workflow Webhooks”.
  2. Klicka på ”Spela in händelser” och skicka sedan en testhändelse från Svix (eller använd funktionen ”Skicka test” i ”Workflow Webhooks”) så att Shopify Flow lär sig hur dina data ser ut.
  3. Varje webhook som du äger aktiverar samma utlösare i Shopify Flow, så lägg till ett första villkor baserat på webhook-id:t för att begränsa detta arbetsflöde till endast Svix. Id:t visas på webhook-sidan.
  4. Lägg till dina åtgärder - märk en kund, lägg till en anteckning, skicka ett internt e-postmeddelande, uppdatera ett metafält.
Shopify Flow
I Shopify Flow väljer du ”Välj en utlösare”, öppnar ”Workflow Webhooks” och väljer ”Webhook-utlösare”.
Ett villkor i Shopify Flow: Webhook-ID:t är lika med ID:t för en webhook
Det första steget i varje arbetsflöde: ett villkor baserat på webhook-ID:t, så att arbetsflödet endast körs för just denna webhook.
Det färdiga arbetsflödet: Webhook-utlösare, ett villkor baserat på webhook-ID:t, följt av att ett internt e-postmeddelande skickas i ”True”-grenen
Det färdiga arbetsflödet: utlösare, villkor baserat på webhook-ID:t, följt av din åtgärd i ”True”-grenen.

Steg 4 - Testa systemet från början till slut

Utlös en verklig händelse i Svix. Under ”Workflow Webhooks” → ”History” bör du se anropet med statusen ”Success”. Om signaturen var felaktig visas istället en post om misslyckande med orsaken angiven, och Verifiering av signerade webhooks förklarar signaturkontrollen som visar exakt vilket steg som misslyckades.

En anropning öppnades i ”History” med dess begärandehuvuden, nyttolast, status, varaktighet och identifierare
En genomförd händelse i Historik: statusen ”Framgång” innebär att Shopify Flow har godkänt den.
Signaturen stämmer inte överens

I följande ordning: hemligheten (den vanligaste orsaken - ett extra mellanslag eller en nyckel från fel miljö), om avsändaren använder en annan ändpunkts hemlighet, och om något mellan Svix och appen skriver om huvudtexten. Signaturerna omfattar de råa byte, så en proxy som omformaterar JSON gör dem ogiltiga. Signaturtestaren på webhook-sidan visar exakt den text som signerades.

Jag får felkod 401 vid varje förfrågan

Kontrollera att webhookens autentisering är inställd på HMAC med Svix som leverantör, att den hemliga nyckeln är ifylld och att Svix skickar data till URL:en exakt så som den visas i appen, inklusive koden i slutet.

Det visas inget i historiken

Förfrågan kom aldrig fram. Kontrollera URL:en igen i Svix och titta i Svix egen leveranslogg för att se vilket svar som mottogs. Ett 404-fel innebär att webhooken är felaktig eller har tagits bort, medan ett 429-fel innebär att du har överskridit antalet anrop som ingår i ditt abonnemang - se Planer och användning.

Arbetsflödet körs för fel händelser

Varje webhook i din butik utlöser samma utlösare i Shopify Flow. Lägg till ett villkor baserat på **webhook-ID:**t som det första steget i arbetsflödet, eller begränsa vilka händelser du skickar från Svix.

Förfrågningarna misslyckas med felmeddelandet ”tidsstämpel utanför toleransgränsen”

Svix signerar en tidsstämpel och appen avvisar allt som är äldre än 5 minuter. Detta beror vanligtvis på ett klockproblem hos avsändaren, eller på att Svix har gjort ett nytt försök mycket senare med den ursprungliga tidsstämpeln. Upprepade försök från samma ursprungliga begäran godkänns inte; be Svix att skicka en ny händelse.

Relaterat