2013-05-04 17 views
5

szukam sposobu przełożenia odpowiedź EMV z Java jak z tej opcji online:EMV TLV Java Funkcja

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

gdzie umieścić coś w tej odpowiedzi EMV:

6f3a8407a0000000031010a52f500b56495341204352454449548701015f2d086573656e707466729f12074352454449544f9f1101019f38039f1a02

i pokaże ci wszystko doskonale, zacząłem robić coś sam, ale potem zdaję sobie sprawę, że może jesteśmy Mam dwa ciągi 9F38 (PDOL), nie są potrzebne dwa takie same tagi, bo wiem, że to niemożliwe, ale może wartość tagu kończy się na 9F, a początek następnego tagu wynosiłby 38, co dałoby mi błąd ... Teraz to Wspominam o tym, czy to możliwe? ponieważ był to jeden z głównych powodów, dla których przestałem wykonywać swoją własną funkcję.

Czy któryś z was napisał już taką funkcję?

Dzięki!

Odpowiedz

7

https://github.com/binaryfoo/emv-bertlv powinno załatwić sprawę.

Korzystanie przykład następujący kod:

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

wyświetli:

[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

nie można dekodować, korzystając z następującego kodu. –

0

jesteś na dobrej drodze. Możesz łatwo zbudować własny parser EMV za pomocą wywołania technicznego TLV (Value Length Value). Twoje nieprzetworzone dane zawsze powracają z tagiem, a następnie po długości tagu możesz użyć tej długości, aby uzyskać wartość.

Więc utworzyć trzy metody

metoda 1: Zawiera wszystkie krótkie znaczniki Metoda 2: Zawiera wszystkie długie znaczniki Metoda 3: Zawiera wszystkie własności tagi

Więc kiedy przechodzą w swojej surowej EMV znacznik:

6f3a8407a0000000031010a52f500b56495341204352454449548701015f2d086573656e707466729f12074352454449544f9f1101019f38039f1a02

pętli wszystkich tych T Hree metody, da ci wszystkie miłe informacje, które potrzebujesz.