このフローはサーバー側(Generate / Inquiry / Remove API の呼び出し)とフロントエンド(
@waffo/payment-sdk によるカード情報の送信)の両方にまたがります。主要なフロー
カードバインドフロー
1
加盟店バックエンドから Generate API を呼び出す
POST /api/v1/tokenization/generate を呼び出し、tokenRequestId、merchantUserId、tokenType: "CARD" などのパラメータを渡します。成功すると tokenSessionId が返されます。詳細は Generate API を参照してください。2
フロントエンドからカード情報を送信する
@waffo/payment-sdk の tokenizationSubmit メソッドを使用して、カードデータを暗号化し Waffo サーバーに送信します:3
カードバインド結果のハンドリング
notifyUrl を通じて加盟店バックエンドに通知を送信し、最終的な tokenId を含みます。加盟店はこの tokenId を保存し、以降の決済に使用する必要があります。代替案:PCI-DSS 加盟店による直接送信
加盟店が PCI-DSS 認証を取得している場合、フロントエンド SDK を使用せずに、Generate API のtokenData フィールドを通じてバックエンドから直接カード番号などの機微情報を送信できます。この場合、API は tokenId を直接返します。
トークンを使用して決済する
tokenId を取得した後、注文作成時に渡すことでカード番号の代わりに使用します:
トークン管理
セキュリティメカニズム
- フロントエンド SDK がカードデータを自動的に暗号化。加盟店サーバーはカード番号の平文に触れない
- すべての API リクエストとレスポンスで SHA256WithRSA 署名検証を使用
- 3DS 認証をサポートし、決済のセキュリティを強化
- PCI-DSS 非認証の加盟店は必ずフロントエンド SDK を使用する必要があり、バックエンドから直接カード番号を渡すことはできません