CORS、應用程式代理伺服器網址與瀏覽器呼叫
Webhook 通常是在伺服器與伺服器之間進行呼叫。若您想從瀏覽器(例如您的線上商店、著陸頁或客戶入口網站)呼叫 Webhook,有兩項設定至關重要:啟用 CORS 以及使用應用程式代理 URL。這兩項設定皆位於 Webhook 的「進階設定」中。
啟用 CORS
除非接收伺服器表示允許,否則瀏覽器會拒絕跨來源請求。啟用「啟用 CORS」後,Webhook 便會回應瀏覽器的預檢請求並接受該呼叫。
預檢查功能還允許使用任何攜帶您的憑證的標頭,包括您自行設定的自訂標頭名稱,因此瀏覽器不會因此出錯。
使用應用程式代理伺服器網址
每個 Webhook 都有兩個網址,這兩者在「**URL 設定」**下方均顯示有「複製」按鈕:
| 網址 | 看來 | 註釋 |
|---|---|---|
| 應用程式直接連結 | 我們的應用程式網域,末尾為 webhook 的代碼 | 始終有效,包括開發環境及設有密碼保護的商店 |
| 應用程式代理伺服器網址 | 該商店自有網域上的路徑 | 與您的網店源自同一來源,因此瀏覽器會將其視為第一方請求 |
開啟「**使用應用程式代理伺服器 URL」**選項以發佈代理伺服器位址。此方式能與商店前端更無縫地整合,且由於屬於同源,通常完全不需要使用 CORS。
開啟前請先了解以下兩件事:
- 商店必須處於線上狀態,且不得設有密碼保護。Shopify 不會為上鎖的商店前端轉發應用程式代理請求,因此在開發環境的商店中,代理 URL 將無法回應。請確保該處保持未上鎖狀態。
- IP 白名單 不適用於代理伺服器的 URL:這些請求是透過 Shopify 的伺服器傳送給我們的,因此其網址無法透露原始呼叫者的任何資訊。
這兩組網址的驗證機制完全相同。重複送達防護、瀏覽紀錄以及方案限額亦是如此。
允許自訂請求正文
同樣在「進階設定」中:「允許自訂請求正文」會關閉嚴格的正文驗證,因此 Webhook 會接受任何格式的 JSON,而不僅限於您已映射的欄位。當發送方的有效載荷是動態的,或是您無法控制其內容時,請使用此設定。已映射的欄位仍會以相同方式傳送至 Shopify Flow - - 詳見 有效載荷映射與 Shopify Flow 變數。
相關
- 驗證 - 瀏覽器必須傳送的內容。
- 有效載荷映射與 Shopify Flow 變數 - 哪些欄位會傳送到 Shopify Flow。
- 方案與使用方式 - 每次瀏覽器呼叫都會計入限額。

