カテゴリー:
QA
閲覧数:321 配信日:2019-08-22 17:44
Q63
No signatures found matching the expected signature for payload について
2019/8/22
前回送信した内容で、No signatures found matching the expected signature for payload について 調べているのですが、
▼/composer/vendor/stripe/stripe-php/lib/WebhookSignature.php で、
上記コード部分で、$signaturesの中に、$signatureが含まれないのですが、原因としては何が考えられるでしょうか?
デバッグしてみた内容
▼/composer/vendor/stripe/stripe-php/lib/WebhookSignature.php で、
$signatureFound = false;foreach ($signatures as $signature) {
if (Util\Util::secureCompare($expectedSignature, $signature)) {
$signatureFound = true;
break;
}
}
if (!$signatureFound) {
throw new Error\SignatureVerification(
"No signatures found matching the expected signature for payload",
$header,
$payload
);
}
上記コード部分で、$signaturesの中に、$signatureが含まれないのですが、原因としては何が考えられるでしょうか?
デバッグしてみた内容
'-----signatures-----'
array (
0 => 'ca83a95301ebb6d06243cb4d60d9836fb7eee8fc365a05041e94fea2a58df414',
)
'-----expectedSignature-----'
'63a0bec67744511efd44a325e0cdb5c22d3c16204fbd55d341082de699c2944c'
'-----signatures-----'
array (
0 => '6e937259d0277a395f579ee1877b3f17ec929b560d4c1a721216a71687defd70',
)
'-----expectedSignature-----'
'cb64f217f60a71fc868ef6fe8a92d196839ff612f19453525ae473f324782c82'
'-----signatures-----'
array (
0 => 'c0c7fe203c754ce0127fdbd3457e38f3f2946923dcb9e3c052fa7806f91a0438',
)
'-----expectedSignature-----'
'd7ece993c64f5fbdb7678d205c426ec55d0a901e89424020caf1ad6f35115e5e'
'-----signatures-----'
array (
0 => 'fd884b1e153a525514aceb7c2829571c80f2a34ca8ab0117e014e0770a37abd6',
)
'-----expectedSignature-----'
'fd884b1e153a525514aceb7c2829571c80f2a34ca8ab0117e014e0770a37abd6'
'-----signatures-----'
array (
0 => '2de2a148abf7632209b7d7afb676ce33b43f59a068c8c6f58f03da986ea6c547',
)
'-----expectedSignature-----'
'5a4614a1e537fb97eb768acb34c571fef6d1789375e4577681284b573c23e935'
'-----signatures-----'
array (
0 => '01e9e9aea350337e8e29a63d715ddb7ac64a6b56edc334ded25ae1bde5c6fcf1',
)
'-----expectedSignature-----'
'9507c9a3789c9343ecd288eceb389d8cdc9712c8ec04d42df885584461e46ff6'
'-----signatures-----'
array (
0 => '48a34aeea7832345b362428a9aaba1ae8c65b9ee54014a3cd5dfddf412c0900e',
)
'-----expectedSignature-----'
'5f9cb2039cb5989bba4f3cf2d00cbbfb8b2fd33467a72b6c06798c4cdddc2290'
'-----signatures-----'
array (
0 => '16dc87774a8086727d5ab10c9c2a890bea775a33498474f5fdaa365af8d045e3',
)
'-----expectedSignature-----'
'ed5f998f1ea79ee872a23ba15b1d2fd03e6df5104eb2c4712b248bd672cd10a4'
'-----signatures-----'
array (
0 => '809ffcccba6f1f7d375bf095b0dac24e32f709350e3879a74e926cc909f503d1',
)
'-----expectedSignature-----'
'6ed603e7b9864c5f0fe4813546d59cfeb529c47d05946471d9ca91f1b556e7a2'
A
ご共有いただいたエラー「'No signatures found matching the expected signature for payload' 」は、StripeのJavaライブラリがpayloadに含まれるsignatureを認証することができない時に発生するようです。そのため、以下のことをご確認いただければと存じます。
1)ご自身のアプリケーションまたはコードにて、Webhook.constructEvent() callが呼び出される前に、StripeからのRAWリクエストが変更されていないこと
2)WebhookのボディはUTF-8にて送られるため、もしボディに正しくエンコードされていない値があるかをお確かめいただくことで問題が解決することもあるようです
IOUtils.toString(req.getInputStream(), "UTF-8")
3)このsignature認証プロセスはStripeから送られるリクエストが、何も変更されていないかたちで送られている必要がございます。そのため、Webhook.constructEvent() callが呼び出される前に御社のシステム上にてStripeからのリクエストに変更が加えられていないことをご確認ください
こちらも参考になりますと幸いです:https://stripe.com/docs/webhooks/signatures
1)ご自身のアプリケーションまたはコードにて、Webhook.constructEvent() callが呼び出される前に、StripeからのRAWリクエストが変更されていないこと
2)WebhookのボディはUTF-8にて送られるため、もしボディに正しくエンコードされていない値があるかをお確かめいただくことで問題が解決することもあるようです
IOUtils.toString(req.getInputStream(), "UTF-8")
3)このsignature認証プロセスはStripeから送られるリクエストが、何も変更されていないかたちで送られている必要がございます。そのため、Webhook.constructEvent() callが呼び出される前に御社のシステム上にてStripeからのリクエストに変更が加えられていないことをご確認ください
こちらも参考になりますと幸いです:https://stripe.com/docs/webhooks/signatures