ConnectWiz + API & Webhooks

已上線的整合

我們賣的 API,就是我們自己在用的 API

整個平台由同一份 OpenAPI 合約定義,我們自己的後台和行動 App 都是從它產生的——沒有影子端點,文件也不會和實作分岔。在這之上:有範圍限制的 Commerce API 金鑰、加了防護的 Webhook 觸發器,以及會去呼叫您系統的 Flows。

一份 OpenAPI 合約 有範圍限制的 API 金鑰 經 HMAC 驗證的 Webhook
API & Webhooks × ConnectWiz
內容是資料,永遠不是命令
限定範圍的金鑰:商品目錄讀取 · 訂單寫入
Webhook → HMAC 驗證 → flow 啟動
Flow 的 REST 步驟呼叫您的 API
1
具權威性的 OpenAPI 合約——我們自己的後台和行動 App 也是從同一個檔案產生的
3
Commerce 的權限範圍——商品目錄讀取、訂單讀取、訂單寫入——逐把金鑰核發
100
每次讀取的最大筆數,由伺服器端夾住——limit 參數只會被驗證,永遠不被信任
50
透過 API 的每張訂單最多品項數——這是明說的上限,不是讓您自己撞出來的

開發者

它到底能做什麼

唯一具權威性的合約

單一份 OpenAPI 3 文件定義了整個平台;我們自己的 TypeScript 用戶端就是從它產生的——文件不可能和現實分岔,因為現實是照文件蓋的。

Commerce API 金鑰

由租戶自行核發、權限範圍明確的金鑰——商品目錄讀取、訂單讀取、訂單寫入——讓您自己的商店前台或 App 跑在同一套訂單引擎上,價格一律在伺服器端解析。

入站 Webhook,已加固

每一個 flow 的 Webhook 觸發器都有自己的網址和密鑰,對原始內容做 HMAC 驗證,並具備重放保護。內容可以指名某個人;但永遠無法操控 flow 的內部運作。

出站走 Flows

REST 步驟會在您於畫布上畫定的那個時間點呼叫您的系統——訂單成立、取得同意、預約完成。

技術細節

API 的設計立場,寫清楚

價格永遠不從用戶端來

一筆訂單請求只說買什麼、買幾個——名稱和價格是當下在伺服器端從商品目錄讀出來,再以快照寫到品項上。被竄改的請求變不出折扣。

先問能力,再發請求

每一個整合介面都會公布一份能力合約——它能不能用電話比對?能不能列出訪客訂單?能不能建立訂單?——明說「不行」還硬呼叫,會立刻拋出錯誤,而不是在很深的地方才失敗。

有意義的錯誤

傳輸層會分辨「未授權」和「服務掛了」——所以「這家店連不上」永遠不會被畫成「這位客戶從來沒買過東西」。有名字的錯誤,就是 API 和猜謎遊戲的差別。

防重放的 Webhook

每一筆入站事件在處理之前,都會先到冪等帳本裡認領一把唯一的鍵——重試或重放送來的請求會死在資料庫層,而不是死在您的自動化裡。

金鑰做雜湊,密鑰有範圍

API 金鑰以雜湊形式存放,進門時只解析得出雜湊值和權限範圍——外洩的一列資料指不出任何工作區,也解不開權限範圍以外的東西。

草稿和確認都是明寫的

建立訂單時要帶一個明確的 confirm 參數——公開 API 預設為已確認,後台流程則可以先留草稿——所以「這張是不是真的?」是一個欄位,不是一個默契。

設定方式

串接方式

01

核發金鑰

在後台建立一把有範圍限制的 Commerce API 金鑰;要撤銷也一樣容易。

02

接上 Webhook

建立一個帶 Webhook 觸發器的 flow,再用它的密鑰簽署請求。

03

再呼叫出去

在您的系統需要知道的地方,加上 REST 步驟。

搭配起來更好用

能和什麼搭配

Flows

Webhook 觸發器可以啟動 flows;REST 步驟則在您畫定的時間點回呼您的系統——入站和出站自動化共用同一張畫布。

Commerce

API 背後的 ConnectWiz 商品目錄與訂單引擎 ——和聊天商店與 AI 用的是同一套:一份訂單事實,四道門。

您自己的商店前台

現在已經有團隊在 Commerce API 上跑 headless 商店——在原生連接器做好之前,誠實推薦這條路的正是 Shopify 頁面 ——上面寫得清清楚楚。

安全與保證

無聊但管用的保證

對原始內容做 HMAC

Webhook 驗證會用每個觸發器專屬的密鑰簽署原始請求內容,並以定時方式比對——證明成立之後才開始解析。

內容是資料,永遠不是命令

一份 Webhook 內容可以指涉某個人;但它永遠無法操控 flow 的內部運作、改寫提示詞或呼叫工具。資料和指令之間的界線寫在架構裡,不是靠行為自律。

每一道門都有流量限制

公開端點都走標準節流,讀取筆數也在伺服器端夾住——行為不良的用戶端只會拖垮自己,拖不垮平台。

不加修飾的細則

邊界,寫清楚

還沒有全量事件流

那種「訂閱全部」的通用 Webhook 事件流還沒做——目前的出站事件都走 flow 步驟。寫在這裡,這樣就不必靠業務電話去暗示別的。

讀取有上限,這是設計

讀取最多回傳 100 筆並提供游標——這個 API 是為營運整合而做,不是為大量匯出。大量的需求請直接談,不是拿來鑽的漏洞。

API 與 Webhook FAQ

直接的回答

更多內容見完整的 FAQ, 也可以直接聯絡我們。

整個平台由同一份 OpenAPI 3 合約定義——我們的網頁後台和行動 App 也是從這個檔案產生型別的。您串接的那一份,就是我們自己在跑的那一份。

每個觸發器各自的密鑰、對原始內容做 HMAC 驗證,再加上冪等帳本提供的重放保護。而且按規則,內容就是資料:它可以指涉某個人,永遠不能命令自動化。

可以,透過 flow 的 REST 步驟,在您於畫布上選定的時間點送出。通用的出站 Webhook 事件流還在藍圖上,上線之前我們刻意不做承諾。

可以——商品目錄讀取和訂單寫入是受支援的路徑,價格在伺服器端解析,金鑰有範圍限制且可以按介面逐一撤銷。50 個品項和 100 筆的上限都寫明了,讓您照著設計,而不是自己撞上去。

在我們這一側,送達是冪等的——帳本會認出重放並丟掉,所以您的系統可以放心重試。從 flow 出去的 REST 步驟有自己的重試策略,失敗會直接顯示在該次 flow 執行上。

誠實的串接,勝過響亮的串接。

這裡的每一個整合,都照它實際的行為來描述——資料方向、歸屬權和限制,一併寫清楚。