Stripe Webhookの設定ガイド
Stripeから送信される決済関連のWebhook(例: payment_intent.succeeded, invoice.paid)を確実に受け取るための設定手順です。
ステップ 1: Osirynでのエンドポイント作成
- Osirynダッシュボードの「エンドポイント」から新規作成を開きます。
- 送信元 (Source) として
Stripeを選択します。 - Stripeのイベントを受け取るご自身のサーバーURLを 転送先URL に入力します。
- 設定を保存し、発行された Relay URL (
https://relay.osiryn.com/ep_...) をコピーします。
ステップ 2: Stripeダッシュボードでの設定
- Stripeのダッシュボードにログインし、「開発者」 > 「Webhook」メニューを開きます。
- 「エンドポイントを追加」ボタンをクリックします。
- エンドポイントURL の欄に、先ほどコピーした OsirynのRelay URL を貼り付けます。
- リッスンするイベント を選択します(例:
checkout.session.completed)。 - 「エンドポイントを追加」をクリックして保存します。
ステップ 3: 署名シークレットの設定(必須)
StripeからのWebhookリクエストが偽装されていないことを確認するため、Osiryn側で署名(Signature)の検証を行います。
- StripeダッシュボードのWebhook設定画面で、今作成したエンドポイントの詳細を開きます。
- 「署名シークレット」のセクションにある「表示」をクリックし、
whsec_...から始まる文字列をコピーします。 - Osirynダッシュボードに戻り、該当エンドポイントの「設定」を開きます。
- 署名シークレット (Signature Secret) の欄にコピーした文字列を貼り付け、保存します。
✅ セキュリティ検証について
Osiryn Relayは、受け取ったリクエストの Stripe-Signature ヘッダーと、あなたが設定したシークレットを用いてHMAC-SHA256ハッシュを計算し、Stripeからの正規なリクエストであるかを検証します。不正なリクエストはあなたのサーバーに到達する前にブロック(401 Unauthorized)されます。
自社サーバー側での検証について
Osirynを中継する場合、あなたのサーバーに届くリクエストはOsirynからのものになります。 Stripe元の署名ヘッダーはそのまま転送されますが、Osirynのダッシュボードで署名シークレットが設定されている時点で既に検証が済んでいるため、自社サーバー側で再度Stripe SDKを用いた署名検証コードを実行する必要は基本的にありません(IP制限等で安全性を担保してください)。