Stripe の通知の確認に失敗した
StripeSignatureVerificationError: No signatures found matching the expected signature for payload.
ひとことで言うと
「Stripe から届いた通知(Webhook)が本物かどうか、確かめられませんでした」という意味です。
よくある原因
- Webhook の秘密の値(whsec_ から始まる)が違う・入っていない
- 通知の中身を、確かめる前に別の形に変えてしまった(JSON に読みかえたなど)
- テスト用と本番用の値を取り違えた
自分で確かめること
- 環境変数の STRIPE_WEBHOOK_SECRET が、その通知先のものか見る
たいていは、こうすると直ります
正しい whsec_ の値を入れ、通知の中身は「そのままの文字(raw body)」で確かめるようにします。
AIへの伝え方
下の文をコピーして、ChatGPT・Claude・Cursor などに貼り付けてください。トップで貼り付けたエラー文があれば、自動でそれに入れかわります。
次のエラーが出て困っています。プログラミング初心者にもわかるように、原因と直し方を教えてください。必要なら、直したコードも全部見せてください。 【エラー】 StripeSignatureVerificationError: No signatures found matching the expected signature for payload. 【やったこと】 (ここに、エラーが出る前にしたことを書く。例:npm run dev を実行した) 【参考】 このエラーは「Stripe の通知の確認に失敗した」というもので、よくある原因は次のとおりです。 ・Webhook の秘密の値(whsec_ から始まる)が違う・入っていない ・通知の中身を、確かめる前に別の形に変えてしまった(JSON に読みかえたなど) ・テスト用と本番用の値を取り違えた どれに当てはまるかを確かめる方法も教えてください。