2015-01-09 3 views
0

EMV Book_3는 말한다 :올바르게 옵션 명령 메시지를 처리하기 구성하는 방법

CLA : 80
INS : A8
P1 : 00
P2 : 00
LC : VAR
데이터 : 처리 옵션 데이터 개체 목록 (PDOL) 관련 데이터
Le : 00

그리고 내 APDU 명령은 다음과 같습니다 : "80 A8 00 00 0C PDOL 00", PDOL = "9F 66 04 9F 02 06 9F 37 04 5F 2A 02".

수신 : 6A 80 CC는 Visa PayWave 비접촉식입니다. 전체 FCI (제어 정보 파일) 독점 템플릿이다 : 나는 무엇을 누락

"50 0C 56 69 73 61 20 43 6C 61 73 73 69 63 87 01 01 9F 38 0C 9F 66 04 9F 02 06 9F 37 04 5F 2A 02 5F 2D 04 62 67 65 6E" 

? 올바른 처리 옵션 가져 오기 명령은 무엇입니까?

+1

올바르게 PDOL을 형성하는 방법에 대한 [이 답변] (http://stackoverflow.com/a/23892530/2425802) 및 [이 답변] (http://stackoverflow.com/a/23591064/2425802)을 참조하십시오. 카드에서받은 PDOL에 근거한 관련 데이터. –

답변

1

PDOL 태그는 다음 지정된 바이트 수로 지정된 태그가 명령의 끝까지 연결될 데이터를 나타냄을 의미합니다. 질문에서 PDOL 태그 인 9f 38은 다음 0Ch (12d) 바이트가 카드로 보낼 데이터를 나타냄을 지정합니다. 당신은 :

  • 9f 66 04 - 태그 9f 66은 터미널 트랜잭션 한정자를 나타냅니다. 따라서 PDOL은 4 바이트로 코딩 된 터미널 트랜잭션 한정자의 4h (16 진수) 바이트를 가져야합니다.

  • 9f 02 06- 태그 9f 02는 승인 된 금액을 나타냅니다. PDOL 목록에는 승인 된 양이 6h 바이트로 추가되어 있어야합니다.

  • 9F 37 04 - 예측할 수 37 개 스탠드 9F 태그, 따라서 유사 나머지를 번역 4 바이트와 같은 숫자를 인코딩하고 목록

....

에 추가 . 목록은 카드에서받은 태그 데이터에 지정된 순서대로 이루어져야합니다. 귀하의 목록에 TTQ가 제일 먼저 나와야하며, 그 다음으로 승인 된 e.t.c가 있어야합니다. 결과에서 데이터의 전체 크기는 4 + 6 + 4 + 2 = 16 = 10h 바이트가되어야합니다. 따라서 최종 명령은 샘플 데이터로 같을 것이다 :

     <------the data concatenated together---------> 
=> 80 a8 00 00 12 83 10 f3 20 40 00 00 00 00 01 00 00 04 04 06 03 05 08 00 

주의 : LC, 12 시간의 가치, 그리고 그 후 2 바이트를 확인합니다. 16 진수 값 0x83은 Lc 직후에 있어야하며 이후의 바이트는 데이터의 실제 길이, 즉 10h이므로 위에 지정된대로 Lc = 10h + 2 = 12h이어야합니다. 결국 르를 잊지 마라!

+0

피터 감사합니다! 예측할 수없는 숫자의 4 바이트 또는 승인 된 금액의 6 바이트를 읽을 수있는 방법이 있습니까? 아니면 임의의 숫자 만 입력해야합니까? –

+1

이러한 변수는 미리 정의해야하는 변수이므로 트랜잭션 전에 판독기 장치/터미널에 이미 저장되어 있어야합니다. 그런 다음 필요한 곳에 삽입 할 수 있습니다. –

관련 문제