Connect で決済フォームへのリンクを作成
Connect では、連結アカウントに対して決済フォームへのリンクを作成し、必要に応じてその処理の手数料を受け取ることができます。
連結アカウントの決済フォームへリンクを作成すると、支払いを回収するための複数の手段をサポートできます。決済フォームへのリンクは、ダイレクト支払いを使用して連結アカウントに直接作成するができます。また、別の方法として、デスティネーション支払いを使用して連結アカウントへ送金する際にプラットフォームで作成することもできます。こうした決済フォームへのリンクには、プラットフォーム手数料を設定することも可能です。
ダイレクト支払いを使用して決済フォームへのリンクを作成する
連結アカウントに直接請求する決済フォームへのリンクを作成するには、連結アカウントとして認証を受けたときに決済フォームへのリンクを作成します。これを機能させるには、連結アカウントで商品と価格も作成する必要があります。
curl https://api.stripe.com/v1/payment_links \
-u "sk_test_4eC39HqLyjWDarjtT1zdp7dc
:" \
-H "Stripe-Account: " \
-d "line_items[0][price]"= \
-d "line_items[0][quantity]"=1
ダイレクト支払いを使用する場合、連結アカウントが Stripe 手数料、返金、チャージバックのコストを負担します。
デスティネーション支払いを使用して決済フォームへのリンクを作成する
プラットフォームで支払いを実行し、連結アカウントへの自動送金を作成する決済フォームへのリンクを作成するには、transfer_data[destination]
値として連結アカウント ID を指定して、決済フォームへのリンクを作成します。
curl https://api.stripe.com/v1/payment_links \
-u "sk_test_4eC39HqLyjWDarjtT1zdp7dc
:" \
-d "line_items[0][price]"= \
-d "line_items[0][quantity]"=1 \
-d "transfer_data[destination]"=
これが機能するためには、プラットフォームアカウントで商品と価格も作成する必要があります。自動送金を使用するとき、プラットフォームは記録対象のビジネスです。
デスティネーション支払いを実行する場合、Payment Links ではプラットフォームアカウントのブランド設定を決済ページに使用します。詳細については、ブランディングをカスタマイズするのセクションをご覧ください。
デスティネーション支払いと on_behalf_of を使用して決済フォームへのリンクを作成する
on_behalf_of
パラメーターを連結アカウント ID (デフォルトではプラットフォーム) に設定して、デスティネーション支払いを作成することもできます。on_behalf_of
パラメーターは、売上処理加盟店を決定します。これは次の項目に影響します。
- エンドユーザーに表示される明細書表記
- エンドユーザーに表示される住所と電話番号
- 支払いの売上処理通貨
- 顧客に表示される決済ページのブランディング
curl https://api.stripe.com/v1/payment_links \
-u "sk_test_4eC39HqLyjWDarjtT1zdp7dc
:" \
-d "line_items[0][price]"= \
-d "line_items[0][quantity]"=1 \
-d on_behalf_of= \
-d "transfer_data[destination]"=
決済フォームへのリンクで発注された注文のフルフィルメントを実行する
エンドユーザーが決済フォームへのリンクを使用して支払いを完了した後、連結アカウントを有効化して、必要なすべてのフルフィルメントを処理する必要があります。
ダッシュボードで Webhook エンドポイントを構成します。
次に、お客様のサーバー上に HTTP エンドポイントを作成し、完了した支払いを監視します。サンプルのエンドポイントシークレットキー (whsec_...
) は、必ず各自のキーに置き換えてください。
require 'sinatra'
require 'stripe'
set :port, 4242
Stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc'
endpoint_secret = 'whsec_...'
post '/webhook' do
payload = request.body.read
sig_header = request.env['HTTP_STRIPE_SIGNATURE']
event = nil
begin
event = Stripe::Webhook.construct_event(
payload, sig_header, endpoint_secret
)
rescue JSON::ParserError => e
status 400
return
rescue Stripe::SignatureVerificationError => e
status 400
return
end
if event['type'] == 'checkout.session.completed'
session = event['data']['object']
connected_account_id = event['account']
handle_completed_checkout_session(connected_account_id, session)
end
status 200
end
def handle_completed_checkout_session(connected_account_id, session)
puts 'Connected account ID: ' + connected_account_id
puts session.to_s
end
詳細については、フルフィルメントガイドをご覧ください。