API 金鑰與安全

測試金鑰與正式金鑰的差別、完整的 scope 清單,以及金鑰的安全處理方式。

檢視 Markdown

測試金鑰 vs. 正式金鑰

金鑰前綴代表它的環境:rbp_test_... 是測試金鑰(目前唯一會發出的類型),rbp_live_... 是正式金鑰(尚未開放發放)。測試金鑰在正式環境會被拒絕,正式金鑰在測試環境也一樣會被拒絕——不會有金鑰跨環境誤用的情況。

一次性顯示、撤銷、輪替

  • 完整金鑰內容只在建立當下顯示一次;之後 GET 只回傳前綴。
  • 可以隨時撤銷——撤銷立即生效,之後用這把金鑰的請求全部被拒絕。
  • 可以輪替:建立一把新金鑰、把服務切過去、再撤銷舊的,中間有交接期不中斷。
  • 後台會顯示金鑰的建立時間與最後使用時間,方便你發現「建立後從沒用過」的多餘金鑰。

完整 Scope 清單

「寫入」(:write)自動包含「讀取」(:read)的權限。建立金鑰時只勾選你真正需要的 scope;標示「高風險」的 scope 會實際移動款項,請額外謹慎授權。

Scope用途
products:read / products:write商品目錄
prices:read / prices:write價格
customers:read / customers:write顧客資料與付款方式參照
subscriptions:read / subscriptions:write訂閱建立/讀取/取消
billing:read帳單紀錄
payments:read / payments:write付款讀取/高風險:建立或嘗試扣款
refunds:read / refunds:write高風險:退款
payment_links:read / payment_links:writePayment Link
webhooks:read / webhooks:writeWebhook endpoint 與事件/投遞紀錄
usage:read / usage:write用量計量與 Credits(非現金)
entitlements:read / entitlements:write功能授權判斷(entitlement)
discounts:read / discounts:write折扣碼
mcp:invoke呼叫 MCP 工具,見 MCP / AI 整合
ai:invoke呼叫 AI 對話端點
analytics:read工作區分析資料
logs:read稽核紀錄
payouts:*Planned——目前一律回 403 SCOPE_DISABLED,尚未開放

不能做的事

  • 金鑰只能放在伺服器端環境變數,不可以出現在前端程式碼或瀏覽器網路請求裡。
  • 不可以把完整金鑰、卡號/CVV、Customer Portal token 寫進你自己的 log。
  • 缺少對應 scope 的請求會收到 403 SCOPE_DENIED;要求 payouts:* 這類尚未開放的 scope 會收到 403 SCOPE_DISABLED。