x402 エンドツーエンド結合テストチェックリスト

単体テストはすべて成功するが、結合テストでは失敗する場合がある x402 の落とし穴はほぼすべて境界条件に集中しています:402 応答ヘッダーは送信されたがブラウザで読み取れない(CORS 透過ヘッダーが不足)、署名計算は正しいが facilitator が拒否(nonce の重複/金額の単位エラー)、支払いは完了したが帳簿が一致しない(対帳元の誤り)。このツールは「無料で問題を発見 → 402 → 署名による支払い → データ取得 → オンチェーン対帳」の 5 ステップに従い、一度で実行可能な連携テストスクリプトと、各ステップの「期待値 + よくある失敗原因」を記載したチェックリストを生成します。

無料・ ログイン不要 ローカル生成・ コンテンツはアップロードされません 該当するインシデント・ 402 ヘッダーは送信されたが、ブラウザで読み取られていない

1あなたのエンドポイント

2料金と決済

結果統合テストの概要

出力エンドツーエンド統合テストスクリプト

0 行
—
5 ステップを一度に実行します。いずれかのステップの結果が期待値と異なる場合、原因を報告して処理を停止します|

出力ステップバイステップのチェックリスト(同僚に渡して実行させられる)

0 行
—

クイックリファレンス統合テスト時の一般的な失敗

現象真犯人修正方法
パケットキャプチャで 402 を確認できますが、JavaScript 内ではヘッダーを読み取れません。未設定 Access-Control-Expose-Headerspayment-required などのカスタムヘッダーを exposed リストに追加します
facilitator が invalid nonce を報告しますnonce の再利用、または署名ドメインとチェーン ID の不一致|毎回ランダムな nonce を再生成;domain の chainId を確認すること
facilitator が amount mismatch を報告します金額の単位が誤っています(USDC は小数点以下6桁)0.01 USDC = 10000 であり、1e16 ではありません|
購入者がガスを持っていなくても支払い可能です(これは正しい動作です)。EIP-3009 transferWithAuthorization gas 料金は facilitator が代わりに支払います|購入者は USDC を保有するだけでよい
钱到账但对账对不上チェーン上のイベントではなく、プラットフォーム自身の記録で対帳します。Transfer イベントのみをオンチェーンで認識し、許容誤差は ±$0.02 です|
入金が一向に反映されない最低決済額に達していない / 決済日になっていない自然月単位で集計し、翌月10日が決済日です。最低決済額は $50 です|
探活把端点判成已死MCP エンドポイントが SSE を返し、クライアント側での JSON 解析に失敗しましたHTTP ステータスコードのみで判定し、200 および 402 の両方が「生存中」と見なされます
この罠は私たちが既に踏んでいます

1 · 402 が送信されましたが、ブラウザで読み取れません。パケットキャプチャではレスポンスヘッダーが確認できますが、JavaScript 内では取得できません——カスタムレスポンスヘッダーは明示的に追加する必要があります Access-Control-Expose-Headers、さもないとブラウザがセキュリティポリシーに従って直接ブロックします。

2 · 探活误判。JSON クライアントで SSE を返す MCP エンドポイントを検査すると、常に「死亡」と判定されます。正しい方法はステータスコードのみを確認し、200 および 402 の両方を「生存中」と見なすことです。

3 · 金额单位。USDC は小数点以下6桁です。0.01 は 10000 と記述しなければなりません。1e16 と記述すると facilitator によって即座に拒否され、エラー情報には単位の誤りは明記されません。

4・対帳はブロックチェーン上でのみ実施されます。プラットフォーム自身の記録は、プロセス再起動やメモリ内の古くなった値による上書きなどにより不正確になる可能性があるため、照合は必ずブロックチェーン上の Transfer イベントを基準とすること。