Q53 / A

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

カテゴリー: QA  閲覧数:287 配信日: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として存在しているならば」というようなイベントの設定はございません。

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

週間人気ページランキング / 4-13 → 4-19
順位 ページタイトル抜粋 アクセス数
1 YouTube | 動画サービス(課金販売できるプラットフォーム) 8
2 Saving Payment Methods / 支払い方法を保存する 3
2 支払い 3
2 「払い戻し」と「チャージバック」の違い | 違い 3
2 EMVCo | クレジットカード仕様(仕様) 3
2 EMVレベル1 / EMVレベル2 / EMVCo とは? 3
3 IBAN | 海外送金(送金) 2
3 プリペイドカード | カード 2
3 ログイン 2
3 振込 | 送金 2
3 Stripe Q73.CheckoutのSessionオブジェクトをcreateする際、'payment_intent_data'内の'metadata'として渡したデータを、webhookで受け取る件について | QA(Stripe) 2
3 Stripe Q55.Checkout\Session::createする際の、'client_reference_id'パラメータと'payment_intent_data.metadata'パラメータの違いについて | QA(Stripe) 2
4 「支払」と「送金」の違い | 違い 1
4 Stripe Q13。決済成功時に、「請求に紐づけられたメールアドレス」に対して、メール送信したいのですが、 | QA(Stripe) 1
4 Stripe Payments > Quickstart / クイックスタート | documentation(Stripe) 1
4 資金決済に関する法律(資金決済法)とは?/(1)前払式支払手段 /(2)資金移動業 1
4 Visa Global Security Summits | セキュリティ 1
4 Stripe Q1。Stripeにおける個人事業主の定義 | QA(Stripe) 1
4 Stripeで"No such token: src"と表示されたら、最初にAPIキーを確認する | Stripe エラー(Stripe) 1
4 SHOWROOM | ライブ配信サービス(課金販売できるプラットフォーム) 1
2024/4/20 1:01 更新
指定期間人気ページランキング / 2020-5-28 → 2024-4-19
順位 ページタイトル抜粋 アクセス数
1 Stripeアカウントへログインする際、モバイル端末で受信したコード入力を求められる理由は? | その他エントリー(Stripe) 2009
2 EMVCo | クレジットカード仕様(仕様) 1263
3 Stripe Q13。決済成功時に、「請求に紐づけられたメールアドレス」に対して、メール送信したいのですが、 | QA(Stripe) 942
4 Stripe Q16。PaymentIntentの支払いで郵便番号入力を求められる。Radar rules の ZIP code を無効にしているのに | QA(Stripe) 899
5 Twitch | ゲーム実況配信サービス(課金販売できるプラットフォーム) 876
5 クレジットカード決済 | 課金 876
6 決済用語 855
7 Stripe Q50。 Connect 「Standardアカウント」で、自身に連結された子アカウントを、ダッシュボードから削除するには? | QA(Stripe) 824
8 Omise | 「支払」機能を有する決済系サービス(決済サービス) 767
9 Stripe Q1。Stripeにおける個人事業主の定義 | QA(Stripe) 761
10 Stripe Q31。ダッシュボードでの「支払い作成」の見方について | QA(Stripe) 738
10 pixivFANBOX | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 738
11 EMVレベル1 / EMVレベル2 / EMVCo とは? 722
12 YouTube | 動画サービス(課金販売できるプラットフォーム) 665
13 プリペイドカード | カード 643
14 EPUB | ファイルフォーマット(電子書籍) 587
15 サブスクリプション | 課金 563
16 Stripeで"No such token: src"と表示されたら、最初にAPIキーを確認する | Stripe エラー(Stripe) 544
17 Stripe Q74.「お客様のビジネスの詳細」とは何ですか? | Stripe 541
18 ファンティア | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 482
2024/4/20 1:01 更新