避免網路重試或重複點擊建立兩筆 pending 預約,造成營位與租借庫存重複占用。
會員提交 idempotencyKey
→ bookings 保存 key 與 request hash
→ DB 限制同一會員不能重複 key
→ E-3 Service 比較 hash,決定回放或回傳衝突
(customer_id, checkout_idempotency_key)。checkout_request_hash 保存正規化 payload 的 SHA-256 指紋。IDEMPOTENCY_CONFLICT。latest_schema.sql 從空資料庫建立成功。uq_bookings_customer_checkout_idempotency 拒絕。yuruicamp-db 與資料卷。