歷史與故障排除

每個傳送到 Webhook 的請求都會被記錄下來 - - 無論是接受還是拒絕。當某件事沒有發生時,歷史紀錄是首先該查閱的地方。

誦讀祈禱文

開啟**「歷史紀錄」**,並點選一項紀錄。您將看到時間戳記、狀態、呼叫者、持續時間、有效載荷、已遮罩的請求標頭、查詢字串;若發生失敗,則會顯示錯誤訊息及每次重試的紀錄。

狀態 意思
待定 已接受並排入佇列,尚未傳送至 Shopify Flow
成功 Shopify Flow 接受了觸發條件
失敗 送達永久失敗 - - 詳細頁面會顯示原因

**「由誰呼叫」**欄位會告訴您呼叫來自何處:User(外部系統)、Flow(Shopify Flow 動作呼叫 webhook)、Test(「測試」按鈕)或 CURL。

已篩選為單一 Webhook 的 Webhook 歷史紀錄,列出狀態為「成功」且來源為「外部系統」的呼叫
Webhook 歷史紀錄,已篩選為單一 Webhook。每項請求皆會列出其狀態及來源。
「History」中開啟了一個呼叫,其中包含其請求標頭、有效載荷、狀態、持續時間及識別碼
一次呼叫的詳細資訊已展開顯示:包含請求標頭(代碼已遮蔽)、有效載荷、耗時,以及右上角的「重播 Webhook」。

被拒絕的情況,以及每種情況的含義

被拒絕的請求永遠不會傳送到 Shopify Flow。回應正文中包含一個機器可讀的 code:

程式碼 HTTP 問題出在哪裡 修正
webhook_not_found 404 短碼未知 請檢查網址;該 webhook 可能已被刪除
webhook_disabled 400 Webhook 已關閉 請在 webhook 頁面中啟用此功能
unauthorized 401 代幣遺失或錯誤 檢查憑證和標頭名稱
missing_signature 401 HMAC 模式,無簽名標頭 傳送您預設值所預期的簽名標頭
invalid_signature 401 簽名不符 確認簽名密鑰,並確認傳輸過程中的內容未遭篡改
auth_not_configured 401 已設定認證模式,但未儲存憑證 在 Webhook 上儲存一個令牌
invalid_json 400 正文不是有效的 JSON 請傳送有效的 JSON,或設定與您的請求內容實際類型相符的 Content-Type(表單資料和 XML 也會被讀取)
invalid_body 400 無法讀取表單或 XML 內容,或是內容為字面值 null 傳送一個 JSON 物件,或傳送一個與其 Content-Type 相符的請求主體
mapping_field_missing 400 載荷中缺少一個已映射的欄位 傳送該欄位,或解除其映射
unexpected_fields 400 該主體包含未映射的欄位 將其映射、移除,或啟用「允許自訂請求正文」
ip_not_allowed 403 呼叫者的位址未列於 webhook 的 IP 允許清單中 請參閱 IP 白名單
invalid_proxy_signature 401 是直接呼叫了應用程式代理伺服器的網址,而非透過您商店的網域進行呼叫 請完全按照應用程式中顯示的內容使用 webhook URL - 詳見 CORS、應用程式代理伺服器網址與瀏覽器呼叫
payload_too_large 413 Shopify Flow 資料量超過 50KB 減少傳送的資料量,或關閉「請求資料」的切換開關
quota_exceeded 400 已達到方案限額 請參閱 方案與使用方式

即時請求檢視器

當您在編輯器中開啟 Webhook 時,檢視器會即時顯示傳入的請求 - - 包括遭拒絕的請求及其原因。這無疑是除錯發送端最快速的方式:發送一個請求,然後觀察其傳送結果。

此處也會顯示已被隱藏的重複項目,並標示為「已隱藏」 - - 請參閱 重複送達防護。

重播

任何過去的呼叫皆可從其詳細資訊頁面重新播放。重新播放會透過相同的 webhook 再次傳送相同的工作負載。

它有兩大優點:

  • **建立一個「Shopify Flow」工作流程。**在 Webhook 觸發器上記錄事件,然後重播一個真實的 請呼叫此函式,以便 Shopify Flow 能識別您的實際欄位名稱。
  • **從損壞的工作流程中恢復。**先修復工作流程,然後重新執行先前已執行的事件 儘管那是錯的。

重播在觀看紀錄中會標示為「重播」,且不計入您的方案流量。

常見情況

**雖然接收到呼叫,但工作流程並未執行。**這幾乎總是與「Webhook ID」條件有關。Webhook 觸發器工作流程會接收您擁有的_每個_ Webhook 傳來的事件,因此需要一個與特定 Webhook ID 相符的條件 - - 請參閱 建立您的第一個 Webhook。

**此工作流程執行了兩次。**這可能是因為有兩個工作流程都使用了「Webhook 觸發器」且未設定明確的條件,或是您的發送端正在重新嘗試。歷史紀錄會告訴您是哪種情況:若出現兩筆記錄,即表示收到了兩次請求。請開啟「重複送達防護」。

**「歷史紀錄」中完全沒有任何紀錄。**該請求從未傳送到我們這裡。請檢查網址和短代碼,並確認發件方那邊沒有發生 TLS 或 DNS 錯誤。

**狀態卡在「待處理」狀態。**系統會採用退避策略重新嘗試傳送;若發生永久性失敗,狀態將變更為「失敗」並顯示原因。若狀態異常長時間維持在「待處理」,請檢查 status.codecreationlabs.cloud。