Q53 / A

「決済」及び「開発」関連用語集

カテゴリー: QA  閲覧数:322 配信日:2019-08-03 11:05


Q53


Checkout\Sessionの1回限りの支払いで、決済完了したユーザにだけページ表示させたい
2019/8/3
Q1.'success_url'へ遷移する前に変数を渡し、その変数を'success_url'で受け取ることができますか?


Q2.決済完了したユーザにだけ確実に指定ページ表示させるためには、WEBHOOK ENDPOINT を使用するべきですか?


Q3.「checkout.session.completed」イベントを受け取るWebhookのURLを複数登録した場合について
「checkout.session.completed」イベントが発生したら、同設定の全URLで処理が実行されますか?


Q4.特定のリクエスト先からの「checkout.session.completed」イベントの場合は、という紐づけは出来ない?
下記で動的にエンドポイント作成できるようですが、例えば、特定のリクエスト先からの「checkout.session.completed」イベントの場合だけ特定のWebhookのURLへアクセスすることは出来ますか?
https://stripe.com/docs/api/webhook_endpoints/object


Q5.WebhookのURL登録を、「プログラムで設定する場合」と「ダッシュボードで設定する場合」について
・何か違いはありますか?
・方法が違うだけで結果は同じ?


Q6.https://dashboard.stripe.com/test/webhooks
下記は何が異なりますか?
・アカウントからイベントを受信するエンドポイント
・Connect アプリケーションからイベントを受信するエンドポイント
・Connect決済かどうかで、入力場所が異なるということですか?
・パラメータ('stripe_account')を送信すれば、Connect決済という判断?

<参考 使用予定のコードのイメージ。PHP+JavaScript>
\Stripe\Stripe::setApiKey("sk_test_xxxx"); //プラットフォーム提供である親アカウントのシークレットキー
$checkoutSession = \Stripe\Checkout\Session::create([
 'payment_method_types' => ['card'],
 'line_items' => [[
   'name' => "デモ",
   'amount' => 200,
   'currency' => 'jpy',
   'quantity' => 10,
 ]],
 'payment_intent_data' => [
   'application_fee_amount' => 200,
 ],
 'success_url' => 'https://xxxx/thanks.php',
 'cancel_url' => 'https://xxxx/cancel.php',
], [
 'stripe_account' => 'acct_xxxx', //販売者である子アカウントの「Accountオブジェクトのidプロパティ値」を入力
]);
?>
<button id="checkout-button" role="link">Pay</button>
<script src="https://js.stripe.com/v3"></script>
<script>
const stripe = Stripe('pk_test_xxxx', { //プラットフォーム提供である親アカウントの公開可能キー
 stripeAccount: 'acct_xxxx', //販売者である子アカウントの「Accountオブジェクトのidプロパティ値」を入力
});
const checkoutButton = document.getElementById('checkout-button');
checkoutButton.addEventListener('click', function () {
 stripe.redirectToCheckout({
   sessionId: '<?php echo $checkoutSession->id; ?>'
 })
 .then(function (result) {
 });
});
</script>



Q7.決済完了したユーザにだけページ表示したい
・WebhookのURLへ直接アクセスされたくないのですが、
if ($event->type == 'checkout.session.completed') {
だけではダメで、下記も必要ですか?
$endpoint_secret


Q8.PHPのWebhookエンドポイント
$sig_header = $_SERVER['HTTP_STRIPE_SIGNATURE'];
・上記箇所で「Undefined index: HTTP_STRIPE_SIGNATURE 」エラーが表示されるのですが、気にする必要はありますか?
・何らかのサーバの設定がもし必要ならばと思い質問しました
・動作自体は期待した通り動作しています


Q9.Webhookエンドポイントに対するイベント指定について
・「Customerとして存在しているならば」というイベント指定はできますか?
・イベントなので、Customer「作成時」や「更新時」といった指定しか用意されていない?

A


Q1.'success_url'へ遷移する前に変数を渡し、その変数を'success_url'で受け取ることができますか?
変数を'success_url'で受け取ることは可能でございます。

“success_url”については、下記にも記載がございます:https://stripe.com/docs/payments/checkout/fulfillment#webhooks

Q2.決済完了したユーザにだけ確実に指定ページ表示させるためには、WEBHOOK ENDPOINT を使用するべきですか?
Stripeでは、”checkout.session.completed”のイベントが送信された(ステータス:2xx)後に、'success_url'へ遷移をさせます。
また、もし上記イベントが10秒以内に送信されなかった際には、自動的に'success_url'へ遷移されます。

そのため、一つの方法として、”checkout.session.completed”をWebhookイベントとしてご設定いただくことをご検討いただけるかと存じます。

Q3.「checkout.session.completed」イベントを受け取るWebhookのURLを複数登録した場合について 「checkout.session.completed」イベントが発生したら、同設定の全URLで処理が実行されますか?
はい、ご認識の通りでございます。

Q4.特定のリクエスト先からの「checkout.session.completed」イベントの場合は、という紐づけは出来ない?
ご存知かとは存じますが、Webhookのご設定をされることで、アカウント上で発生するイベントについて通知を受け取ることが可能です。
また、作成されたイベントが発生しますと、該当のリクエスト先に関してのイベントが送信されます。

Q5.WebhookのURL登録を、「プログラムで設定する場合」と「ダッシュボードで設定する場合」について
ご設定の結果に違いはございませんが、プログラムでWebhookの設定を行う方法でのみ、Connectアカウントでのイベントを受け取るかをご設定いただけます。
Connectアカウントでのイベントを受信されたい場合には、”connect”というパラメータをtrueにしていただければと存じます。

Webhookの設定方法の違いについては、下記に記載がございます:https://stripe.com/docs/webhooks/setup#configure-webhook-settings

Q6.https://dashboard.stripe.com/test/webhooks
下記は何が異なりますか?
・アカウントからイベントを受信するエンドポイント
・Connect アプリケーションからイベントを受信するエンドポイント
・Connect決済かどうかで、入力場所が異なるということですか?
・パラメータ('stripe_account')を送信すれば、Connect決済という判断?
Q5でご案内しました通り、Connectアカウントからのイベントを受信されるには、プログラム(API)にてご設定いただきますようお願い申し上げます。
また、Connectアカウントからのイベントを受信された際には、”account”オブジェクトにて、該当のConnectアカウントIDを取得していただけます。

ConnectでのWebhookのご利用に関しては、下記にも記載がございます:https://stripe.com/docs/connect/webhooks

Q7.決済完了したユーザにだけページ表示したい
・WebhookのURLへ直接アクセスされたくないのですが、
if ($event->type == 'checkout.session.completed') {
だけではダメで、下記も必要ですか?
$endpoint_secret
Q1でご案内しました通り、'success_url'には変数を渡すことが可能ですので、これにより、ご想定されておりますようなケースや、悪意のある顧客からの乱用に対して対応いただけるかと存じます。
なお、同じような事象をご懸念されているユーザのために、Stripeでは幾つかの'success_url'の設定方法を下記にてご案内しております:https://stripe.com/docs/payments/checkout/fulfillment

Q8.PHPのWebhookエンドポイント
$sig_header = $_SERVER['HTTP_STRIPE_SIGNATURE'];
・上記箇所で「Undefined index: HTTP_STRIPE_SIGNATURE 」エラーが表示されるのですが、気にする必要はありますか?
こちらのご質問に関して明確にご案内させていただくには、該当のエラーについて社内で確認させていただきたく存じます。
つきましては、エラーについて下記のような情報をご提供いただけますでしょうか。

・エラーが確認できるスクリーンショット
・該当のWebhookイベントを設定されているStripeアカウント
・エラーを受信された経緯

Q9.Webhookエンドポイントに対するイベント指定について
・「Customerとして存在しているならば」というイベント指定はできますか?
・イベントなので、Customer「作成時」や「更新時」といった指定しか用意されていない?
ご認識の通り、Webhookのイベントはアカウントで発生した事象によって設定いただけますので、「Customerとして存在しているならば」というようなイベントの設定はございません。

恐れ入りますが、こちらを設定されたい理由を伺ってもよろしいでしょうか。
もし、他の手段にてご提案させていただける方法がございましたら、社内でお調べさせていただきたく存じます。

週間人気ページランキング / 11-16 → 11-22
順位 ページタイトル抜粋 アクセス数
1 EMVレベル1 / EMVレベル2 / EMVCo とは? 9
2 Stripe Q15。PaymentIntent でエラー。カード番号に不備があります。 | QA(Stripe) 4
3 Twitch | ゲーム実況配信サービス(課金販売できるプラットフォーム) 3
3 Stripe Connect > | documentation(Stripe) 3
4 Stripe Q37。PaymentIntentで支払いを行った後、成功画面を表示させるためにはどうすれば良いですか? | QA(Stripe) 2
4 \Stripe\PaymentIntentオブジェクト / Stripe\PaymentMethodオブジェクト / \Stripe\Checkout\Sessionオブジェクト 2
4 Stripe Q50。 Connect 「Standardアカウント」で、自身に連結された子アカウントを、ダッシュボードから削除するには? | QA(Stripe) 2
4 Stripe Payments > PREPARING FOR SCA > Payment Intents | documentation(Stripe) 2
5 Stripe webhook 配信の問題 / 実際に受け取った警告メールの受信例 1
5 「Gumroad」は、決済サービス「PayPal」を利用したオンラインコンテンツ販売サービス | デジタルコンテンツ販売可能なサービス(課金販売できるプラットフォーム) 1
5 Stripe Q43。payouts スケジュールについて | QA(Stripe) 1
5 Payment Intents API | その他エントリー(Stripe) 1
5 質問履歴29 / A抜粋 / 感想 1
5 Google Pay | 「支払、出金」機能を有する決済系サービス表(決済サービス) 1
5 普通送金 | 為替取引 1
5 Yahoo!ウォレット | 「チャージ、支払、送金、出金」機能を有する決済系サービス(決済サービス) 1
5 note | 課金販売できるプラットフォーム 1
5 LINE LIVE | ライブ配信サービス(課金販売できるプラットフォーム) 1
5 クレジットカード導入に関する当初の考え / クレジットカード導入に関する現在の考え / 自分の経験に照らし合わせて考えてみると 1
5 EPUB3 | ファイルフォーマット(電子書籍) 1
2024/11/23 1:02 更新
指定期間人気ページランキング / 2020-5-28 → 2024-11-22
順位 ページタイトル抜粋 アクセス数
1 Stripeアカウントへログインする際、モバイル端末で受信したコード入力を求められる理由は? | その他エントリー(Stripe) 2022
2 EMVCo | クレジットカード仕様(仕様) 1330
3 Stripe Q13。決済成功時に、「請求に紐づけられたメールアドレス」に対して、メール送信したいのですが、 | QA(Stripe) 972
4 Twitch | ゲーム実況配信サービス(課金販売できるプラットフォーム) 939
5 Stripe Q16。PaymentIntentの支払いで郵便番号入力を求められる。Radar rules の ZIP code を無効にしているのに | QA(Stripe) 927
6 クレジットカード決済 | 課金 909
7 決済用語 878
8 Stripe Q50。 Connect 「Standardアカウント」で、自身に連結された子アカウントを、ダッシュボードから削除するには? | QA(Stripe) 847
9 EMVレベル1 / EMVレベル2 / EMVCo とは? 818
10 Stripe Q1。Stripeにおける個人事業主の定義 | QA(Stripe) 804
11 pixivFANBOX | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 795
12 Omise | 「支払」機能を有する決済系サービス(決済サービス) 784
13 Stripe Q31。ダッシュボードでの「支払い作成」の見方について | QA(Stripe) 749
14 YouTube | 動画サービス(課金販売できるプラットフォーム) 718
15 プリペイドカード | カード 649
16 EPUB | ファイルフォーマット(電子書籍) 613
17 Stripe Q74.「お客様のビジネスの詳細」とは何ですか? | Stripe 594
18 Stripeで"No such token: src"と表示されたら、最初にAPIキーを確認する | Stripe エラー(Stripe) 577
19 サブスクリプション | 課金 565
20 Stripe エラー(Stripe) カテゴリー 487
2024/11/23 1:02 更新