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