NFC EMV クレジット カードから公開データを読み取り、抽出するために使用される Java ライブラリ。
Android サンプル アプリは Play ストアで入手できます。
まず、APDU を NFC EMV クレジット カードと交換するためのカスタム プロバイダーを作成する必要があります (サンプルはこちら)。
public class YourProvider implements IProvider {
@ Override
public byte [] transceive ( final byte [] pCommand ) {
// implement this
}
@ Override
public byte [] getAt () {
// implement this to get card ATR (Answer To Reset) or ATS (Answer To Select)
}
}
その後、パーサーのインスタンスを作成し、カードを読み取ります。
// Create provider
IProvider provider = new YourProvider ();
// Define config
Config config = EmvTemplate . Config ()
. setContactLess ( true ) // Enable contact less reading (default: true)
. setReadAllAids ( true ) // Read all aids in card (default: true)
. setReadTransactions ( true ) // Read all transactions (default: true)
. setReadCplc ( false ) // Read and extract CPCLC data (default: false)
. setRemoveDefaultParsers ( false ) // Remove default parsers for GeldKarte and EmvCard (default: false)
. setReadAt ( true ) // Read and extract ATR/ATS and description
;
// Create Parser
EmvTemplate parser = EmvTemplate . Builder () //
. setProvider ( provider ) // Define provider
. setConfig ( config ) // Define config
//.setTerminal(terminal) (optional) you can define a custom terminal implementation to create APDU
. build ();
// Read card
EMVCard card = parser . readEmvCard ();
カード オブジェクトには、読み取られたすべてのデータ (援助、カード番号、有効期限、カードの種類、取引履歴) が含まれます。
Android の場合、IsoDep クラスを使用してプロバイダーを作成できます。
public class Provider implements IProvider {
private IsoDep mTagCom ;
@ Override
public byte [] transceive ( final byte [] pCommand ) throws CommunicationException {
byte [] response ;
try {
// send command to emv card
response = mTagCom . transceive ( pCommand );
} catch ( IOException e ) {
throw new CommunicationException ( e . getMessage ());
}
return response ;
}
@ Override
public byte [] getAt () {
// For NFC-A
return mTagCom . getHistoricalBytes ();
// For NFC-B
// return mTagCom.getHiLayerResponse();
}
public void setmTagCom ( final IsoDep mTagCom ) {
this . mTagCom = mTagCom ;
}
}
< dependency >
< groupId >com.github.devnied.emvnfccard</ groupId >
< artifactId >library</ artifactId >
< version >3.0.1</ version >
</ dependency >
dependencies {
compile ' com.github.devnied.emvnfccard:library:3.0.1 '
}
このライブラリは、Maven セントラルまたは Github リリース タブでダウンロードできます。
Maven または Maven リポジトリを理解できる他の依存関係管理ツールを使用していない場合、EMV-NFC-Paycard-Enrollment を実行するために必要なものは以下のリストです。
プロジェクトをビルドするには、次の手順を実行します。
mvn clean install
バグや機能リクエストは GitHub 問題トラッカーに報告してください。
フォークやプルリクエストも歓迎です。
ミヨー・ジュリアン
著作権 2020 ミヨー ジュリアン。
Apache License バージョン 2.0 (「ライセンス」) に基づいてライセンスされています。ライセンスに準拠する場合を除き、この作品を使用することはできません。ライセンスのコピーは、LICENSE ファイルまたは次の場所で入手できます。
http://www.apache.org/licenses/LICENSE-2.0
適用される法律で義務付けられている場合または書面による同意がない限り、ライセンスに基づいて配布されるソフトウェアは、明示または黙示を問わず、いかなる種類の保証や条件もなく、「現状のまま」で配布されます。ライセンスに基づく許可と制限を規定する特定の言語については、ライセンスを参照してください。