All checks were successful
star-cloud-deploy-demo / deploy-demo (push) Successful in 48s
2.7 KiB
2.7 KiB
B055 API (遠端出貨) 技術規範與執行指南
本文件定義 B055 API 的技術實作規範,用於處理從雲端發起的機台遠端出貨指令及其結果回饋。
1. 業務流程與通訊機制
1.1 指令下發流程
- 指令生成:Cloud 後端(管理者或系統觸發)在
remote_dispense_commands表中建立一筆狀態為0(待執行) 的指令。 - 心跳通知:在該機台的 B010 回應中,將
status設為85(reload B055)。 - 機台撈取 (POST):機台呼叫 B055 POST API (
/api/app/machine/dispense/{workid}) 取得詳細出貨參數(貨道 ID、指令 ID)。 - 執行與回報 (PUT):機台嘗試出貨後,呼叫 B055 PUT API 回報出貨結果及剩餘庫存。
1.2 數據關聯 (Data Linking)
- 出貨紀錄整合:遠端出貨成功後,系統必須在
dispense_records表中同步存入一筆紀錄,並將source標記為remote(或對應識別),確保後台報表包含所有實體出貨數據。
2. 資料庫結構:remote_dispense_commands
| 欄位 | 說明 | 備註 |
|---|---|---|
command_id |
執行命令 ID | 用於追蹤單次指令 |
slot_no |
貨道 ID | 指派機台出貨的通道 |
status |
執行狀態 | 0:待執行, 1:成功, 2:失敗 |
remaining_stock |
剩餘庫存 | 由機台回報 |
3. 執行面優化 (Execution Strategy)
- Redis 隊列:由於遠端出貨屬於高優先權操作,待執行指令應快取於 Redis 中,以確保機台呼叫 POST 時能即時回應。
- 異步處理:機台 PUT 回報結果後,系統透過隊列更新 DB 狀態,並根據結果觸發後續邏輯(如扣除庫存、異動日誌)。
4. 待確認事項 (To-be-confirmed)
4.1 業務情境 (Scenario)
- 指令發起來源:確認指令是由後台管理員手動測試發起,還是串接外部線上購買系統產出的取貨指令?
4.2 失敗處理機制 (Failure Handling)
- 自動退款/告警:若機台 PUT 回報出貨失敗,雲端是否需要自動發起退款(針對線上訂單)或發送維修告警通知?
4.3 指令效期與防重 (TTL & Idempotency)
- 指令效期:如果指令發出後機台失聯,該指令應在多久後失效 (TTL)?
- 防重複機制:如何嚴格確保同一個
command_id不會被重複執行兩次?
4.4 安全性與權限 (Security)
- 指令簽名:除了
api_token,發送出貨指令是否需要額外的加密簽名驗證以防偽造? - 權限限制:是否限制僅特定高級管理員可發起此類高風險指令?
4.5 欄位定義
- URL {workid}:確認是否對標
serial_no。