沙盒與驗收

區分工程沙盒與正式上線驗收,測試續辦、錯綁防護、通知、定位及計費隔離。

沙盒與驗收

沙盒使用獨立 Client、DB、Redis、儲存與金鑰,所有資料屬於 sandbox,不得產生正式計費。測試 OTP 和 ML stub 只驗證流程,畫面必須標示測試模式;正式簡訊、真模型、受信任 HTTPS、手機實機和審核作業另行驗收。

建議測試順序

情境預期結果
首次 OTP、證件、活體、送審不需平台密碼,選填 Email 不影響送件
刷新、關頁、票券到期、跨日審核同一案件可續辦,送審不因連結過期而消失
QR 掃碼但桌機未確認手機不能讀原會員資料或送件
Callback 時已登出或換帳號不錯綁,目前帳號不取得原會員結果
相同 key 重送/不同 payload相同內容冪等,不同內容 409
同 Merchant/環境重複身分只有一個有效綁定,另一案件轉人工處理
不同 Client 存取資源無法查詢或修改他人資料
停用 Client、Merchant 或 Organization商業閘門拒絕,沒有新計費
Webhook 重複、亂序、暫時離線event ID 去重,舊版本不覆寫,恢復後補送
定位拒絕、逾時、不支援、未回報狀態可辨識,不阻擋登入、不製造 App 失聯警報
Sandbox 核准、讀取及重試不出現正式 ledger 或月度計費人頭

錯誤處理

錯誤外層為 error_code、message、request_id。支援人員可用 request_id 查問題,不需要使用者提供證件影像、secret 或完整票券。

  • 401:認證失敗,檢查後端設定,不能把 secret 放到瀏覽器補救。
  • 403:狀態或操作權限拒絕,由管理者處理。
  • 404:功能未開通或目前 Client 查不到資源。
  • 409 idempotency_conflict:同一 key 用了不同內容;原操作查結果,新操作用新 key。
  • 409 identity_already_bound:保留案件供人工處理,不自動解除既有綁定。
  • 422:輸入驗證失敗,依欄位修正。
  • 429:尊重 Retry-After,避免立即重送。
  • 5xx/網路逾時:保持原操作 key 稍後重試,狀態顯示同步中。

不要把技術錯誤轉成 KYC rejected 或 Eligibility blocked。驗收紀錄應分開列工程測試、MySQL 併發、瀏覽器、手機實機及真模型,不能用其中一項代替其他項目。