Stripe Q62.Webhook::constructEventで、SignatureVerificationエラーになるのですが…

StripeQA

目次一覧

 状態:-  閲覧数:380  投稿日:2019-08-22  更新日:2019-08-22  
Q62

Q62

 閲覧数:158 投稿日:2019-08-22 更新日:2019-08-26 

Q62


Webhook::constructEventで、SignatureVerificationエラーになるのですが…
2019/8/22
前提
Stripe Conect の Standardアカウント directチャージ

Q
Charge Session の Webhookエンドポイントで、SignatureVerificationエラーを解決できません。
'No signatures found matching the expected signature for payload'
下記で何か気が付いたことがもしあれば教えてください。

コード抜粋
▼index.php
\Stripe\Stripe::setApiKey('xxxx');
\Stripe\Checkout\Session::create([
 'payment_method_types' => ['card'],
 'line_items' => [[
   'name' => "Checkout Session Direct Charges デモ3",
   'amount' => 200,
   'currency' => 'jpy',
   'quantity' => 10,
 ]],
 'payment_intent_data' => [
   'application_fee_amount' => 200,
 ],
 'success_url' => 'xxxx',
 'cancel_url' => 'xxxx',  
], [
 'stripe_account' => 'acct_xxxx',
]);


▼webhook.php
    \Stripe\Stripe::setApiKey('xxxx');  
   $endpoint_secret = 'whsec_xxxx';
   $payload = @file_get_contents('php://input');
   $sig_header = $_SERVER['HTTP_STRIPE_SIGNATURE'];
   $event = null;
   try {
       $event = \Stripe\Webhook::constructEvent(
           $payload, $sig_header, $endpoint_secret
       );
   } catch(\UnexpectedValueException $e) {
       //ここでエラーが捕捉されます


※$payload変数内容と、捕捉されたエラー内容につきましてはファイル添付しています


Webhook設定
https://dashboard.stripe.com/test/webhooks/we_1FA4EeEfFqi3KPm3KnVgQ73H

親アカウント手数料。取得できています
https://dashboard.stripe.com/test/events/evt_1FAA1OEfFqi3KPm3cljUKB3t

子アカウントの処理自体は問題なく出来ていると思われます
https://dashboard.stripe.com/test/logs/req_INyZaaJergSzAl
https://dashboard.stripe.com/test/logs/req_ljN6xIo6f6nWbv
https://dashboard.stripe.com/test/logs/req_7TAWxtFJOr5ngi

▼debug.php
'----------payload----------'
'{
 "id": "evt_1FAA1OLlsmkNgPt89Y9Qvi5b",
 "object": "event",
 "account": "acct_xxxx",
 "api_version": "2019-08-14",
 "created": 1566456226,
 "data": {
   "object": {
     "id": "cs_test_G21JU02SWKqBwdMZxZOy6bcnIzU9eIb85HJgptXo1m107zQiqP8h86V4",
     "object": "checkout.session",
     "billing_address_collection": null,
     "cancel_url": "http://xxxx/stripe/charge-cancel",
     "client_reference_id": "2",
     "customer": "cus_FfV1HWhLR6GhM8",
     "customer_email": null,
     "display_items": [
       {
         "amount": 200,
         "currency": "jpy",
         "custom": {
           "description": null,
           "images": null,
           "name": "Checkout Session Direct Charges デモ3"
         },
         "quantity": 10,
         "type": "custom"
       }
     ],
     "livemode": false,
     "locale": null,
     "payment_intent": "pi_1FAA17LlsmkNgPt8igElJDpi",
     "payment_method_types": [
       "card"
     ],
     "submit_type": null,
     "subscription": null,
     "success_url": "http://xxxx/stripe/charge-success"
   }
 },
 "livemode": false,
 "pending_webhooks": 1,
 "request": {
   "id": null,
   "idempotency_key": null
 },
 "type": "checkout.session.completed"
}'
'----------SignatureVerification----------'
Stripe\Error\SignatureVerification::__set_state(array(
  'message' => 'No signatures found matching the expected signature for payload',
  'string' => '',
  'code' => 0,
  'file' => '/var/www/xxxx/lib/composer/vendor/stripe/stripe-php/lib/WebhookSignature.php',
  'line' => 55,
  'trace' =>
 array (
   0 =>
   array (
     'file' => '/var/www/xxxx/lib/composer/vendor/stripe/stripe-php/lib/Webhook.php',
     'line' => 27,
     'function' => 'verifyHeader',
     'class' => 'Stripe\\WebhookSignature',
     'type' => '::',
     'args' =>
     array (
       0 => '{
 "id": "evt_1FAA1OLlsmkNgPt89Y9Qvi5b",
 "object": "event",
 "account": "acct_xxxx",
 "api_version": "2019-08-14",
 "created": 1566456226,
 "data": {
   "object": {
     "id": "cs_test_G21JU02SWKqBwdMZxZOy6bcnIzU9eIb85HJgptXo1m107zQiqP8h86V4",
     "object": "checkout.session",
     "billing_address_collection": null,
     "cancel_url": "http://xxxx/stripe/charge-cancel",
     "client_reference_id": "2",
     "customer": "cus_FfV1HWhLR6GhM8",
     "customer_email": null,
     "display_items": [
       {
         "amount": 200,
         "currency": "jpy",
         "custom": {
           "description": null,
           "images": null,
           "name": "Checkout Session Direct Charges デモ3"
         },
         "quantity": 10,
         "type": "custom"
       }
     ],
     "livemode": false,
     "locale": null,
     "payment_intent": "pi_1FAA17LlsmkNgPt8igElJDpi",
     "payment_method_types": [
       "card"
     ],
     "submit_type": null,
     "subscription": null,
     "success_url": "http://xxxx/stripe/charge-success"
   }
 },
 "livemode": false,
 "pending_webhooks": 1,
 "request": {
   "id": null,
   "idempotency_key": null
 },
 "type": "checkout.session.completed"
}',
       1 => 't=1566456226,v1=664ea5151ae5598a24f10dbb76fd7450f2cabd7a0a24c9fa0787f53ca3182147',
       2 => 'whsec_xxxx',
       3 => 300,
     ),
   ),
   1 =>
   array (
     'file' => '/var/www/html/1-p46/0webapp/controllers/StripeController.php',
     'line' => 56,
     'function' => 'constructEvent',
     'class' => 'Stripe\\Webhook',
     'type' => '::',
     'args' =>
     array (
       0 => '{
 "id": "evt_1FAA1OLlsmkNgPt89Y9Qvi5b",
 "object": "event",
 "account": "acct_子アカウント",
 "api_version": "2019-08-14",
 "created": 1566456226,
 "data": {
   "object": {
     "id": "cs_test_G21JU02SWKqBwdMZxZOy6bcnIzU9eIb85HJgptXo1m107zQiqP8h86V4",
     "object": "checkout.session",
     "billing_address_collection": null,
     "cancel_url": "http://xxxx/stripe/charge-cancel",
     "client_reference_id": "2",
     "customer": "cus_FfV1HWhLR6GhM8",
     "customer_email": null,
     "display_items": [
       {
         "amount": 200,
         "currency": "jpy",
         "custom": {
           "description": null,
           "images": null,
           "name": "Checkout Session Direct Charges デモ3"
         },
         "quantity": 10,
         "type": "custom"
       }
     ],
     "livemode": false,
     "locale": null,
     "payment_intent": "pi_1FAA17LlsmkNgPt8igElJDpi",
     "payment_method_types": [
       "card"
     ],
     "submit_type": null,
     "subscription": null,
     "success_url": "http://xxxx/stripe/charge-success"
   }
 },
 "livemode": false,
 "pending_webhooks": 1,
 "request": {
   "id": null,
   "idempotency_key": null
 },
 "type": "checkout.session.completed"
}',
       1 => 't=1566456226,v1=664ea5151ae5598a24f10dbb76fd7450f2cabd7a0a24c9fa0787f53ca3182147',
       2 => 'whsec_xxxx',
     ),
   ),
   2 =>
   array (
     'file' => '/var/www/html/1-p46/0webapp/core/Controller.php',
     'line' => 63,
     'function' => 'webhookAction',
     'class' => 'StripeController',
     'type' => '->',
     'args' =>
     array (
       0 =>
       array (
         'controller' => 'stripe',
         'action' => 'webhook',
         0 => '/stripe/webhook',
       ),
     ),
   ),
   3 =>
   array (
     'file' => '/var/www/html/1-p46/0webapp/core/Application.php',
     'line' => 254,
     'function' => 'run',
     'class' => 'Controller',
     'type' => '->',
     'args' =>
     array (
       0 => 'webhook',
       1 =>
       array (
         'controller' => 'stripe',
         'action' => 'webhook',
         0 => '/stripe/webhook',
       ),
     ),
   ),
   4 =>
   array (
     'file' => '/var/www/html/1-p46/0webapp/core/Application.php',
     'line' => 215,
     'function' => 'runAction',
     'class' => 'Application',
     'type' => '->',
     'args' =>
     array (
       0 => 'stripe',
       1 => 'webhook',
       2 =>
       array (
         'controller' => 'stripe',
         'action' => 'webhook',
         0 => '/stripe/webhook',
       ),
     ),
   ),
   5 =>
   array (
     'file' => '/var/www/html/xxxx/xxxx/public_html/index.php',
     'line' => 12,
     'function' => 'run',
     'class' => 'Application',
     'type' => '->',
     'args' =>
     array (
     ),
   ),
 ),
  'previous' => NULL,
  'httpStatus' => NULL,
  'httpBody' => '{
 "id": "evt_1FAA1OLlsmkNgPt89Y9Qvi5b",
 "object": "event",
 "account": "acct_子アカウント",
 "api_version": "2019-08-14",
 "created": 1566456226,
 "data": {
   "object": {
     "id": "cs_test_G21JU02SWKqBwdMZxZOy6bcnIzU9eIb85HJgptXo1m107zQiqP8h86V4",
     "object": "checkout.session",
     "billing_address_collection": null,
     "cancel_url": "http://xxxx/stripe/charge-cancel",
     "client_reference_id": "2",
     "customer": "cus_FfV1HWhLR6GhM8",
     "customer_email": null,
     "display_items": [
       {
         "amount": 200,
         "currency": "jpy",
         "custom": {
           "description": null,
           "images": null,
           "name": "Checkout Session Direct Charges デモ3"
         },
         "quantity": 10,
         "type": "custom"
       }
     ],
     "livemode": false,
     "locale": null,
     "payment_intent": "pi_1FAA17LlsmkNgPt8igElJDpi",
     "payment_method_types": [
       "card"
     ],
     "submit_type": null,
     "subscription": null,
     "success_url": "http://xxxx/stripe/charge-success"
   }
 },
 "livemode": false,
 "pending_webhooks": 1,
 "request": {
   "id": null,
   "idempotency_key": null
 },
 "type": "checkout.session.completed"
}',
  'jsonBody' => NULL,
  'httpHeaders' => NULL,
  'requestId' => NULL,
  'stripeCode' => NULL,
  'sigHeader' => 't=1566456226,v1=664ea5151ae5598a24f10dbb76fd7450f2cabd7a0a24c9fa0787f53ca3182147',
  'xdebug_message' => '<tr><th align=\'left\' bgcolor=\'#f57900\' colspan="5"><span style=\'background-color: #cc0000; color: #fce94f; font-size: x-large;\'>( ! )</span> Stripe\\Error\\SignatureVerification: No signatures found matching the expected signature for payload in /var/www/html/lib/composer/vendor/stripe/stripe-php/lib/WebhookSignature.php on line <i>55</i></th></tr>
<tr><th align=\'left\' bgcolor=\'#e9b96e\' colspan=\'5\'>Call Stack</th></tr>
<tr><th align=\'center\' bgcolor=\'#eeeeec\'>#</th><th align=\'left\' bgcolor=\'#eeeeec\'>Time</th><th align=\'left\' bgcolor=\'#eeeeec\'>Memory</th><th align=\'left\' bgcolor=\'#eeeeec\'>Function</th><th align=\'left\' bgcolor=\'#eeeeec\'>Location</th></tr>
<tr><td bgcolor=\'#eeeeec\' align=\'center\'>1</td><td bgcolor=\'#eeeeec\' align=\'center\'>0.0001</td><td bgcolor=\'#eeeeec\' align=\'right\'>396496</td><td bgcolor=\'#eeeeec\'>{main}(  )</td><td title=\'/var/www/html/xxxx/xxxx/public_html/index.php\' bgcolor=\'#eeeeec\'>.../index.php<b>:</b>0</td></tr>
<tr><td bgcolor=\'#eeeeec\' align=\'center\'>2</td><td bgcolor=\'#eeeeec\' align=\'center\'>0.0121</td><td bgcolor=\'#eeeeec\' align=\'right\'>432376</td><td bgcolor=\'#eeeeec\'>MiniBlogApplication->run(  )</td><td title=\'/var/www/html/xxxx/xxxx/public_html/index.php\' bgcolor=\'#eeeeec\'>.../index.php<b>:</b>12</td></tr>
<tr><td bgcolor=\'#eeeeec\' align=\'center\'>3</td><td bgcolor=\'#eeeeec\' align=\'center\'>0.0123</td><td bgcolor=\'#eeeeec\' align=\'right\'>432792</td><td bgcolor=\'#eeeeec\'>MiniBlogApplication->runAction(  )</td><td title=\'/var/www/html/1-p46/0webapp/core/Application.php\' bgcolor=\'#eeeeec\'>.../Application.php<b>:</b>215</td></tr>
<tr><td bgcolor=\'#eeeeec\' align=\'center\'>4</td><td bgcolor=\'#eeeeec\' align=\'center\'>0.2865</td><td bgcolor=\'#eeeeec\' align=\'right\'>439072</td><td bgcolor=\'#eeeeec\'>StripeController->run(  )</td><td title=\'/var/www/html/1-p46/0webapp/core/Application.php\' bgcolor=\'#eeeeec\'>.../Application.php<b>:</b>254</td></tr>
<tr><td bgcolor=\'#eeeeec\' align=\'center\'>5</td><td bgcolor=\'#eeeeec\' align=\'center\'>0.2865</td><td bgcolor=\'#eeeeec\' align=\'right\'>439112</td><td bgcolor=\'#eeeeec\'>StripeController->webhookAction(  )</td><td title=\'/var/www/html/1-p46/0webapp/core/Controller.php\' bgcolor=\'#eeeeec\'>.../Controller.php<b>:</b>63</td></tr>
<tr><td bgcolor=\'#eeeeec\' align=\'center\'>6</td><td bgcolor=\'#eeeeec\' align=\'center\'>0.2934</td><td bgcolor=\'#eeeeec\' align=\'right\'>443896</td><td bgcolor=\'#eeeeec\'>Stripe\\Webhook::constructEvent(  )</td><td title=\'/var/www/html/1-p46/0webapp/controllers/StripeController.php\' bgcolor=\'#eeeeec\'>.../StripeController.php<b>:</b>56</td></tr>
<tr><td bgcolor=\'#eeeeec\' align=\'center\'>7</td><td bgcolor=\'#eeeeec\' align=\'center\'>0.2935</td><td bgcolor=\'#eeeeec\' align=\'right\'>444536</td><td bgcolor=\'#eeeeec\'>Stripe\\WebhookSignature::verifyHeader(  )</td><td title=\'/var/www/html/lib/composer/vendor/stripe/stripe-php/lib/Webhook.php\' bgcolor=\'#eeeeec\'>.../Webhook.php<b>:</b>27</td></tr>
',
))








Stripe Q61. 「複数の1が複数のwebhookを停止しています」はどういう意味ですか?

Q63.No signatures found matching the expected signature for payload について

コメント投稿(ログインが必要)



類似度ページランキング
順位 ページタイトル抜粋
1 Stripe Q68.WebhookはPUT送信しているのですか? 38
2 Stripe Q21。新規顧客作成時に新規ソースオブジェクトを添付したいのですが、No such token: src_xxxxとなります 36
3 Stripeで"No such token: src"と表示されたら、最初にAPIキーを確認する 36
4 Stripe Q66.Webhookエンドポイントが、"connect"内容も含むかどうかを確認するためにはどうすれば良いですか? 36
5 Stripe Q52.Checkout\Sessionで1回限りの決済終了した際、添付メール自動送信することはできますか? 36
6 Stripe Q53.Checkout\Sessionの1回限りの支払いで、決済完了したユーザにだけページ表示させたい 33
7 Stripe Q9。Checkout beta version で、webhookを受け取ると、client_reference_idがNULL 33
8 Stripe Q8。Stripe Checkout public beta version について 32
9 Stripe Q56. 作成したCheckout\Sessionオブジェクトが破棄されるタイミングは? 32
10 Stripe Q51.Connect Standard アカウント連結後の返り値で、"refresh_token”も保存した方が良いですか? 32
11 Stripe Q71.CheckoutSessionで、success_urlに指定したURLでzipダウンロードすると、success_urlへ遷移しない 32
12 Stripe Q14。Customerオブジェクトをcreateする際の"source"パラメータについて 31
13 Stripe Q60. Checkout\SessionオブジェクトとPaymentIntentオブジェクトの関係性は1対1ですか? 31
14 Stripe Q61. 「複数の1が複数のwebhookを停止しています」はどういう意味ですか? 31
15 Stripe Q29。日本で、Connect Customアカウント を導入している事例について 31
16 Stripe Q20。「webhook」と「synchronous」と「Checkout beta version」について 31
17 Stripe Q15。PaymentIntent でエラー。カード番号に不備があります。 30
18 Stripe Q32。Webhook のエンドポイントから適切な値を返さなかったときの停止措置について 30
19 Stripe Billing > Quickstart / クイックスタート 30
20 Stripe Q28。Sourceオブジェクトのusageプロパティのデフォルト値について 30
2022/5/22 23:38 更新
週間人気ページランキング / 5-15 → 5-21
順位 ページタイトル抜粋 アクセス数
1 Stripeアカウントへログインする際、モバイル端末で受信したコード入力を求められる理由は? | その他エントリー(Stripe) 34
2 3Dセキュア | セキュリティ 18
3 Stripe Q50。 Connect 「Standardアカウント」で、自身に連結された子アカウントを、ダッシュボードから削除するには? | QA(Stripe) 15
4 決済用語 9
4 EMVCo | クレジットカード仕様(仕様) 9
5 Stripe Q15。PaymentIntent でエラー。カード番号に不備があります。 | QA(Stripe) 8
5 Stripe Q1。Stripeにおける個人事業主の定義 | QA(Stripe) 8
6 Payment Intents API | その他エントリー(Stripe) 7
7 PCI DSS 認定取得のメリット / 守るべきクレジットカード情報 / 年表 6
7 クレジットカード仕様(仕様) カテゴリー 6
7 その他エントリー(Stripe) カテゴリー 6
7 ツイキャス | ライブ配信サービス(課金販売できるプラットフォーム) 6
7 クレジットカード仕様(仕様) カテゴリー 6
8 Stripe Q16。PaymentIntentの支払いで郵便番号入力を求められる。Radar rules の ZIP code を無効にしているのに | QA(Stripe) 5
8 Stripe Payments > COLLECTING PAYMENT DETAILS > Checkout | documentation(Stripe) 5
8 PaymentIntentで支払を実装する場合の選択肢 /「Payment Intents API」使用によるカードの支払確認方法は2種類 / PaymentMethodオブジェクトは歴史的経緯により3種類ある 5
8 Stripe Payments > PREPARING FOR SCA > Payment Intents | documentation(Stripe) 5
9 Stripe Q35。「Payment Intents API」で、3Dセキュアなどの認証手順を(顧客が)使用しないことは出来ますか? | QA(Stripe) 4
9 Stripe Q13。決済成功時に、「請求に紐づけられたメールアドレス」に対して、メール送信したいのですが、 | QA(Stripe) 4
9 ライブ配信サービス | 課金販売できるプラットフォーム 4
2022/5/22 1:01 更新