Skip to main content

SDK 内蔵の WebhookHandler を使用する

SDK の webhook().handleWebhook() メソッドの利用を強く推奨します。次の処理を自動的に行います。
  • 署名検証
  • JSON パースとイベントルーティング
  • 応答ボディの構築と署名

冪等な処理

Waffo は同じイベントを複数回配信する場合があります。処理ロジックが冪等であることを確認してください。

配信順序ではなく最終状態で処理する

Webhook は非同期で配信されるため、関連する複数のコールバックを加盟店のエンドポイントが受信する順序は保証されません。サブスクリプションの初回期間では、SUBSCRIPTION_STATUS_NOTIFICATIONSUBSCRIPTION_PERIOD_CHANGED_NOTIFICATION の両方が送信される場合があります。この 2 つのコールバックの到着順序に依存しないでください。
  • コールバックの到着順序だけで最終的なビジネス状態を更新しないでください
  • subscriptionId、イベント ID、または加盟店側の注文 ID で冪等に重複排除してください
  • SUBSCRIPTION_STATUS_NOTIFICATIONSUBSCRIPTION_PERIOD_CHANGED_NOTIFICATION の両方をサブスクライブする場合は、いずれかのコールバックを受信した後に POST /api/v1/subscription/inquiry を呼び出し、その最終照会結果にもとづいて単一のサブスクリプション処理フローを実行してください

高速な応答

  • SDK はハンドラーの実行完了後に自動的に応答を構築します
  • 時間のかかる処理 (メール送信、外部システムの更新など) は非同期で処理してください
  • ハンドラー内で例外がスローされると、SDK は自動的に失敗応答を返します

セキュリティ

  • 必ず X-SIGNATURE を検証してください (SDK が自動で処理します)
  • HTTPS エンドポイントを使用してください
  • イベントを処理する前に署名を検証してください。検証が通る前にビジネスロジックを実行しないでください
  • 応答には X-SIGNATURE ヘッダーを含めてください (SDK が自動で処理します)