支払い中に支払い詳細を保存する
支払いを受け付け、将来の購入に備えて顧客の支払い詳細を保存する方法をご紹介します。
Stripe Checkout を使用すると、ローコードでの素早い実装が可能であり、顧客は将来の購入に備えて支払いの詳細を保存できるようになります。
顧客を作成するサーバー側
将来の支払いに備えてカードを設定するには、カードを Customer (顧客) に関連付ける必要があります。顧客がビジネスでアカウントを作成する際に、Customer オブジェクトを作成します。Customer オブジェクトを使用すると、支払い方法を再利用したり、複数の支払いを追跡したりできます。
作成に成功すると、Customer オブジェクトが返されます。オブジェクトで顧客の id
を調べて、その値を後で取得できるようにデータベースに保存できます。
これらの顧客は、ダッシュボードの顧客ページで見つけることができます。
Checkout セッションを作成するクライアント側サーバー側
ウェブサイトにサーバー側のエンドポイントを呼び出す決済ボタンを追加して Checkout セッションを作成します。
既存の顧客の Checkout セッションを作成することもできます。これにより、Checkout フィールドに既知の連絡先情報を事前入力して、その顧客の購入履歴を統合することができます。
<html> <head> <title>Buy cool new product</title> </head> <body> <!-- Use action="/create-checkout-session.php" if your server is PHP based. --> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>
Checkout セッションは、顧客が支払いフォームにリダイレクトされた際に表示される内容をプログラムで示したものです。以下のようなオプションを使用して設定できます。
- 請求するラインアイテム
- 使用する通貨
success_
に、支払いを完了した後に Checkout が顧客を戻すウェブサイト上のページの URL 値を設定します。オプションで、顧客が決済プロセスを完了前に終了した場合に、Checkout が顧客を戻すウェブサイト上のページの cancel_
値を指定することもできます。
注
デフォルトでは、Checkout セッションは作成後 24 時間で期限切れとなります。
Checkout セッションを作成したら、レスポンスで返された URL に顧客をリダイレクトします。
決済手段
デフォルトでは、カードとその他の一般的な決済手段が有効になっています。Stripe ダッシュボードで個々の決済手段をオンまたはオフにできます。Checkout では、Stripe は通貨と制限事項を評価して、対応している決済手段を顧客に動的に提示します。
決済手段が顧客にどのように表示されるか確認するには、ダッシュボードで取引 ID を入力するか、または注文金額と通貨を設定します。
決済手段の設定では Apple Pay と Google Pay を有効にすることができます。デフォルトでは、Apple Pay は有効で、Google Pay は無効になっています。ただし、有効になっていても Stripe が除外する場合があります。配送先住所を収集せずに税金の自動計算を有効にした場合、Google Pay は除外されます。
Checkout の Stripe 上のオンラインページでは、Apple Pay や Google Pay を有効にするために実装内容を変更する必要はありません。Stripe は、これらの決済を他のカード決済と同じように処理します。
エンドポイントを確認する
ウェブサーバー (localhost:4242
など) を起動し、次のコマンドを実行して、エンドポイントがアクセス可能であることを確認します。
curl -X POST -is "http://localhost:4242/create-checkout-session" -d ""
端末に次のようなレスポンスが表示されます。
HTTP/1.1 303 See Other Location: https://checkout.stripe.com/c/pay/cs_test_... ...
テスト
これで、顧客を Stripe Checkout にリダイレクトする決済ボタンが使用できるようになりました。
- 決済ボタンをクリックします。
- Stripe Checkout 支払いフォームにリダイレクトされます。
構築したシステムが機能しない場合:
- ブラウザの開発者ツールでネットワークタブを開きます。
- 決済ボタンをクリックし、サーバー側エンドポイント (
POST /create-checkout-session
) に XHR リクエストが送信されたことを確認します。 - リクエストが 200 ステータスを返すことを確認します。
- ボタンクリックリスナー内で
console.
を使用し、正しいデータが返されたことを確認します。log(session)
オンラインで提供される Checkout システムの設定とテストについて詳しくは、決済を受け付けるをご覧ください。
支払い方法を保存するサーバー側
オンラインで提供される Checkout システムを設定した後、顧客が使用する支払い方法を保存するために、システムの設定を選択します。
デフォルトでは、Checkout で 1 回限りの支払いに使用した支払い方法を将来の支払いに使用することはできません。
支払い方法を保存し、オフセッションでその支払い方法に請求する
payment_intent_data.setup_future_usage 引数を渡すことで、1 回限りの支払いに使用した支払い方法を保存するように Checkout を設定できます。これは、キャンセル手数料やノーショー手数料などの将来の手数料に使用するために、登録済みの決済手段を取得しなければならない場合に便利です。
subscription
モードで Checkout を使用すると、Stripe は決済手段を自動的に保存し、次回以降の支払いにはその決済手段で請求されます。setup_
または subscription
のいずれかのモードを使用している顧客用に保存されたカード決済手段は、Checkout の返品購入には表示されません (詳細については以下をご覧ください)。カスタムテキストを使用して、保存された決済情報の使用に関連する規約にリンクすることをお勧めします。
注意
世界の個人情報保護法は複雑かつ曖昧です。setup_future_usage の実装は既存の個人情報の規制に関わる可能性があるため、事前に法務チームや個人情報担当チームに問い合わせることをお勧めします。支払いの詳細を保存することについては、欧州データ保護委員会から発行されたガイダンスをご覧ください。
支払い方法を保存し、Checkout でその支払い方法を事前入力する
デフォルトでは、Checkout は Link を使用して、決済情報を安全に保存し、再利用するためのオプションを顧客に提供します。自分で決済手段を管理する場合は、Checkout セッションを作成する際に saved_payment_method_options.payment_method_save を使用して、Checkout での将来の購入に備えて顧客が支払い方法を保存できるようにします。
このパラメーターを payment モードまたは subscription モードで渡すと、今後の購入に備えて顧客が支払い方法を明示的に保存できるようにするためのオプションのチェックボックスが表示されます。顧客がこのチェックボックスをオンにすると、Checkout は allow_redisplay: always を指定して支払い方法を保存します。Checkout はこのパラメーターを使用して、今後の購入で支払い方法を事前入力できるかどうかを判断します。saved_
を使用する場合、支払い方法を保存するために setup_
を渡す必要はありません。
saved_payment_method_options.payment_method_save を使用するには Customer
が必要です。新しい顧客を保存するには、Checkout セッションの customer_creation を always
に設定します。それ以外の場合、セッションで顧客や決済手段は保存されません。
payment_
が渡されていない場合、または顧客が支払い方法の保存に同意しない場合でも、Checkout は、subscription
モードで作成された支払い方法または setup_
を使用して作成された支払い方法を保存します。これらの決済手段の allow_
値は limited
であるため、購入の返品に備えてこれらの決済手段が事前入力されることがなくなり、カードネットワークの規則およびデータ保護規制に準拠できます。これらのモードによって有効になるデフォルトの動作を変更する方法と、allow_
の動作を変更または上書きする方法をご紹介します。
注
Checkout を使用してカードやその他の決済手段を保存してオフセッションに請求することはできますが、Checkout では保存したカードのみが事前入力されます。保存したカード情報を事前入力する方法をご紹介します。初回の支払いなしで決済手段を保存するには、Checkout の設定モードを使用します。