檢查公開入口
Facilitator 能力聲明:facilitator、supportedKinds 和協定端點,表示能力中繼資料正常。API 資源發現已退役;請直接呼叫目標 API,並以即時 402 回應為準。
Facilitator 支援能力:
kinds,表示 Facilitator 入口正常。
檢查 402 accepts
傳送一個不會扣費的未驗證請求:
accepts 中是否包含你要使用的網路。network 是 CAIP-2 識別碼:
eip155:8453+exact(Base)eip155:8453+upto(Base,後置計量)eip155:1187947933+exact(SKALE)solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp+exact(Solana)
執行 X402Client 進階驗證工具
X402Client 儲存庫提供進階驗證工具,可用於確認 402 回應選擇、簽名產生、paid retry 和鏈上 settlement。它們需要 funded wallet、RPC、私鑰和開發相依套件。一般業務串接建議優先使用 TypeScript 或 Python SDK;只有在需要定位簽名或鏈上結算問題時,再執行這些工具。 儲存庫位址:https://github.com/AceDataCloud/X402Client- 第一次請求的 402 回應。
- 選取的 payment requirement。
- 簽名後的
PAYMENT-SIGNATURE摘要。 - 重試後的 HTTP 狀態和回應主體。
- 鏈上 settlement transaction,或失敗時的 Facilitator 錯誤原因。
PAYMENT-SIGNATURE 傳送至日誌系統或工單中。
公開 API 驗證結果範例:
- SKALE
exact、Baseexact、Solanaexact和 Baseupto都完成了從 HTTP 402 到 HTTP 200 的 paid retry。 - SKALE
exact的鏈上交易已可在 SKALE explorer 查詢,結算金額為0.095215USDC。 - Base
exact的鏈上交易已可在 BaseScan 查詢,結算金額為95215atomic USDC。 - Base
upto的簽名上限為95215atomic USDC,但實際鏈上 settlement 為3atomic USDC,表示後置計量會依實際用量扣款。 - Solana 路徑已確認 paid retry 和模型輸出。公開 RPC 可能會限流;需要嚴格進行鏈上對帳時,請使用自有 Solana RPC 或平台端結算紀錄確認交易簽名。
SDK smoke test
進階驗證工具用於檢查簽名和鏈上結算。業務端還應執行 SDK smoke test,確認應用程式碼能夠透過 payment handler 自動處理 402。以下只展示核心片段,完整程式碼需要補齊錢包、provider 和 import。 TypeScript:exact。SKALE 目前只提供 exact,按 402 報價的固定金額結算,不會隨真實 token 用量下調。聊天補全屬於按 token 計量的情境,正式接入時建議改用 Base 並傳入 preferScheme: 'upto',按真實用量結算。
SDK smoke test 的程式執行結果:
- TypeScript SDK 透過
createX402PaymentHandler自動處理 402、簽名和重試,最終取得ADC_TS_SDK_X402_OK。 - Python SDK 透過
create_x402_payment_handler完成相同鏈路,最終取得ADC_PY_SDK_X402_OK。 - 兩個 smoke test 都使用 SKALE payer
0xd0479FA9FD8C678303d477433d24C15e3723CC1C。 - Python SDK 回傳物件是
dict,範例中可使用res["choices"][0]["message"]["content"]讀取內容。
訂單支付 E2E
訂單支付使用platform.acedata.cloud 的平台 API,需要平台帳戶權杖。完整鏈路是:建立 Pending 訂單,POST /api/v1/orders/{order_id}/pay/ 觸發 402,然後帶 PAYMENT-SIGNATURE 重試。
小額訂單支付驗證結果範例:
以下交易記錄為舊政策下的歷史實測樣本,金額和交易雜湊保留原樣。新 X402 訂單不再享有支付方式折扣;請以本次 402 回應的 amount 為簽名和付款依據。
- 建立訂單後,訂單狀態是
Pending,價格是1.26。 - 第一次
pay/請求回傳 HTTP 402,accepts中有 Baseexact和 Solanaexact,金額都是1200000atomic USDC。 - 帶 Base
PAYMENT-SIGNATURE重試後回傳 HTTP 200,訂單狀態變為Finished,pay_way是X402。 PAYMENT-RESPONSE解碼後顯示success=True、network=base,並給出相同的交易雜湊。- BaseScan 上交易狀態是
1,轉帳金額是1200000atomic USDC,也就是1.2USDC。 - 建立價
1.26在舊 X402 支付優惠政策期間支付,最終簽名與結算金額為1.2USDC。
Authorization: Bearer {platform_token},或者訂單不屬於目前帳戶,會在平台權限層失敗;這和直接呼叫 x402.acedata.cloud 的無帳戶 X402 API 不同。
常見錯誤
Base upto 檢查清單
upto 目前只在 Base 上提供(eip155:8453)。SKALE 只提供 exact。由於 upto 簽名會綁定更多 EVM typed data 參數,接入時應特別確認 402 回應中的即時欄位與用戶端簽名完全一致。
upto 回傳 invalid_upto_evm_payload_invalid_signature,優先檢查:
- API 回傳的
eip155:8453+upto項目中的extra.chainId(應為8453)。 - API 回傳的
extra.facilitatorAddress。 https://facilitator.acedata.cloud/supported回傳的 Baseuptofacilitator 位址。- Permit2 domain、spender、USDC 合約和簽名帳戶。
- 錢包是否已經對 Base USDC approve Permit2。
upto 的簽名 digest 同時綁定 Permit2 domain、chain ID、spender、收款位址、facilitator 位址和 validAfter。任一項不一致,Facilitator 都會還原出錯誤 signer,從而回傳 invalid signature。若這些都一致但仍回傳 402,下一步檢查 Permit2 allowance;未授權時回傳 PERMIT2_ALLOWANCE_REQUIRED。
儲存驗證資訊
一次完整驗證至少保存:- API path 和請求本文摘要;
- 選取的 network 和 scheme;
maxAmountRequired;- payer 錢包地址;
- HTTP 最終狀態;
- 回應中的模型輸出或任務 ID;
- settlement transaction 連結;
- Gateway trace ID 或平台使用記錄 ID。
PAYMENT-SIGNATURE、完整 EIP-712 signature 或助記詞。
結構化支付錯誤
簽名後的 X402 失敗會在extensions.acedatacloud.paymentError 返回穩定的 code、安全插值參數、階段和可重試旗標。優先使用該結構排查,不要解析頂層英文 error,也不要要求使用者提供錢包簽名或鏈上模擬原文。
charged: false:驗證在結算前明確拒絕,本次沒有發起扣款。- 不含
charged:結果未知或已進入結算階段,先查訂單和鏈上狀態,禁止直接重複支付。 settlement_pending:暫勿重複支付,先重新整理訂單或聯絡支援。- 未識別 code:按
payment_failed處理,並保留公開技術代碼供客服檢索。

