CORS, appens proxy-URL og browseranmodninger
En webhook udløses normalt fra server til server. Hvis du vil udløse en fra en browser - din webshop, en landingsside eller en kundeportal - er der to indstillinger, der er vigtige: »Aktiver CORS« og »Brug app-proxy-URL«. Begge findes under webhookens »Avancerede indstillinger«.
Aktivér CORS
Browsere afviser en anmodning på tværs af domæner, medmindre den modtagende server giver tilladelse til det. Aktiver »Enable CORS«, så svarer webhooken på browserens preflight-anmodning og accepterer opkaldet.
Preflight-funktionen tillader også, at tokenet sendes via en hvilken som helst header, herunder et brugerdefineret headernavn, som du selv har angivet, så browseren ikke støder på problemer.
Brug appens proxy-URL
Hver webhook har to adresser, som begge vises med en kopieringsknap under URL-indstillingerne:
| URL | Det ser ud til, at | Noter |
|---|---|---|
| Direkte app-URL | vores app-domæne, der slutter med webhookens kode | Fungerer altid, også på udviklingsmiljøer og adgangskodebeskyttede butikker |
| App-proxy-URL | en sti på butikkens eget domæne | Samme oprindelse som din webshop, så browseren behandler den som en førstepartsanmodning |
Aktivér »Brug app-proxy-URL« for at offentliggøre proxyadressen. Det integreres mere problemfrit med webshoppen, og da det er samme oprindelse, behøver du ofte slet ikke CORS.
To ting, du bør vide, før du tænder for den:
- Butikken skal være aktiv og må ikke være beskyttet med adgangskode. Shopify videresender ikke app-proxyforespørgsler til en låst webshop, så på en udviklingswebshop vil proxy-URL’en ikke svare. Sørg for, at den er slået fra der.
- IP-tilladelseslisteren gælder ikke for proxy-URL’en: disse anmodninger kommer til os fra Shopify’s servere, så adressen siger intet om den oprindelige afsender.
Godkendelsen fungerer på samme måde på begge adresser. Det samme gælder Beskyttelse mod dobbeltlevering, historikken og abonnementsgrænsen.
Tillad en brugerdefineret anmodningstekst
Også under »Avancerede indstillinger«: Indstillingen »Tillad brugerdefineret anmodningsindhold« deaktiverer den strenge validering af indholdet, så webhooken accepterer enhver JSON-struktur i stedet for kun de felter, du har tilknyttet. Brug denne indstilling, når afsenderens payload er dynamisk, eller når du ikke har kontrol over den. De tilknyttede felter sendes stadig til Shopify Flow på samme måde - se Kortlægning af payload og strømningsvariabler.
Relateret
- Godkendelse - hvad browseren skal sende.
- Kortlægning af payload og strømningsvariabler - hvilke felter der sendes til Shopify Flow.
- Planer og anvendelse - Hvert browserbesøg tæller med i grænsen.

