Welcome to our new developer portal! Use the "Ask" button to chat with our AI Agent.
For the complete documentation index, see llms.txt. This page is also available as Markdown.

PPSE をカスタマイズする

概要

EMV Book Bで定義されているように、PPSE(Proximity Payment System Environment)は非接触決済の入口です。各デジタルカードには、トークンプロファイルで定義される独自のPPSEがあります。そこには、対応するアプリケーションラベルと優先順位を伴う、サポートされるアプリケーション識別子(AID)の一覧が含まれます。

NFC Wallet SDKは次を提供します PPSE管理API。 これにより、デジタルウォレットアプリケーションは次のことが可能になります。

  • 取得する PPSE (デジタルカードプロファイルで定義されたデフォルトのPPSE)。

  • 取得する 補助PPSE (co-badgedカード向けの補助デジタルカードプロファイルで定義されたPPSE)。

  • 新しいPPSEをカスタマイズする(カスタムPPSE).

  • 取得またはリセットする カスタムPPSE.

NFC Wallet SDKは次を使用します カスタムPPSE 非接触トランザクション用に定義されている場合。

使用する PPSE Management API co-badgedデジタルウォレットプログラムでポリシーを適用するために。

NFC Wallet SDK 次のみを使用します PPSE または カスタムPPSE。次は使用しません 補助PPSE.

SDK 統合

この PPSE Management API には次が含まれます PPSEFCITemplate クラスと次の DigitalCard 操作:

  • DigitalCard.ppse:トークンプロファイルで定義されたデフォルトのPPSEを取得します。

  • DigitalCard.auxiliaryPPSE:補助デジタルカードプロファイルで定義されたPPSE(co-badgedカード)を取得します。

  • DigitalCard.customPPSE:カスタムPPSEを取得します。返します nil 。定義されていない場合は

  • DigitalCard.setCustomPPSE:カスタムPPSEを設定します。 nil を渡すとクリアします。

カスタムPPSEの作成

カスタムPPSEを次のいずれかの方法で作成します PPSEFCITemplate 次のいずれかの方法で:

  • 既存のPPSEテンプレートを使用する。

  • 生のPPSEバイトを使用する。

  • 一から作成する。

方法1:既存のテンプレートからPPSEを作成する

デジタルカードのPPSEを基にして、的を絞った変更を加えたい場合はこの方法を使用します。

使用する場面:

  • 優先順位やタグなど、既存のPPSEの特定のフィールドをカスタマイズしたい。

  • 選択的な変更を加えつつ、デフォルトのPPSE構造を保持したい。

  • カスタマイズ用のベーステンプレートが必要。

方法2:生のバイトからPPSEを作成する

完全なPPSE応答データがすでにBER-TLV形式で利用可能な場合はこの方法を使用します。

使用する場面:

  • 完全なPPSE応答データが生のバイトとしてすでにあります。

方法3:ゼロからPPSEを作成する

各コンポーネントを個別に定義して、プログラムでPPSE構造を組み立てる必要がある場合はこの方法を使用します。

使用する場面:

  • 既存のバイトデータなしでPPSEデータを作成しています。

  • ディレクトリエントリ、AID、ラベル、その他のPPSEコンポーネントをプログラムで定義する必要があります。

  • コンパイル時の検証を伴う型安全な構築を行いたい。

  • 生のバイトより構造化オブジェクトを優先したい。

DigitalCard PPSE応答を次として公開します PPSEFCITemplate。独自のものも作成できます PPSEFCITemplate。次の例で方法を示します。

カスタムPPSEをクリアする

次を渡して nil カスタムPPSEを削除し、デフォルトのPPSE応答を復元します。

検証ルール

NFC Wallet SDKは、次を呼び出すとカスタムPPSEを検証します DigitalCard.setCustomPPSE。カスタムPPSEがEMV要件とBER-TLVエンコードに従っていることを保証します。

サイズ制限

  • シリアル化されたBER-TLVペイロードは256バイト以下でなければなりません。

  • 内のカスタムタグキー BF0C または 61 は2バイトを超えてはなりません。

必須タグ

あなたの PPSEFCITemplate には次を含める必要があります:

  1. DF名 — タグ 84

  2. 少なくとも1つのディレクトリエントリ — タグ 61 内の BF0C

  3. 各ディレクトリエントリ内のアプリケーション識別子 — タグ 4F

検証に失敗すると、SDKは次をスローします DigitialCard.Error.invaldPPSE(_:) error

AIDロックの制限

を使用してAIDをロックすることは LockStatus.locked 単一ブランドのVisaカードでのみサポートされています。

を設定した場合 LockStatus.locked 未サポートのカードに対して、SDKは次をスローします DigitialCard.Error.clientError(_:) error

最終更新

役に立ちましたか?