メインコンテンツへスキップ

概要

カード決済はホスト型チェックアウトを使用します。APIレスポンスのpayment_urlにユーザーをリダイレクトするだけで、カード入力から3Dセキュア認証まで自動的に処理されます。

決済フロー

1

決済作成

POST /v1/payments を呼び出して決済を作成し、payment_url を取得
2

リダイレクト

ユーザーを payment_url にリダイレクト
3

決済完了

決済完了後、設定済みの success_redirect_url または failure_redirect_url に自動リダイレクト

実装例

// 1. APIで決済を作成
const response = await fetch('https://api.sandbox.zafapay.com/v1/payments', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    amount: 1000,
    currency: 'usd'
  })
});

const payment = await response.json();

// 2. ホスト型チェックアウトにリダイレクト
window.location.href = payment.payment_url;

// 3. ユーザーはホストページで決済を完了
// 4. success_redirect_url または failure_redirect_url にリダイレクト

オーソリ & キャプチャ

2段階決済(オーソリ後にキャプチャ)の場合:
// ステップ1: オーソリ
const payment = await createPayment({
  amount: 1000,
  currency: 'usd',
  capture_method: 'manual'  // オーソリのみ
});

// ステップ2: キャプチャ(課金準備完了時)
await fetch(`https://api.sandbox.zafapay.com/v1/payments/${payment.transaction_id}/capture`, {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
  }
});

テストカード

カード番号説明
4242424242424242決済成功
40000025000031553Dセキュア必要
4000000000000002拒否
4000000000000259チャージバック
4000000000009995残高不足
4000000000009987カード紛失
4000000000009979カード盗難
4000000000000069有効期限切れ
4000000000000127CVC不一致
4000000000000119処理エラー
APIパラメータとレスポンスの詳細は、決済作成 APIリファレンスをご覧ください。