天天看點

QPBOC封包解析

QPBOC封包解析



1.下面是第一步:選擇環境

send => 00 A4 04 00 0E 32 50 41 59 2E 535953 2E 44 44 46 30 31

recv <= 6F 30 84 0E 32 50 41 59 2E 53 59532E 44 44 46 30 31 A5 1E BF 0C 1B 61 19 4F 07 A0 00 00 03 33 01 01 50 0B 50424F 43 20 43 72 65 64 69 74 87 01 01 90 00

可以看到,發送指令用的是 00 A4,選擇的環境是PPSE(2PAY.SYS.DDF01).

卡片的響應是:

QPBOC封包解析

PS:如果有多個61,就可以通過優先訓示器選擇DF,或者把多個DF對應的應用标簽顯示在螢幕上,給使用者選擇,目前隻有一個DF,是以下一步直接選擇這個DF。

2.第二步,選擇應用

 send =>00 A4 04 00 07 A0 00 00 0333 01 01

 recv <=6F 5F 84 07 A0 00 00 03 3301 01 A5 54 50 0B 50 42 4F 43 20 43 72 65 64 69 7487 01 01 9F 38 18 9F 66 04 9F02 06 9F 03 06 9F 1A 02 95 05 5F 2A 02 9A 03 9C01 9F 37 04 5F 2D 08 7A 68 65 6E66 72 64 65 9F 11 01 01 9F 12 0F 43 41 52 4420 49 4D 41 47 45 20 30 30 33 31 BF0C 05 9F 4D 02 0B 0A 90 00

根據選擇環境得到的AID,我們發送的時候A404的時候,選擇了A0 00 00 03 33 01 01

可以看到卡片的傳回是:

QPBOC封包解析

PDOL清單(在下一步的時候,會按照這串資料,組包,發送給卡片):

QPBOC封包解析

經過這一步,我們确定了選擇A0 00 00 03 33 01 01這個DF,同時确定了下一步應該發什麼資料給卡片。

3.第三步,GPO.

send => 80A80000238321 36000000(終端交易屬性)000000000001(授權金額) 000000000000(其他金額) 0156(終端國家代碼) 0000000000(終端驗證結果) 0156(交易貨币代碼) 140519(交易日期) 22(交易類型) 11 22 33 44(不可預知數) 

recv <= 77 81 9C 82 02 70 00 94 08 10 010200 18 01 03 01 9F 10 13 07 01 01 03 90 00 00 01 0A 01 00 00 00 99 99 9A D19D3A 9F 36 02 00 0D 9F 26 08 03 A6 F4 9F 3E 26 68 4D 9F 4B 60 71 B2 B3 17 28 5221E1 85 D9 B1 85 D1 BE BD 04 BD 95 FA 18 31 72 47 78 BB DA 6A 4D 9C 74 66 C889F8 41 95 D2 C0 93 0F C1 67 FB C6 CD 67 BB 54 5F 50 F3 2C 97 D3 F4 08 0A BCB453 FD 68 99 AC 81 F0 3A 44 9F 0D 80 F6 A5 C6 14 CD A5 1E 3F 4A 5E 8C 0C D138EF 2F AA 4E 7D 8A 95 15 90 81 6D 9F 6C 02 30 00 90 00

終端交易屬性為36000000,則第一個位元組為00110110,表明終端支援DDA,支援持卡人認證,支援發夾行認證。GPO代表交易的開始,GPO需要把PDOL指令填充好,發送給卡片。發給卡片包括金額,時間,國家代碼和貨币代碼等。

可以看到卡片傳回:

QPBOC封包解析

注:9F6C :卡片交易屬性;(表明啊卡片要求哪一個CVM)

AIP:

QPBOC封包解析

AEL:

10 01 02 00(SFI=2,記錄号為01-02)

18 01 03 01(SFI=3,記錄号為01-03)記錄号01用于脫機資料認證

9F10:

07長度1位元組

01分散密鑰索引1位元組

01密文版本号1位元組

03 90 00 00卡片驗證結果(CVR)4位元組

位元組1長度位元組03

位元組2 bit8-7=10不請求第2個GAC

位元組3 bit6-5=01第1個GAC傳回TC

位元組4 bit8-5=0上次交易第2次GAC收到的帶有安全封包的發夾行腳本指令

 01算法辨別1位元組

 0A發夾行自定義長度1位元組

01 00 00 00 99 99 9A D1 9D3A發夾行自定義資料

注意:要檢視本次交易卡片是拒絕/準許/請求聯機的資訊,從9F10中看到。如果沒有9F10,則需要走借貸記流程。如果卡片是支援國密算法,則9F38中會請求DF69,而且終端也支援國密算法,則傳回DF69的值為01,同時9F66的值最後一個位元組為80.

至此,卡片進入預扣款狀态,根據卡片響應,得知卡片已經傳回脫機成功的狀态,終端需要把GPO傳回的AFL讀完,交易便完成。

4.第四步,讀記錄。

下面會有多個指令來回,因為GPO傳回的AFL需要讀取多個記錄。

send => 00 B201 14

recv <=70 81 B0 90 81 80 22 91 03 A5 E312 0F2D 28 62 09 11 76 AA 2B D4 E2 4D 69 E7 EE F7 B9 19 5C 91 EA 00 88 AE CF F47EDF A0 BE EF 7C 39 1D F3 B0 5F 71 7D CC 06 FF C8 EE FF 90 BA 14 21 2B 8A 52AD48 B3 32 77 B2 E2 30 D4 0B 3E 76 DC 59 77 89 26 F1 D8 73 9E 10 6C D7 41 DE06A7 42 3D FB A2 5E 02 F1 2E 54 3D 13 D1 B4 71 80 65 26 02 49 81 B7 D2 6B 4BF6E5 55 86 04 CC C2 89 F5 9E 8A 80 2F 45 FB 3D 9E 67 9F 32 01 03 92 24 8B 643D1E AF 2E A7 84 AC 20 53 03 C9 0E 74 5E A2 EF A5 CB F0 2C C4 7D 47 83 3B B7B27E CC 69 62 38 5A 4B 8F 01 80 90 00

卡片傳回:

QPBOC封包解析

send => 00 B202 14

recv <= 70 81 A1 9F 46 81 80 AE 45 C4 2FEAE7 11 15 9E B5 DE 29 B7 F8 D4 37 DE 42 9F 03 B0 35 B1 48 E2 AB 99 BC 14 56A69A 8C 8B F7 3A 19 08 40 3F 50 5A B4 B9 DD 5E 38 A9 36 67 65 9E 98 38 05 3C C3D33A FB 82 A6 9F E7 BB E8 8C B0 71 76 20 6A 79 29 06 EB 86 27 69 4F 0A 23 6E7FCC FB A4 AA 6A 73 A5 50 75 9B 9B EC 72 C6 29 43 AD 05 70 75 45 71 CB E5 AB583C 46 0A 48 9E B7 F2 5E 5F E2 DF 1E 9B EC D9 E9 82 AD 9F 47 03 01 00 01 9F480A 89 DD 91 7D 3A 28 8B 7B DD 55 9F 49 03 9F 37 04 9F 4A 01 82 90 00

卡片傳回:

QPBOC封包解析

DDOL:

QPBOC封包解析

send => 00 B201 1C

recv <= 70 1B 5A 08 62 28 00 01 00 00 11175F 24 03 30 12 31 5F 25 03 95 07 01 9F 08 02 00 30 90 00

卡片傳回:

QPBOC封包解析

send => 00 B202 1C

recv <= 70 3C 5F 34 01 01 5F 28 01 56 9F0702 FF C0 5F 20 0F 46 55 4C 4C 20 46 55 4E 43 54 49 4F 4E 41 4C 5F 30 02 02019F 42 02 01 56 9F 63 10 11 22 33 44 55 66 77 88 00 00 00 00 00 00 00 00 90 00

卡片傳回:

QPBOC封包解析

注:9F63為産品辨別資訊;

 AUC:

QPBOC封包解析

send => 00 B203 1C 

recv <= 70 09 9F 74 06 45 43 43 31 31 319000

卡片傳回:

9F74:電子現金發夾行授權碼;

5.第五步,風險管理。

在最後一條記錄讀完的時候,卡片會完成扣款流程。

剩下的工作就是終端需要完成快速脫機動态資料認證,即FDDA,也會有相關的風險管理,比如應用用途控制,卡片日期檢查,黑名單檢查。

當終端接收到來自卡片的正确的GPO指令響應,将檢查發夾行應用資料(标簽“9F10”)來确定卡片提供的密文類型。根據密文類型,判斷交易拒絕、聯機處理或脫機準許。

如果上面的都完成,一個QPBOC交易就完成了。