Migration from legacy to new Checkout / レガシーから新しいチェックアウトへの移行

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

カテゴリー: documentation  閲覧数:573 配信日:2019-04-11 10:24


docs


Payments > PREPARING FOR SCA > Checkout (new) > Checkout Migration Guide
Checkout Migration Guide
レガシーから新しいチェックアウトへの移行

・2019年4月11日時点で、PHPコードが掲載されていないため省略。恐らく作成中なのだと思われ。後で要チェック!
・2019/5/2。Ruby以外のコードも掲載された

従来バージョンのCheckoutから新しいバージョンへの移行方法について説明する

Checkoutのレガシーバージョン
・カード情報を収集し、トークンまたはソースをあなたのウェブサイトに返すモーダルダイアログを顧客に提示した

新バージョンのCheckout
・Stripeがホストするスマートペイメントページで、支払いまたはsubscriptionsを作成する
・Apple Payとダイナミック3Dセキュアをサポートしている
・これから来る多くの機能に備えている

固定価格の簡易製品カタログ / client × 1回限りの支払


固定価格で少数の製品(少数のTシャツや電子書籍など)を販売している場合
・クイックスタートの指示に従って、ダッシュボードに商品を作成し、Webサイトに追加するコードスニペットを生成する
・新バージョンのCheckoutでは自動的に支払いが行われるため、サーバーのシステムは不要だ

▼Checkout (new) client デモ2
<script src="https://js.stripe.com/v3"></script>
<button id="checkout-button">Pay</button>

<div id="error-message"></div>

<script>
 const stripe = Stripe('pk_test_xxxx');

 const checkoutButton = document.querySelector('#checkout-button');
 checkoutButton.addEventListener('click', () => {
   stripe.redirectToCheckout({
     items: [{
       // Define the product and SKU in the Dashboard first, and use the SKU
       // ID in your client-side code.
       sku: 'sku_EYUuveVPe61SrH',
       quantity: 1
     }],
     successUrl: 'https://xxxx/thanks.php',
     cancelUrl: 'https://xxxx/cancel.php',
     customerEmail: 'xxxx@yahoo.co.jp',
     clientReferenceId: 'order_123',
   })
   .then(function (result) {
     if (result.error) {
       // If `redirectToCheckout` fails due to a browser or network
       // error, display the localized error message to your customer
       // using `result.error.message`.
       var displayError = document.getElementById('error-message');
       displayError.textContent = result.error.message;
     }
   });
 });

</script>


簡単なsubscriptions / client × subscription


単純なサブスクリプションサービス(ソフトウェアへの毎月のアクセスなど)を提供している場合
・クイックスタートの指示に従ってダッシュボードにプランを作成し、Webサイトに追加するコードスニペットを生成する
・新バージョンのCheckoutでは、顧客とsubscriptionsの両方が自動的に作成されるため、サーバーのシステムは不要だ

Checkoutの新バージョンでは
・サポートは予定されているが、サブスクリプションで既存のCustomersを再利用することはまだサポートされていない

▼Checkout (new) client-subscription デモ1
・上記「client デモ2」で、「skuパラメータ」を「planパラメータ」へ変更するだけ
<script src="https://js.stripe.com/v3"></script>
<button id="checkout-button">Pay</button>

<div id="error-message"></div>

<script>
 const stripe = Stripe('pk_test_xxxx');

 const checkoutButton = document.querySelector('#checkout-button');
 checkoutButton.addEventListener('click', () => {
   stripe.redirectToCheckout({
     items: [{
       // Define the product and plan in the Dashboard first, and use the plan
       // ID in your client-side code.
       plan: 'plan_EuDx4OLwYfha56',
       quantity: 1
     }],
     successUrl: 'https://xxxx/thanks.php',
     cancelUrl: 'https://xxxx/cancel.php',
     customerEmail: 'xxxx@yahoo.co.jp',
     clientReferenceId: 'order_123',
   })
   .then(function (result) {
     if (result.error) {
       // If `redirectToCheckout` fails due to a browser or network
       // error, display the localized error message to your customer
       // using `result.error.message`.
       var displayError = document.getElementById('error-message');
       displayError.textContent = result.error.message;
     }
   });
 });
</script>


動的製品カタログと価格 / server → client × 1回限りの支払


金額や明細が動的に決定される商品を販売している場合(例えば、大規模な商品カタログや寄付など)
・クイックスタートの指示に従って、Checkout Sessions APIをアプリケーションに統合する

Checkoutのサーバーシステムの新バージョン
・従来とは流れが逆になっている
・最初にサーバー上にセッションを作成し、そのIDをクライアントへ渡し、顧客をCheckoutにリダイレクトする
・顧客は成功するとアプリケーションへリダイレクトされる

まずサーバー上にCheckoutセッションを作成する
▼Checkout (new) server デモ1-2、2
$checkoutSession = \Stripe\Checkout\Session::create([
 'payment_method_types' => ['card'],
 'line_items' => [[
   'name' => 'Custom t-shirt',
   'description' => 'Your custom designed t-shirt',
   'amount' => 500,
   'currency' => 'jpy',
   'quantity' => 1,
 ]],
 'success_url' => 'https://example.com/success',
 'cancel_url' => 'https://example.com/cancel',
]);


次に、セッションIDをクライアントへ渡して、支払いを完了するために顧客をCheckoutにリダイレクトする
const stripe = Stripe('pk_test_xxxx');

stripe.redirectToCheckout({
 sessionId: '<?php echo $checkoutSession->id; ?>',
});


動的subscriptions / server → client × subscription


動的に決定される、または他の高度な機能のサポートを必要とするサブスクリプションサービスを提供している場合
・クイックスタートの指示に従って、Checkout Sessions APIをアプリケーションに統合する

Checkoutのサーバーシステムの新バージョン
・従来とは流れが逆になっている
・最初にサーバー上にセッションを作成し、そのIDをクライアントへ渡し、顧客をCheckoutへリダイレクトする
・顧客は成功するとアプリケーションへリダイレクトされる

Checkoutの新バージョンでは
・サポートは予定されているが、サブスクリプションで既存のCustomersを再利用することはまだサポートされていない

まずサーバー上にCheckoutセッションを作成する
▼Checkout (new) server-subscription デモ1
$session = \Stripe\Checkout\Session::create([
 'payment_method_types' => ['card'],
 'subscription_data' => [
   'items' => [[
     'plan' => 'plan_123',
     'trial_period_days' => 30,
   ]],
 ],
 'success_url' => 'https://example.com/success',
 'cancel_url' => 'https://example.com/cancel',
]);


次に、セッションIDをクライアントへ渡して、支払いを完了するために顧客をCheckoutへリダイレクトする
const stripe = Stripe('pk_test_xxxx');

stripe.redirectToCheckout({
 sessionId: '{{CHECKOUT_SESSION_ID}}',
});


Connectプラットフォームとマーケットプレイス


Connectプラットフォームまたはマーケットプレイスを運営しており、接続アカウントを含む支払いを作成する

次の例では、Checkout Sessions APIを使用して直接請求を処理する

まず、接続アカウントの代わりにサーバー上にCheckoutセッションを作成してくれ
▼Checkout (new) server-connect デモ2
$checkoutSession = \Stripe\Checkout\Session::create([
 'payment_method_types' => ['card'],
 'line_items' => [[
   'name' => "Cucumber from Roger's Farm",
   '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',
]);


次に、セッションIDをクライアントへ渡して、支払いを完了するために顧客をCheckoutへリダイレクトする
・Stripe.jsを初期化するときは、必ず接続アカウントのIDを指定してくれ
const stripe = Stripe('pk_test_xxxx', {
stripeAccount: 'acct_xxxx',
});

stripe.redirectToCheckout({
// Pass the ID of the Checkout Session you created on your server.
sessionId: '<?php echo $checkoutSession->id; ?>',
})


週間人気ページランキング / 4-19 → 4-25
順位 ページタイトル抜粋 アクセス数
1 YouTube | 動画サービス(課金販売できるプラットフォーム) 7
2 EMVCo | クレジットカード仕様(仕様) 6
3 EMVレベル1 / EMVレベル2 / EMVCo とは? 5
4 クレジットカード決済 | 課金 4
5 pixivFANBOX | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 3
5 Squareは、デジタルコンテンツ(デジタル情報)の配信利用が認められないサービス | 「支払」機能を有する決済系サービス(決済サービス) 3
6 Stripeアカウントへログインする際、モバイル端末で受信したコード入力を求められる理由は? | その他エントリー(Stripe) 2
6 Off-session Payments with Payment Intents / Payment Intents を使用したオフセッション支払 2
6 Stripe Q32。Webhook のエンドポイントから適切な値を返さなかったときの停止措置について | QA(Stripe) 2
6 「支払」と「送金」の違い | 違い 2
6 Stripe Q16。PaymentIntentの支払いで郵便番号入力を求められる。Radar rules の ZIP code を無効にしているのに | QA(Stripe) 2
6 プリペイドカード | カード 2
7 振込 | 送金 1
7 IBAN | 海外送金(送金) 1
7 Stripe Q11。テストAPIで、実際のカード番号を入力したらどうなりますか? | QA(Stripe) 1
7 Stripe Q53.Checkout\Sessionの1回限りの支払いで、決済完了したユーザにだけページ表示させたい | QA(Stripe) 1
7 ツイキャスとは?/ 特徴 / キートスとは? 1
7 note | 課金販売できるプラットフォーム 1
7 Stripe webhook 配信の問題 / 実際に受け取った警告メールの受信例 1
7 Stripe webhook 配信の問題 | その他エントリー(Stripe) 1
2024/4/26 1:02 更新
指定期間人気ページランキング / 2020-5-28 → 2024-4-25
順位 ページタイトル抜粋 アクセス数
1 Stripeアカウントへログインする際、モバイル端末で受信したコード入力を求められる理由は? | その他エントリー(Stripe) 2010
2 EMVCo | クレジットカード仕様(仕様) 1268
3 Stripe Q13。決済成功時に、「請求に紐づけられたメールアドレス」に対して、メール送信したいのですが、 | QA(Stripe) 943
4 Stripe Q16。PaymentIntentの支払いで郵便番号入力を求められる。Radar rules の ZIP code を無効にしているのに | QA(Stripe) 901
5 クレジットカード決済 | 課金 880
6 Twitch | ゲーム実況配信サービス(課金販売できるプラットフォーム) 876
7 決済用語 855
8 Stripe Q50。 Connect 「Standardアカウント」で、自身に連結された子アカウントを、ダッシュボードから削除するには? | QA(Stripe) 824
9 Omise | 「支払」機能を有する決済系サービス(決済サービス) 767
10 Stripe Q1。Stripeにおける個人事業主の定義 | QA(Stripe) 761
11 pixivFANBOX | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 741
12 Stripe Q31。ダッシュボードでの「支払い作成」の見方について | QA(Stripe) 738
13 EMVレベル1 / EMVレベル2 / EMVCo とは? 727
14 YouTube | 動画サービス(課金販売できるプラットフォーム) 670
15 プリペイドカード | カード 645
16 EPUB | ファイルフォーマット(電子書籍) 587
17 サブスクリプション | 課金 563
18 Stripeで"No such token: src"と表示されたら、最初にAPIキーを確認する | Stripe エラー(Stripe) 544
19 Stripe Q74.「お客様のビジネスの詳細」とは何ですか? | Stripe 542
20 ファンティア | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 482
2024/4/26 1:02 更新