<流程或限制名稱> 限制與風控規則

文件狀態:草稿
最後驗證:YYYY-MM-DD
來源:

目的

這份文件回答:

  • 這條限制在哪個流程生效
  • 上限怎麼算
  • 使用哪些 table / Redis key / config
  • 測試、staging、production 是否一致

不回答:

  • 完整 API migration 狀態
  • 單次測試 ID 或一次性 curl 結果
  • downstream queue / payment 細節,除非它就是限制條件

快速結論

規則類型環境差異對外結果
DB count / Redis / config / production-only

規則明細

<規則名稱>

來源:

<file>::<method>()

判斷時機:

建資料前 / 建資料後 / 付款前 / worker / 通知前

限制條件:

user / provider / request / category / phone / time window / count

上限:

寫死值 / config key / DB 欄位 / Redis TTL

使用資料:

table:
Redis key:
config:

例外條件:

official user / category / user id / match type

失敗 response:

{
  "error": 0,
  "message": ""
}

環境差異:

local / PHPUnit:
staging:
production:
測試 env flag:
live DB / Redis / worker 影響:

測試注意:

fixture:
cleanup:
是否受時間窗影響:

排查 SQL / 指令

涉及 pro360_api_82 DB / schema 查詢時:

使用容器 PHP 8.2 + DBFactory。
先 SHOW COLUMNS,再 SELECT。
不要用本機 PHP 直接查 DB。

常見誤判

  • 不要把測試 cleanup 用到的 table 誤認為限制來源。
  • 不要把 Redis 短 TTL 去重誤認為每日或每月上限。
  • staging 成功不代表 production-only guard 不存在。