概要
サーバー間決済(S2S)では、ホスト型チェックアウトページの代わりに、自社の決済フォームでカード情報を収集できます。カードデータはJavaScript SDKを使用してブラウザ上で安全にトークン化され、そのトークンをサーバーに送信して決済を作成します。S2S統合にはPCI SAQ A-EP準拠が必要です。PCI準拠レベルが不明な場合は、ホスト型チェックアウトをご利用ください。
仕組み
1
ブラウザでカード情報をトークン化
公開キー(
pk_live_* / pk_test_*)を使用して POST /v1/tokens でカード情報をトークン化します。JavaScript SDKまたはAPI直接呼び出しが使用できます。生のカード番号がサーバーに送信されることはありません。2
決済を作成
tok_* トークンをバックエンドに送信し、シークレットアクセストークンを使用して token パラメータ付きで POST /v1/payments を呼び出します。3
3Dセキュアの処理(必要な場合)
レスポンスのステータスが
requires_action の場合、顧客を redirect_url にリダイレクトして3Dセキュア認証を完了させます。統合手順
1. カード情報のトークン化
決済ページでカード情報を収集し、公開キーを使用してPOST /v1/tokens に送信します。JavaScript SDKを使用するか、APIを直接呼び出すことができます。
JavaScript SDKは便宜上、トークンIDを
id ではなく token として返します。APIを直接呼び出す場合、フィールド名は id です。2. トークンで決済を作成
サーバーサイドで、トークンを使ってPOST /v1/payments を呼び出します。
3. レスポンスの処理
レスポンスのステータスによって次のアクションが決まります:
3Dセキュアの処理:
カード保存と継続決済
S2Sトークン決済時にsave_card: true と customer_id を追加することで、顧客のカード情報を保存できます。決済完了後(3Dセキュアを含む)、カードが保存され、Webhookで payment_method_id が返されます。
リクエスト
boolean
true を指定すると、決済完了後にカード情報が保存されます。string
save_card が true の場合は必須。顧客を識別する一意のID。Webhook
決済完了時のWebhookに、保存されたpayment_method_id が含まれます:
2回目以降の継続決済
保存されたpayment_method_id を使用して、カード入力やトークン化なしで課金できます:
完全な実装例
クライアントサイド(ブラウザ)
サーバーサイド
公開キー
公開キー(pk_test_* / pk_live_*)は、ブラウザからのトークン化リクエストの認証に使用されます。トークンの作成のみに使用でき、決済、顧客情報、その他のAPIリソースにはアクセスできません。
公開キーは加盟店管理画面の 加盟店設定 > API設定 から取得できます。
詳細は認証をご覧ください。