POST https://api.kukopay.com/v1/orders/{trade_no}/expire
收銀台鏈接在訂單創建後 24 小時內有效(見訂單的 expires_at)。庫存售罄、買家在你這邊取消了購物車,或同一筆購買換了新訂單時,調用此接口讓舊訂單立即失效,而不是等它自然過期。
路徑參數同時接受平台的 trade_no 和商戶自己的 out_trade_no。
curl -X POST "https://api.kukopay.com/v1/orders/ORD_20260921_0001/expire" \
-H "X-Api-Key: $KUKOPAY_API_KEY" \
-H "Idempotency-Key: expire-ORD_20260921_0001"成功時返回狀態為 expired 的訂單對象,並照常發出 payment.expired 事件與 Webhook。
關閉前會先確認支付狀態
平台不會憑訂單記錄直接關單,而是先向支付通道確認這筆訂單的支付狀態:
| 情況 | 結果 |
|---|---|
| 買家尚未付款 | 訂單關閉,返回 200 |
| 買家其實已經付款 | 訂單照常入賬,返回 409 conflict;你會收到 payment.succeeded |
| 買家正在完成錢包跳轉或 3DS 驗證,通道暫時無法取消 | 訂單保持 pending,返回 409 conflict,稍後重試 |
| 支付通道暫時不可達 | 訂單保持 pending,返回 502 processor_error,帶上相同的冪等鍵重試 |
訂單已經是 expired | 原樣返回該訂單,200 |
| 訂單已支付、已退款或已失敗 | 409 conflict |
收到 409 時請重新查詢訂單,以訂單的最新狀態為準——尤其是買家恰好在你關單的同時完成了付款的情況。
控制台的訂單詳情頁也提供同樣的「關閉訂單」操作(需要所有者或管理員角色)。