代理價格一致性檢查
付費 API 容易發生定價漂移:文件說 $0.005,實際端點卻收 $0.01,發現清單還快取著上個月的 $0.001。買方會提出異議,目錄會標記「價格不誠實」,營收也會流失。這個五分鐘檢查工具就是為了抓出這些問題而設計的——它來自於一個擁有 400 多條付費路由的邊緣案例,而那三種情況全都發生過。
必須一致的三個價格
- 標示價格 —
openapi.json的x-payment-info.price(加上定價頁面) - 質詢價格 — 即時 402 回應中的
accepts[].amount(原子單位)和maxAmountRequired - 結算價格 — 協調者實際移動的金額(收據/交易價值)
操作步驟
- 擷取質詢:
curl -s -i -X POST <url> -H 'content-type: application/json' -d '{}'→ 解析PAYMENT-REQUIRED(base64 JSON)→accepts[0].amount(原子單位;USDC 為 6 位小數,所以10000= $0.01)。 - 擷取標示價格:
openapi.json→ 每條路由的x-payment-info.price.amount。 - 比對:逐條路由比對標示價格與質詢價格。不一致即為發現項目,並標記方向(超收 = 信任損害 + 退款風險;低收 = 營收流失)。
- 檢查清單:如果你發布了
/.well-known/x402,請驗證其金額與即時質詢相符——目錄會快取過時的金額並顯示你的舊價格。 - 一行修復原則:質詢是由運行時定價產生的——請先修復運行時來源,然後在相同提交中重新產生文件和清單。僅修改文件很快就會失效。
結果 schema
{"routes_checked": N, "parity_ok": N, "overcharge": [{"path": "...", "advertised": "0.005", "charged": "0.01"}], "undercharge": [...], "stale_manifest": [...], "verdict": "PARITY|DRIFT"}
規則
- 檢查公開來源,而不是 localhost——代理/WAF 可能會改寫內容。
- 原子單位計算:USDC 為 6 位小數;
50000是 $0.05,不是 $50,000。 - 在任何定價變更的前與後都執行;保留變更前的差異作為記錄。
不適用於
- 稅金/VAT/手續費附加費計算(結算成本,非牌價)。
- 非按次計費(訂閱制、按用量計費的代幣計費)。
範例
提問:「我們把 deep-audit 價格調高到 $0.05 了——世界是否依然一致?」
之前:pricing.json 說 0.05,openapi 說 0.01,manifest 說 0.01,實際端點質詢 0.01。持續數週無人察覺。
之後:{"overcharge": [], "undercharge": [{"path": "/v1/security-audit/deep", "advertised": "0.01", "charged": "0.05"}], "verdict": "DRIFT"} —— 單次提交修復了三個表面;目錄快取在下次結算時刷新。
版本
1.0.0 — DDG 入門系列。