カードの詳細を表示する
概要
このガイドは、D1 SDK を使用してカードの完全な情報(PAN、有効期限、カード所有者名、および CVV2/dCVV2)を安全に表示する方法を説明します。
2つのアプローチがあります:
カード情報を取得して、イシュアアプリケーションの UI で自分でレンダリングする。
データ露出を最小限にするため、レンダリングを D1 SDK に委任する。
PAN、有効期限、カード所有者名、または CVV2/dCVV2 をキャプチャする可能性のあるログ、分析、クラッシュレポートは避けてください。不要になった機密データは常にメモリから消去してください。
ユーザーエクスペリエンス
オプション 1: カード情報を取得する
このアプローチでは、イシュアアプリケーションが次を呼び出します getCardDetails() で完全なカード情報を取得し、レンダリングの責任を負います。
機密性を保護するために、D1 SDK は値をプレーンテキスト文字列ではなくバイト配列として返します。取得できるのは:
PAN
有効期限
カード所有者名(エンドユーザー)— 任意
CVV2 または dCVV2
シーケンス図
前提条件:
エンドユーザーとカードが D1 に登録されていること。
D1 SDK が適切に初期化されていること。
イシュアアプリケーションが D1 SDK のログイン API を呼び出していること。
D1 SDK 統合
カスタム UI/UX とレンダリングライフサイクルに対する完全な制御が必要なイシュアに最適です。メモリ内の保持時間を最小限にし、使用後すぐに wipe() を呼び出してください。
オプション 2: 表示を D1 SDK に委任する
PAN の露出を減らすために、次を使用してください displayCardDetails。 getCardDetailsとは異なり、この API はカードデータを返しません。代わりに UI コンポーネントを CardDetailsUI経由で渡すと、D1 SDK がそれらのテキスト内容を安全に設定します。イシュアアプリケーションはスタイルとレイアウトの完全な制御を保持します。
CardDetailsUI は次を提供します:
setPanMaskCharacterでmaskCardDetailsの PAN マスク文字を設定できます(デフォルト:*).setPanSeparatorCharacterで 4 桁ごとの PAN 区切り文字を設定できます(デフォルト:スペース)。setExpiryDateFormatで有効期限形式を設定できます(デフォルト:MM/YY).insecureCopyToClipboardで PAN をシステムクリップボードにコピーします。推奨されません。
次の値を表示できます:
PAN
有効期限
カード所有者名(エンドユーザー)— 任意
CVV2 または dCVV2
シーケンス図
前提条件:
エンドユーザーとカードが D1 に登録されていること。
D1 SDK が適切に初期化されていること。
イシュアアプリケーションが D1 SDK のログイン API を呼び出しています。
CardDetailsUI は以下を含みます DisplayTextView (Android)と D1DisplayTextField (iOS)、これらはネイティブのサブクラスです TextView および UITextField。露出を制限するために、 getText() は制限されています。
を参照してください Android セキュリティガイドライン で難読化するために DisplayTextView.
D1 SDK 統合
insecureCopyToClipboard は PAN をシステム全体のクリップボードにさらしてしまうため推奨されません。
カード情報のマスクと表示
利便性のために、 CardDetailsUI はカード情報のマスクと表示を可能にします:
maskCardDetailsは詳細をマスクします。showCardDetailsは詳細を表示します。セキュリティのため、これは常にサーバーからデータを再取得します。
ベストプラクティス:短いタイマー(例:1 分)を設定して、自動的に再マスクするために maskCardDetails を呼び出し、露出を減らしてください。
最終更新
役に立ちましたか?