2013-05-04 10 views
5

私はこのオンラインオプションを使用してのようなJavaとEMV応答を翻訳する方法を探しています:EMV TLV Javaは機能

6f3a8407a0000000031010a52f500b56495341204352454449548701015f2d086573656e707466729f12074352454449544f9f1101019f38039f1a02:あなたはこのEMV応答のようなものを置く

http://www.emvlab.org/tlvutils/

と完全に表示されますが、私は自分で何かを始めましたが、私たちはおそらく2つの9F38(PDOL)Stringsが2つの同じタグではないことがわかりました。私は不可能だと知っていますが、9Fのタグ終了の値と次のタグの開始点は38になります。私はそれを言います、それは可能ですか?私が自分の機能をやめてしまった主な理由の1つだったのです。

これを行う関数を書いた人はいますか?

ありがとうございます!

答えて

7

https://github.com/binaryfoo/emv-bertlvに対処するためのコードは、トリックを行う必要があります。あなたの例を使用して

、次のコード:

List<DecodedData> decoded = new RootDecoder().decode("6f3a8407a0000000031010a52f500b56495341204352454449548701015f2d086573656e707466729f12074352454449544f9f1101019f38039f1a02", "EMV", "constructed"); 
new DecodedWriter(System.out).write(decoded, ""); 

ウィル出力:

[6F (FCI template)] 8407A0000000031010A52F500B56495341204352454449548701015F...1A02 
[84 (dedicated file name)] A0000000031010 
[A5 (FCI proprietary template)] 500B56495341204352454449548701015F2D086573656E707466729F...1A02 
    [50 (application label)] VISA CREDIT 
    [87 (application priority indicator)] 01 
    [5F2D (language preference)] esenptfr 
    [9F12 (application preferred name)] CREDITO 
    [9F11 (issuer code table index)] 01 
    [9F38 (PDOL - Processing data object list)] 9F1A02 
    9F1A (terminal country code) 2 bytes 
+0

次のコードを使用してデコードすることはできません。 –

0

あなたは正しい軌道に乗っています。テクニックコールTLV(Tag Length Value)を使用して、独自のEMVパーサを簡単に構築できます。あなたの生データはいつもタグで戻ってきます、そしてタグが長さの後に長さを使って値を得ることができます。含まれるすべての短いタグ 方法2:含まれるすべての長いタグ 方法3:含まれているすべての独自のタグので

あなたの生のEMVに渡す

だから、三つの方法

方法1を作成しますタグ:すべてのそれらのトンを通して

6f3a8407a0000000031010a52f500b56495341204352454449548701015f2d086573656e707466729f12074352454449544f9f1101019f38039f1a02

ループhreeメソッドを使用すると、必要なすべての素晴らしい情報が得られます。