カード決済の実装
カード決済を実装し、支払いを受け付ける
カード決済の実装
カード決済を実装する方法は2つあります。
- 外部リンク型決済を使う
- PAY.JP がホスティングする決済ページ「Checkout v2」を使用し、最小限のコードで実装する方法
- 埋め込み型決済を使う
- 加盟店のサイト上に埋め込む形で支払いフローを管理する「Payment Widgets」を使用する方法
決済の流れ
カード決済は以下の流れで処理されます。
- Payment Flow (支払い管理オブジェクト)APIを作成
- 顧客がカード情報を入力
- 必要に応じて 3Dセキュア認証を実施
- 支払いが承認されると、支払いが確定
オーソリと支払い確定を分離する場合は、capture_method: manual を指定して Payment Flow を作成し、後から Capture API で支払いを確定します。詳細は仮売上(オーソリ)と支払い確定を参照してください。
カード情報の保存
Payment Method (支払い方法)APIをCustomer (顧客)APIに紐付けることで、カード情報を保存して再利用できます。保存されたカードを使えば、次回以降の支払いでカード情報の再入力が不要になります。
詳細は支払い方法の管理を参照してください。
カード固有の制約
カード情報の更新
Payment Method (支払い方法)APIの更新では、カード番号・有効期限・セキュリティコードなどのカード情報は変更できません。更新可能なのは以下のフィールドのみです。
billing_details(請求先情報)metadata
カード情報を変更したい場合は、新しい Payment Method を作成し、既存のものを削除してください。
テストカード
テスト環境では、テストカード番号を使用して決済をテストできます。 詳細はテストカードのページを参照してください。
エラーハンドリング
カード決済で発生する主なエラーと対応方法です。
| エラーコード | 説明 | 対応 |
|---|---|---|
card_declined | カードが利用不可 | 別のカードでの支払いを促す |
expired_card | 有効期限切れ | 有効期限の確認を促す |
invalid_cvc | 不正なセキュリティコード | セキュリティコードの再入力を促す |
processing_error | 決済処理エラー | 時間をおいて再試行 |
詳細はエラーハンドリングを参照してください。