如何將 Mollie 連接到 Shopify Flow

如何將 Mollie 連接到 Shopify Flow

複製頁面

透過經 HMAC 驗證的 Webhook,將 Mollie 與 Shopify Flow 連接起來。本文包含逐步設定指南、觸發條件檢查及疑難排解技巧。

Mollie 是一家歐洲支付服務供應商。其新一代 Webhook 經過簽名驗證;而傳統的支付 Webhook 則未經簽名驗證。Workflow Webhooks 會將該呼叫轉為 Shopify Flow 觸發器,讓您的商店能據此做出反應:為顧客標記、新增訂單備註、發送內部電子郵件、更新元資料欄位 - - 凡 Shopify Flow 能做到的,皆可實現。

本指南闡述了整個流程 - - Mollie 發送請求、Workflow Webhooks 接收並驗證、Shopify Flow 執行操作 - - 且每項請求都會驗證 Mollie 的 HMAC 簽名,因此唯有 Mollie 才能啟動您的工作流程。

您可以打造什麼

  • 標記一位透過 Mollie 付款連結付款的 Shopify 客戶。
  • 當 Mollie 的退款完成時,請在訂單備註中註明。
  • 當高價值訂單的付款失敗時,請透過電子郵件通知您的財務團隊。

常見的觸發事件包括:payment-link.paid、payment.failed,以及建立退款。

開始之前

  • Workflow Webhooks 已安裝在您的 Shopify 商店中。
  • Shopify Flow 已安裝,此應用程式可從 Shopify App Store 免費下載。
  • 一個在 Mollie 上具有建立 Webhook 權限的帳戶。

步驟 1 - 在 Workflow Webhooks 建立 Webhook

  1. 開啟 Workflow Webhooks → Webhooks → 建立 Webhook,並為其取一個在 Shopify Flow 中您能認出的名稱,例如 Mollie events。
  2. 在「驗證」下,選擇 HMAC。
  3. 在「簽名提供者」下,選擇 Mollie。應用程式會自動為您填入標頭、演算法、已簽名有效載荷及重播視窗 - - 無需進行其他設定。
  4. 目前請將「密鑰」欄位留空,然後按下「儲存」。複製頁面顯示的 Webhook URL。

有關其他驗證模式,請參閱 驗證;至於如何選擇哪些欄位會傳送至 Shopify Flow,請參閱 有效載荷映射與 Shopify Flow 變數。

步驟 2 - 在 Mollie 中新增終端點

在 Mollie 儀表板中,使用您複製的 URL 建立一個新一代 Webhook 訂閱,並複製其簽署密鑰。

如何找出你的 Mollie 簽名密碼

新一代 Webhook 的簽名密鑰。傳統的 Mollie Webhook 完全沒有經過簽名。

Mollie 官方關於 Webhook 簽名的文件 提供了您帳戶的確切文字說明與螢幕截圖。

請將該密鑰貼到 Workflow Webhooks 中的 webhook**「密鑰」**欄位,並儲存。從此之後,每筆 Mollie 交易在送達 Shopify Flow 之前都會經過驗證。

此處檢查的內容

什麼 價值
簽名標題 X-Mollie-Signature
簽名的位置 前綴 sha256= 之後的標頭值
簽署的內容為何 {body}
簽名 HMAC-SHA256,十六進位編碼
時間戳記 此寄件人未使用此功能
重播保護 無 - 此寄件者不會對時間戳記進行簽名,因此每個有效的簽名均保持有效
這個秘密 作為純文字使用。請完全按照發件人顯示的內容貼上

在已簽署的載荷中,{body} 即是原始請求正文,字節對字節。

若請求未能通過上述任何一項檢查,將被以「401」為由拒絕,並記錄於 歷史與故障排除,且絕不會啟動工作流程。

步驟 3 - 建立「Shopify Flow」工作流程

  1. 在 Shopify Flow 中,建立一個工作流程,並選擇「Workflow Webhooks」觸發器。
  2. 按下「記錄事件」,然後從 Mollie 發送一個測試事件(或於 Workflow Webhooks 中使用**「發送測試**」功能),以便 Shopify Flow 學習您的資料模式。
  3. 您擁有的每個 Webhook 都會觸發相同的「Shopify Flow」觸發器,因此請針對 Webhook ID 新增第一個條件,以確保此工作流程僅限於 Mollie。該 ID 會顯示在 Webhook 頁面中。
  4. 新增您的操作 - - 標記客戶、新增備註、發送內部電子郵件、更新元資料欄位。
Shopify Flow
在 Shopify Flow 中,選擇「選取觸發器」,開啟「Workflow Webhooks」,然後選擇「Webhook 觸發器」。
Shopify Flow 條件:Webhook ID 等於某個 Webhook 的 ID
每個工作流程的第一步:針對 webhook ID 設定一個條件,以便工作流程僅針對此 webhook 執行。
完成的工作流程:Webhook 觸發器、基於 Webhook ID 的條件,接著在「True」分支上發送內部電子郵件
完成的工作流程:觸發器、基於 webhook ID 的條件,接著在「True」分支上執行您的動作。

步驟 4 - 進行端到端測試

在 Mollie 中觸發一個真實事件。在**「Workflow Webhooks」→「History」**中,您應會看到狀態為「Success」的呼叫記錄。若簽名不正確,您將看到狀態為「Failed」的記錄並附有原因說明;而 驗證已簽名的 Webhook 則說明了簽名測試工具,該工具會精確顯示哪個步驟失敗。

「歷史」中開啟了一個呼叫,其中包含其請求標頭、有效載荷、狀態、持續時間及識別碼
「History」中的已交付事件:狀態為「成功」表示 Shopify Flow 已接受該事件。
簽名不符

依此順序:密鑰(最常見的原因 - - 多餘的空格,或來自錯誤環境的金鑰)、發送者是否使用了不同端點的密鑰,以及在 Mollie 與應用程式之間是否有任何環節重寫了請求內容。簽名涵蓋原始位元組,因此會重新格式化 JSON 的代理伺服器會破壞簽名。 Webhook 頁面上的簽名測試工具會顯示實際經過簽名的精確文字內容。

每次發送請求時都會收到 401 錯誤

請確認 webhook 的驗證方式已設定為 HMAC 且已選取 Mollie 供應商,密鑰欄位已填寫,並且 Mollie 傳送至該 URL 的內容完全與應用程式顯示的內容一致,包括末尾的代碼在內。

「歷史」中未顯示任何內容

該請求從未送達。請在 Mollie 中重新檢查 URL,並查看 Mollie 自身的傳送日誌,以確認其收到的回應。若出現 404,表示 webhook 錯誤或已被刪除;若出現 429,則表示您已超過方案的呼叫次數限制 - - 請參閱 方案與使用方式。

工作流程針對錯誤的事件執行

您商店中的每個 Webhook 都會觸發相同的「Shopify Flow」觸發器。請在工作流程的第一步中,針對 Webhook ID 新增一個條件,或縮小您從 Mollie 傳送的事件範圍。

相關