このサイトはコミュニティが運営する非公式の日本語リソースです。公式ドキュメントはdocs.x402.orgをご参照ください。

ライフサイクルフック

x402の支払いフローをサーバー・クライアント・ファシリテーターの各レイヤーでカスタマイズする方法を解説します。

ライフサイクルフックを使うと、コアのビジネスロジックを変更せずに支払いフローの各ポイントに処理を追加できます。ログ収集・アクセス制御・分析など幅広い用途に対応します。

サーバーサイドフック

x402ResourceServer

トランスポート非依存のフックで、検証・決済イベントに対応します:

  • onBeforeVerify検証前に支払いを拒否できます。不正なクライアントのブロックや独自の事前検証に活用。
  • onAfterVerify検証成功後に実行されます。ログ収集や分析データの記録に活用。
  • onAfterSettle決済成功後に実行されます。カスタムアクセス権付与やWebhook通知などに活用。
  • onVerifyFailure / onSettleFailure失敗時のリカバリー処理を実装できます。

x402HTTPResourceServer

HTTP固有のシナリオに対応します:

  • onProtectedRequest保護されたルートへのリクエストを受け取る際に実行。APIキー保持者への支払い免除・サブスクライバーへのアクセス許可・特定クライアントのブロックなどに活用。

onProtectedRequest フックでは、支払いをスキップしてリクエストを通過させる・支払いを要求する・リクエストを拒否する、の3パターンを返せます。

クライアントサイドフック

x402Client

  • onBeforePaymentCreation支払いペイロードの作成前に実行。支出上限の強制・承認要求・条件チェックに活用。
  • onPaymentCreationFailure支払い作成が失敗した場合に実行。フォールバック処理の実装に活用。

x402HTTPClient

  • on402Response402レスポンスを受け取った際に実行。支払い開始前にAPIキーなどの代替ヘッダーでリトライを試みることができます。

ファシリテーターフック

x402Facilitator は検証・決済フックをサポートし、以下の用途に活用できます:

  • ディスカバリーカタログ(Bazaar)への登録・更新
  • コンプライアンスチェックの実行
  • クロスペイメントのメトリクス収集
  • カスタム決済後処理

フックのチェーン

複数のフックをメソッドチェーンで順番に登録できます。フックはTypeScript・Python(sync版含む)・Goで実装例が用意されています。詳細はx402リポジトリのサンプルをご参照ください。