Sådan forbinder du Paddle med Shopify Flow
Paddle fungerer som forhandler for digitale produkter og abonnementer. Tjenesten giver dig besked om transaktioner, abonnementer, refusioner og ændringer i kundedata. Workflow Webhooks omdanner denne besked til en »Shopify Flow«-udløser, så din butik kan reagere på den: mærke en kunde, tilføje en ordrekommentar, sende en intern e-mail, opdatere et metafelt - alt, hvad Shopify Flow kan gøre.
Denne vejledning beskriver hele forløbet - Paddle sender, Workflow Webhooks modtager og verificerer, Shopify Flow udfører - hvor Paddles HMAC-signatur kontrolleres ved hver eneste anmodning, så kun Paddle kan igangsætte din arbejdsgang.
Hvad du kan bygge
- Tag en »Shopify«-kunde, der også har et »Paddle«-abonnement, så vedkommende får vist de korrekte priser eller det rigtige indhold.
- Send en e-mail til dit team, når et abonnement opsiges, og kunden har nylige ordrer Shopify.
- Indtast den aktuelle plan i kunderegistreringen som et metafelt.
Typiske hændelser, der skal sendes: transaction.completed, subscription.canceled, adjustment.created (refusion), customer.updated.
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å Paddle med tilladelse til at oprette webhooks.
Trin 1 - Opret webhook på Workflow Webhooks
- Åbn Workflow Webhooks -> Webhooks -> Opret webhook, og giv den et navn, du kan genkende i Shopify Flow, f.eks.
Paddle events. - Vælg HMAC under »Autentificering«.
- Vælg »Paddle« under »Signaturudbyder«. Appen udfylder overskriften, algoritmen, den signerede Payload og replay-vinduet for dig - der er ikke andet, du skal konfigurere.
- Lad feltet »Secret« 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 slutpunktet i Paddle
I Paddle skal du åbne »Developer tools« → »Notifications«, tilføje en destination med den URL, du har kopieret, og vælge begivenhederne. Den hemmelige nøgle vises på destinationen.
Sådan finder du din Paddle-signeringsnøgle
Den hemmelige nøgle for notifikationsmodtageren (Paddle → Udviklerværktøjer → Notifikationer).
Paddles egen dokumentation om webhook-signaturer indeholder den nøjagtige ordlyd 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 Paddle-levering verificeret, før den når frem til Shopify Flow.
Hvad dette kontrollerer
| Hvad | Værdi |
|---|---|
| Signaturhoved | Paddle-Signature |
| Hvor underskriften skal placeres | I værdien »h1« i den pågældende header, som indeholder par af »key=value«, adskilt med semikoloner |
| Hvad der er underskrevet | {timestamp}:{body} |
| Underskrift | HMAC-SHA256, heksadecimalt kodet |
| Tidsstempel | ts-værdien for signaturhovedet, angivet i Unix-sekunder |
| Beskyttelse mod afspilning | Anmodninger, hvis signerede tidsstempel ligger mere end 5 minutter fra nu, afvises |
| Hemmeligheden | Bruges som almindelig tekst. Indsæt den præcis, som afsenderen har angivet den |
I den signerede payload er {body} den rå anmodningstekst, byte for byte, og {timestamp} er ovenstående tidsstempel.
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«
- I »Shopify Flow« skal du oprette en arbejdsgang og vælge udløseren »Workflow Webhooks«.
- Tryk på »Optag begivenheder«, og send derefter en testbegivenhed fra Paddle (eller brug »Send test« i Workflow Webhooks), så Shopify Flow kan lære dine datas mønster at kende.
- 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 Paddle. Id’et vises på webhook-siden.
- Tilføj dine handlinger - tag en kunde, tilføj en note, send en intern e-mail, opdater et metafelt.



Trin 4 - Test det fra start til slut
Udløser en reel hændelse i Paddle. Under »Workflow Webhooks« → »History« bør du kunne se opkaldet med status »Success«. Hvis signaturen var forkert, vises der i stedet en fejlmeddelelse med årsagen, og på Bekræftelse af signerede webhooks finder du en forklaring på signaturtestværktøjet, der viser dig præcis, hvilket trin der mislykkedes.

Underskriften stemmer ikke overens▾
I denne ordre: hemmeligheden (den mest almindelige årsag - et ekstra mellemrum eller en nøgle fra det forkerte miljø), om afsenderen bruger en anden endpunkts hemmelighed, og om noget mellem Paddle og appen omskriver brødteksten. Signaturerne 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 fejl 401 ved hver eneste forespørgsel▾
Kontroller, at webhookens godkendelse er indstillet til HMAC med Paddle valgt som udbyder, at den hemmelige nøgle er udfyldt, og at Paddle sender data til URL'en nøjagtigt som angivet i appen, inklusive koden i slutningen.
Der vises intet under »Historik«▾
Anmodningen blev aldrig modtaget. Kontroller URL’en igen i Paddle, og se i Paddles egen leveringslog, hvilket svar systemet modtog. En fejlmeddelelse af typen 404 betyder, at webhooken er forkert eller er blevet slettet, mens en fejlmeddelelse af typen 429 betyder, at du har overskredet dit abonnements grænse for antallet af opkald - se Planer og anvendelse.
Arbejdsgangen kører for de forkerte hændelser▾
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 begræns de begivenheder, du sender fra Paddle.
Anmodningerne mislykkes med fejlmeddelelsen »tidsstempel uden for tolerancen«▾
Paddle 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 Paddle har forsøgt igen meget senere med det oprindelige tidsstempel. Gentagne forsøg fra den samme oprindelige anmodning kan ikke godkendes; bed Paddle om at sende en ny begivenhed.
Relateret
- Bekræftelse af signerede webhooks - alle udbydere, vi verificerer, og hvordan man beskriver en, vi ikke verificerer.
- Kortlægning af payload og strømningsvariabler - at udtrække de rigtige felter fra payloadet og overføre dem til Shopify Flow.
- Beskyttelse mod dobbeltlevering - hvad der sker, når Paddle forsøger at levere en forsendelse igen.
- Historik og fejlfinding - loggen over alle anmodninger, med mulighed for afspilning.

