HTTP 402 Payment Required:它的意思,以及 x402 如何運用它
402 是表示「伺服器處理請求前需要先付款」的 HTTP 狀態碼。在它存在的大部分時間裏,一直沒有標準格式。x402 補上了這一環。
Key takeaways
-
402 Payment Required 是一種客戶端錯誤:請求本身有效,但伺服器要求先付款。
-
HTTP/1.1 將 402 保留作日後使用,卻從未定義付款應如何運作,因此各個 API 的用法都不一樣。
-
x402 補齊了欠缺的部分:一個載有機器可讀條款的 PAYMENT-REQUIRED header,以及重試時附上的已簽署付款。
402 Payment Required 是甚麼意思
402 回應告訴客戶端:請求本身沒有問題,但付款之前不會被處理。它屬於 4xx 系列,因為下一步要採取行動的是客戶端而非伺服器。
402 與 401 Unauthorized、403 Forbidden 不同。401 要求提供憑證,403 直接拒絕請求,402 則要求付款。
為何 402 閒置了這麼久
這個狀態碼是在編寫 HTTP/1.1 時保留下來的,當時預期某種形式的數碼現金會在將來出現。但規範從未說明 402 回應的內容應包含甚麼、客戶端又應如何付款,因此瀏覽器從未真正處理過它。
由於沒有統一格式,真正會回傳 402 的 API 只是把它當作一般錯誤:帳戶點數用完、信用卡被拒,或達到計劃上限。
現時 API 何時會回傳 402
你會在兩大類情況下見到 402。
- 帳戶計費錯誤:key 有效,但餘額、點數或訂閱不足以支付這次請求。解決方法是增值或升級計劃。
- 按次收費報價:伺服器回傳付款條款,客戶端付款後可以重試同一個請求。x402 正是這樣運作。
x402 如何將 402 變成付款流程
x402 將機器可讀的條款放進 PAYMENT-REQUIRED header:金額、資產、網絡及收款地址。客戶端按這些條款簽署一份穩定幣授權,經 PAYMENT-SIGNATURE header 送回,然後收到附有 PAYMENT-RESPONSE 收據的回應。
由於整個過程都是一般的 HTTP,擁有錢包的 AI 代理毋須註冊或儲存 API key,都可以為單次 API 調用付款。
在客戶端處理 402
先檢查有沒有 PAYMENT-REQUIRED header。如果有,即是 x402 報價,x402 客戶端可以完成付款。如果沒有,請細閱錯誤訊息:通常表示帳戶需要增值或轉換計劃。
HTTP 402 常見問題
402 Payment Required 算是錯誤嗎?
它是 4xx 範圍內的客戶端錯誤,但不代表請求格式有誤。它的意思是:伺服器要求先付款才會繼續處理。
402 和 401 有甚麼分別?
401 表示伺服器需要有效憑證,402 表示伺服器需要付款。同一個 API 可以對無效 key 回傳 401,對餘額不足的有效 key 回傳 402。
瀏覽器會自動處理 402 嗎?
不會。瀏覽器會把 402 當作一般錯誤頁面顯示。要自動付款,需要一個理解 x402 這類協議的客戶端。
哪些 API 會配合 x402 使用 402?
任何實作 x402 協議的伺服器都可以。RunAPI 在按次收費的 AI 模型端點上回傳 x402 報價,讓 AI 代理可以用 USDC 支付圖像、影片、音樂及音訊生成。