AI 下單介面
顧客在對話中確認訂單後,我們會呼叫你的介面建立待付款訂單,並把付款連結交給顧客。
顧客在對話裡選好商品後,AI 起草一張訂單給顧客確認;顧客確認後,我們請你的系統建立一張待付款訂單,並把你回傳的付款連結交給顧客。我們不保存訂單,也不經手貨款。
在後台「機器人設定」填寫下單介面(不填則 AI 不能下單),可以再填登入頁網址:未登入的顧客想下單時,聊天視窗裡會出現「登入」按鈕。
前提:
- 只有登入顧客能下單,
user_id來自你簽發的user_token(見 識別登入顧客)。 - 商品要透過開放 API 同步過來(見 知識庫和商品);有規格的商品要帶
variants[].sku,我們下單時會把sku原樣傳給你。
顧客怎麼確認:
- 網頁聊天視窗:AI 起草後顯示訂單卡片,顧客點「確認下單」才建立訂單,建立好後卡片上會出現「去付款」按鈕。
- 微信小程式等只能傳文字的管道:AI 把訂單摘要發給顧客,顧客回覆「確認」後才建立訂單,建立好後發付款入口(見下文
mp_path)。
請求
同一個位址,依 mode 區分報價和建立訂單。簽章、驗簽方法與 訂單查詢介面 相同,逾時 10 秒。
POST {你的下单接口}
Content-Type: application/json
X-AICS-Timestamp: 1761120000
X-AICS-Signature: v1=<hex>
{
"mode": "quote",
"request_id": "chk_3f2a9c...",
"user_id": "u_123",
"conversation_id": "b3c1...",
"channel": "widget",
"language": "en",
"country": "US",
"items": [{"product_id": "w1", "sku": "w1-black", "qty": 1}]
}
| 欄位 | 說明 |
|---|---|
mode | quote:只算價(優惠、運費、稅),不建立訂單、不佔庫存;create:建立一張待付款訂單 |
request_id | 同一張訂單確認的報價和建立訂單用同一個值。create 收到重複的 request_id 時必須回傳同一張訂單,我們的重試和顧客的重複點擊都靠它防止重複下單 |
user_id | 登入顧客,只能給這個顧客建立訂單 |
channel | widget / wechat_mp / api |
language、country | 顧客的語言和 IP 所在國家,可能為 null,可用來選結算幣別和計稅 |
items[].product_id / sku | 商品的 external_id 和規格的 sku;沒有規格的商品 sku 為 null |
回應
報價成功:
{
"status": "quoted",
"currency": "USD",
"goods_amount": "399.00",
"discount": "20.00",
"discounts": [{"label": "新客券", "amount": "20.00"}],
"shipping_fee": "0",
"tax": "0",
"total": "379.00"
}
建立訂單成功:
{
"status": "created",
"order_no": "T2026102300001",
"pay_url": "https://shop.example.com/pay?orderno=T2026102300001",
"mp_path": "pages/order/pay?orderno=T2026102300001",
"expires_at": "2026-10-23T12:30:00Z",
"currency": "USD",
"goods_amount": "399.00",
"discount": "20.00",
"shipping_fee": "0",
"tax": "0",
"total": "379.00"
}
無法下單:
{"status": "rejected", "code": "OUT_OF_STOCK", "message": "这款黑色暂时缺货"}
- 金額都用字串。
total和currency必填,其餘可省略;discounts最多顯示 5 條。 pay_url是網頁付款連結,必須是 https;在「接入」頁設定了網域白名單時,還必須落在白名單的網域或其子網域上,否則不會顯示。mp_path是小程式裡的付款頁路徑,微信管道裡會作為小程式卡片發給顧客(封面用第一件商品的圖片);沒有mp_path時發pay_url。兩者至少要有一個。expires_at是付款截止時間,會顯示在卡片上。code可選值:OUT_OF_STOCK、SKU_UNAVAILABLE、REGION_UNAVAILABLE、NOT_LOGGED_IN、LIMIT、OTHER。message會直接顯示給顧客,請用顧客能看懂的用語。- 若不想提供報價,可以對
quote回應{"status": "unsupported"},卡片會依商品庫裡的價格估算,並註明「最終金額以付款頁為準」。 create回應非 200 或格式不正確時,訂單確認會保留,顧客可以再點一次;請確保重複的request_id不會建立第二張訂單。
限制: 訂單確認 30 分鐘內有效,同一會話裡起草新的會讓舊的作廢;一張訂單最多 10 種商品、每種最多 20 件;同一會話 24 小時內最多建立 5 張訂單。
這頁對你有幫助嗎?
最後更新:
