メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://waffo.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

Webhook は、Waffo が加盟店へ非同期イベント通知をプッシュする仕組みです。決済ステータスが変化したとき、Waffo は加盟店の notifyUrl に HTTPS POST リクエストを送信します。

Webhook を使用する理由

  • 決済結果の正本(リダイレクトやポーリングよりも優先度が高い)
  • ユーザーフローをブロックしない非同期通知
  • すべてのステータス変更イベントをカバー

設定要件

要件説明
プロトコルHTTPS (TLS 1.2 以上)
到達性パブリックインターネットからアクセス可能であること
署名Waffo はリクエストボディを Waffo の秘密鍵で署名します。加盟店は Waffo の公開鍵を使って X-SIGNATURE を検証する必要があります
応答の署名加盟店の応答も加盟店の秘密鍵で署名する必要があります
応答ボディ{"message": "success"} / {"message": "failed"} / {"message": "unknown"}

Webhook リクエストの構造

{
  "header": {
    "Content-Type": "application/json",
    "X-SIGNATURE": "..."
  },
  "body": {
    "eventType": "PAYMENT_NOTIFICATION",
    "result": { ... }
  }
}

加盟店の応答

{
  "header": {
    "Content-Type": "application/json",
    "X-SIGNATURE": "..."
  },
  "body": {
    "message": "success"
  }
}
応答説明
success正常に受信・処理した
failed処理失敗。Waffo は再送します
unknownステータス不明。Waffo は再送します

設定方法

注文/サブスクリプション作成時に、コールバック URL をパラメーターで指定します。

ローカル開発

イントラネットトンネリングツールを使って、ローカルポートをパブリック URL として公開します。
# cloudflared
cloudflared tunnel --url http://localhost:3000

# ngrok
ngrok http 3000