公開エントリポイントを確認する
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を取得します。 - 2 つの 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 に対して Permit2 を approve しているか。
upto の署名 digest は、Permit2 domain、chain ID、spender、受取アドレス、facilitator アドレス、および validAfter に同時にバインドされます。いずれか 1 つでも一致しない場合、Facilitator は誤った signer を復元するため、invalid signature を返します。これらがすべて一致していても 402 が返される場合、次に Permit2 allowance を確認してください。未承認の場合は PERMIT2_ALLOWANCE_REQUIRED が返されます。
検証情報の保存
1回の完全な検証では、少なくとも以下を保存します:- 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:検証は settlement 前に明確に拒否され、今回は課金が開始されていません。chargedを含まない:結果は不明、またはすでに settlement 段階に入っています。まず注文とオンチェーン状態を確認し、直接再度支払うことは禁止です。settlement_pending:しばらく再度支払わず、まず注文を更新するかサポートに連絡してください。- 認識されない code:
payment_failedとして扱い、カスタマーサポートが検索できるよう公開技術コードを保持してください。

