トークン API
概要
トークン APIを使用すると、サーバーで機密性の高いカードデータを処理することなく、クレジットカード情報を安全にトークン化できます。トークンは、課金を作成するために使用できるカードデータへの使い捨ての暗号化された参照です。
トークンとは
トークンは、クレジットカード情報の一時的な使い捨て表現で、以下の特徴があります:
- 使用後に失効 - 各トークンは、課金の作成または顧客への紐付けに一度だけ使用できます
- カードデータの保護 - サーバーが生のカード情報を処理することはありません
- PCIコンプライアンスの実現 - PCIコンプライアンスの範囲を大幅に縮小します
- 即時検証 - トークン化の際にカード情報が検証されます
主な機能
セキュリティ優先
- 公開鍵認証 - クライアントサイドのコードで安全に公開できる公開鍵を使用
- 使い捨てトークン - 課金作成後にトークンを再利用することはできません
- 機密データの非保存 - カードデータがサーバーに触れることはありません
- PCI DSS準拠 - 最も厳格なセキュリティ基準を満たしています
簡単な統合
- クライアントサイドのトークン化 - ブラウザ/モバイルアプリから直接トークンを作成
- Omise.jsライブラリ - 簡単な統合のための構築済みJavaScriptライブラリ
- モバイルSDK - ネイティブiOSおよびAndroid SDKが利用可能
- サーバー間通信 - 必要に応じてサーバーサイドのトークン化用APIも利用可能
柔軟性
- すべてのカードタイプに対応 - Visa、Mastercard、JCBなど
- 3Dセキュアサポート - 自動3DS処理
- カード検証 - カード番号、CVV、有効期限を検証
- 国際対応 - あらゆる国のカードを処理
トークンの仕組み
標準フロー
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ クライアント│ │ Omise.js│ │ お客様の │ │ Omise │
│ ブラウザ │ │ ライブラリ│ │ サーバー │ │ API │
└────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘
│ │ │ │
│ 1. カード情報入力 │ │ │
├──────────────────>│ │ │
│ │ │ │
│ │ 2. トークン作成 │ │
│ │ (公開鍵を使用) │
│ ├──────────────────────────────────────>│
│ │ │ │
│ │ 3. トークン返却 │ │
│ │<──────────────────────────────────────┤
│ │ │ │
│ 4. トークンID送信 │ │ │
├──────────────────────────────────────>│ │
│ │ │ │
│ │ │ 5. 課金作成 │
│ │ │ (秘密鍵を使用)
│ │ ├──────────────────>│
│ │ │ │
│ │ │ 6. 課金結果 │
│ │ │<──────────────────┤
│ │ │ │
│ 7. 結果表示 │ │ │
│<──────────────────────────────────────┤ │
│ │ │ │
実装手順
- クライアントサイド: 支払いフォームでカード情報を収集
- クライアントサイド: Omise.jsを使用して公開鍵でカードデータをトークン化
- クライアントサイド: トークンIDをサーバーに送信(使い捨てなので安全)
- サーバーサイド: 秘密鍵を使用してトークンIDで課金を作成
- サーバーサイド: 支払い結果をクライアントに返却