デモモード — 外部APIは呼び出さず、ダミーで決済を生成します。
システム通知(決済結果通知 / Webhook)
システム通知先URL/api/demo/webhook-receiver?result=ok
通知の型JSON (POST)
送信パラメータセット標準(最小 + 決済種別 / ユーザーID / 商品ID)
決済識別子の形式一意の決済IDのみ
送信リクエストのサンプル
上の設定に応じてリアルタイムに更新されます
リクエスト
POST /api/demo/webhook-receiver?result=okヘッダー
Content-Type: application/json X-Signature: v1=3f0c9c5d8f2b1a7e6d4c2b1a0f9e8d7c6b5a4f3e2d1c0b9a8f7e6d5c4b3a2f1e X-Timestamp: 1756697696 Wirepay-Signature: t=1756697696,v1=3f0c9c5d8f2b1a7e6d4c2b1a0f9e8d7c6b5a4f3e2d1c0b9a8f7e6d5c4b3a2f1e User-Agent: WirePay-Notify/1.0
ボディ
{
"payment_id": "pay_01J9X4M8K2Q7Z3T6",
"event": "payment.completed",
"merchant_id": "MER-00001",
"amount": 4980,
"currency": "JPY",
"paid_at": "2026-09-01T12:34:56+09:00",
"status": "captured",
"payment_method": "credit",
"user_id": "user_10293",
"product_id": "SKU-2026-0042"
}パラメータ一覧
| 名前 | サンプル値 | 説明 | 区分 |
|---|---|---|---|
| payment_id | pay_01J9X4M8K2Q7Z3T6 | Wire Pay が発行する一意の決済ID | 識別子 |
| event | payment.completed | 通知の種類(payment.completed / payment.failed / payment.expired / payment.cancelled / refund.completed / limit.exceeded / chargeback.opened / subscription.* )。常に含まれます | 最小 |
| merchant_id | MER-00001 | 加盟店ID | 最小 |
| amount | 4980 | 決済金額(円、整数) | 最小 |
| currency | JPY | 通貨コード(JPY 固定) | 最小 |
| paid_at | 2026-09-01T12:34:56+09:00 | 決済日時(ISO 8601、JST) | 最小 |
| status | captured | 決済ステータス(captured / refunded など) | 最小 |
| payment_method | credit | 決済種別(credit / qr / konbini / bank / other) | 標準 |
| user_id | user_10293 | 加盟店側のユーザーID(決済作成時に指定) | 標準 |
| product_id | SKU-2026-0042 | 商品ID(決済作成時に指定) | 標準 |
署名の検証
X-Signature ヘッダは v1=<HMAC-SHA256(鍵, "<X-Timestamp>.<ペイロード>")> の 16 進表記です。鍵は加盟店の署名シークレット(通知と同じ環境の最新の有効なもの)です。署名シークレットが無い環境への通知は送信されません。ペイロードは POST ならボディ、GET ならクエリ文字列(? の後ろ)です。受信側は同じ計算で v1 を検証し、X-Timestamp が 5 分以上古い場合は拒否してください。互換のため Wirepay-Signature(t=<秒>,v1=<同じ値>)も送ります。
2xx 以外の応答または 10 秒以内に応答が無い場合、1 分 → 5 分 → 30 分 → 2 時間 → 24 時間の間隔で最大 5 回まで再送します。同じ payment_id と event の通知は冪等に処理してください。