支払いページを作成する
ロゴ、画像、カラーをカスタマイズします。
Apple Pay および Google Pay のサポートが組み込まれています。
デモを参照して、オンラインで提供されているサンプルをご確認ください。
決済を受け付ける
注
プラットフォームプロフィールを参照して、ダイレクト支払いまたはデスティネーション支払いのどちらがお客様の事業に適しているかを判断してください。
デスティネーション支払い
この例では、プラットフォームは、不動産物件を賃貸する住宅所有者向けに支払いを作成する住宅賃貸マーケットプレイスです。デスティネーション支払いは、他のアプリケーションでも使用できます。
Checkout セッションを作成する クライアントおよびサーバー
Checkout セッションは、ラインアイテム、注文金額と通貨、および受け付け可能な決済手段など、オンライン支払いフォームで顧客に表示する内容を制御します。
サーバー側のエンドポイントを呼び出して Checkout セッションを作成する購入ボタンをウェブサイトに追加します。
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>
サーバーで、Stripe の API に以下の呼び出しを行います。Checkout セッションを作成したら、レスポンスで返された URL に顧客をリダイレクトします。
curl https://api.stripe.com/v1/checkout/sessions \ -u "
:" \ -d "line_items[0][price]"=sk_test_4eC39HqLyjWDarjtT1zdp7dc\ -d "line_items[0][quantity]"=1 \ -d "payment_intent_data[application_fee_amount]"=123 \ -d "payment_intent_data[transfer_data][destination]"={{PRICE_ID}}\ -d mode=payment \ --data-urlencode success_url="https://example.com/success" \ --data-urlencode cancel_url="https://example.com/failure"{{CONNECTED_ACCOUNT_ID}}
payment_intent_data[transfer_data][destination]
: この引数は、支払いがデスティネーション支払いであることを示します。デスティネーション支払いでは、支払いがプラットフォームで処理され、売上が即時かつ自動的に連結アカウントの保留中の残高に送金されます。賃貸住宅の例では、顧客がプラットフォームを使用して支払い、住宅所有者がプラットフォームで支払いを受ける機能を構築します。line_items
: この引数は、顧客が購入しようとしているアイテムを表します。このアイテムは Stripe がオンラインで提供するユーザーインターフェイスに表示されます。success_url
: この引数は、支払いを完了したユーザーのリダイレクト先を示します。cancel_url
: この引数は、キャンセルをクリックしたユーザーのリダイレクト先を示します。payment_intent_data[application_fee_amount]
: この引数は、プラットフォームが取引で受け取る予定の金額を指定します。支払いがキャプチャーされると、プラットフォームから、transfer_data[destination]
で指定された連結アカウントに支払い金額の全額が即時送金されます。その後application_fee_amount
がプラットフォームに返金され、プラットフォームの金額から Stripe 手数料が差し引かれます。
デスティネーション支払いを実行する場合、Checkout ではプラットフォームアカウントのブランド設定を使用します。詳細については、ブランディングをカスタマイズするセクションをご覧ください。
注
このセッションは、デスティネーション支払いを作成します。送金のタイミングを管理したり、1 回の支払いの売上を複数の当事者に送金したりする必要がある場合は、代わりに支払いと送金別方式を使用してください。
フルフィルメントを実行する サーバー側
支払いの完了後、お客様側で必要なフルフィルメントを処理する必要があります。たとえば、前払いを必要とする住宅賃貸会社は、支払いが成功した後に、住宅所有者と賃借人を関連付けます。
注意
次に挙げる理由により、購入のフルフィルメントの際は、success_url
パラメーターへのリダイレクトのみに依存しないでください。
- 悪意を持つユーザが、支払いをせずに
success_url
に直接アクセスし、商品やサービスにアクセスできるようになる可能性があります。 - 顧客が支払いの成功後に
success_url
に到達するとは限りません。リダイレクトが発生する前に、顧客がブラウザータブを閉じることがあります。
ダッシュボードで (「お客様のアカウントから」イベント用に) Webhook エンドポイントを構成します。
次に、お客様のサーバ上に HTTP エンドポイントを作成し、完了した支払いを監視し、売り手またはサービスプロバイダが購入内容をフルフィルメントできるようにします。サンプルのエンドポイントシークレットキー (whsec_...
) は、必ず各自のキーに置き換えてください。
# Using Sinatra. require 'sinatra' require 'stripe' set :port, 4242 # Set your secret key. Remember to switch to your live secret key in production. # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
# If you are testing your webhook locally with the Stripe CLI you # can find the endpoint's secret by running `stripe listen` # Otherwise, find your endpoint's secret in your webhook settings in # the Developer Dashboard endpoint_secret = 'whsec_...' post '/webhook' do payload = request.body.read sig_header = request.env['HTTP_STRIPE_SIGNATURE'] event = nil # Verify webhook signature and extract the event. # See https://stripe.com/docs/webhooks#verify-events for more information. begin event = Stripe::Webhook.construct_event( payload, sig_header, endpoint_secret ) rescue JSON::ParserError => e # Invalid payload. status 400 return rescue Stripe::SignatureVerificationError => e # Invalid Signature. status 400 return end if event['type'] == 'checkout.session.completed' session = event['data']['object'] handle_completed_checkout_session(session) end status 200 end def handle_completed_checkout_session(session) # Fulfill the purchase puts session.to_s end'sk_test_4eC39HqLyjWDarjtT1zdp7dc'
詳細は、Checkout のフルフィルメントガイドをご覧ください。
Webhook をローカルでテストする
Stripe CLI を使用すると、Webhook をローカルでテストできます。
まだインストールしていない場合、まずマシンに Stripe CLI をインストールします。
次に、ログインするために、コマンドラインで
stripe login
を実行し、手順に従います。最後に、連結アカウントでシミュレートされたイベントをローカルホストで受信できるようにするために、1 つの端末ウィンドウで
stripe listen --forward-to localhost:{PORT}/webhook
を実行し、別の端末ウィンドウでstripe trigger --stripe-account={{CONNECTED_STRIPE_ACCOUNT_ID}} checkout.session.completed’
を実行します (あるいはその他のサポートされているイベントをトリガーします) 。
不審請求の申請
お客様は支払いの売上処理加盟店であるため、お客様のプラットフォームは不審請求に対する責任を負います。不審請求に対応するためのベストプラクティスを把握しておく必要があります。
サブスクリプションを作成する
連結アカウントで、サブスクリプションを使用して継続支払いを作成できます。サブスクリプションはダイレクト支払いを使用して作成されます。オプションで application_fee_percent を指定して、各インボイスの支払いに対する手数料の割合をプラットフォームに指示できます。
Checkout ページでは連結アカウントのブランド設定が使用されます。これには、ビジネス名、アイコン、ロゴ、カラーが含まれます。詳細については、ブランディングをカスタマイズするのセクションをご覧ください。
注
Checkout セッションに、1 回限りのラインアイテムと継続プランの組み合わせを含めることができます。この場合、application_fee_percent
は 1 回限りのアイテムと継続アイテムの両方に適用されます。
Checkout セッションを作成する クライアントおよびサーバー
Checkout セッションは、ラインアイテム、注文金額と通貨、および受け付け可能な決済手段など、Stripe のオンライン決済ページで顧客に表示する内容を制御します。
サーバー側のエンドポイントを呼び出して Checkout セッションを作成する購入ボタンをウェブサイトに追加します。
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>
サーバー側で、Stripe API に以下の呼び出しを行います。Checkout セッションを作成したら、レスポンスで返された URL に顧客をリダイレクトします。
curl https://api.stripe.com/v1/checkout/sessions \ -u
: \ -d "line_items[][price]"="{{PRICE_ID}}" \ -d "line_items[][quantity]"=1 \ -d "subscription_data[application_fee_percent]"=10 \ -d "mode"="subscription" \ -d "success_url"="https://example.com/success" \ -d "cancel_url"="https://example.com/cancel" \ -H "Stripe-Account: {{CONNECTED_STRIPE_ACCOUNT_ID}}"sk_test_4eC39HqLyjWDarjtT1zdp7dc
ブランディングをカスタマイズする
プラットフォームおよび Stripe ダッシュボードにアクセスできる連結アカウントは、ブランディング設定を使用して、支払いページのブランディングをカスタマイズできます。デスティネーション支払いを実行する場合、Checkout はプラットフォームアカウントのブランド設定を使用します。ダイレクト支払い、または on_behalf_of
を使用したデスティネーション支払いの場合、Checkout は連結アカウントのブランド設定を使用します。プラットフォームは、Accounts API を使用して、Express ダッシュボードにアクセスできる、または Stripe がホストするダッシュボードにアクセスできない連結アカウントのブランド設定を行うことができます。
Account Update API は、ブランディングに関する次のパラメーターを受け取ります。
icon
: Checkout ページのヘッダーにあるビジネス名の横に表示されます。logo
: 指定した場合、Checkout ページのヘッダーに、アイコンとビジネス名の代わりに表示されます。primary_color
: Checkout ページの背景色として使用されます。secondary_color
: Checkout ページのボタンの色として使用されます。
curl https://api.stripe.com/v1/accounts/{{CONNECTED_STRIPE_ACCOUNT_ID}} \ -u "
:" \ -d "settings[branding][icon]"=file_123 \ -d "settings[branding][logo]"=file_456 \ --data-urlencode "settings[branding][primary_color]"="#663399" \ --data-urlencode "settings[branding][secondary_color]"="#4BB543"sk_test_4eC39HqLyjWDarjtT1zdp7dc
決済手段を有効にする
決済手段の設定を表示し、サポートする決済手段を有効にします。カード支払い、Google Pay、Apple Pay はデフォルトで有効化されていますが、決済手段は必要に応じて有効または無効に設定できます。
決済フォームを表示する前に、Stripe は通貨、決済手段の制約、その他のパラメーターを評価し、対応する決済手段のリストを決定します。コンバージョン率の向上につながり、通貨と顧客の場所に最も関連性の高い決済手段が優先的に表示されます。優先度の低い決済手段は、オーバーフローメニューの下に隠れた状態になります。