首頁 > 解決方案 > 技術(shù)點(diǎn)滴
QPBOC交易,也就是快速的借記貸記。
很多人都容易混淆了QPBOC,PBOC和電子現(xiàn)金、電子錢包的概念。首先,電子錢包早在PBOC2.0的規(guī)范里面就去掉了,在PBOC3.0里面把MSD也去掉了。因此,最新的PBOC3.0規(guī)范里面,定義了三種交易,就是QPBOC,PBOC以及電子現(xiàn)金。
這三個交易的關(guān)系有點(diǎn)錯綜復(fù)雜,PBOC是最基礎(chǔ)的借記貸記流程,電子現(xiàn)金,與PBOC的流程基本一致,純粹是可以扣卡片上的脫機(jī)錢包。而QPBOC是一個相對非常簡單的流程,與電子現(xiàn)金扣同一個脫機(jī)錢包。
下面,就QPBOC的流程,直接把整個正常的脫機(jī)交易通過終端與卡片的交互的APDU分析出來,表明QPBOC的整個交易過程。
1.下面是第一步:選擇環(huán)境
send => 00 A4 04 00 0E 32 50 41 59 2E 53 5953 2E 44 44 46 30 31
recv <= 6F 30 84 0E 32 50 41 59 2E 53 59 532E 44 44 46 30 31 A5 1E BF 0C 1B 61 19 4F 07 A0 00 00 03 33 01 01 50 0B 50 424F 43 20 43 72 65 64 69 74 87 01 01 90 00
可以看到,發(fā)送指令用的是 00 A4,選擇的環(huán)境是PPSE(2PAY.SYS.DDF01).
卡片的響應(yīng)是:
6F : FCI專用模板;
84 : 專用DF文件,也就是我們所選擇的PPSE;
A5 : FCI專用模板;
BF0C : FCI自定義數(shù)據(jù);
61 : 目錄入口(允許有多個61);
4F : DF名稱,可選的AID,下一步選擇AID就可以選擇這個;
50 :應(yīng)用標(biāo)簽,此處是ASC碼,代表:PBOCCredit
87 :應(yīng)用優(yōu)先指示器。
PS:如果有多個61,就可以通過優(yōu)先指示器選擇DF,或者把多個DF對應(yīng)的應(yīng)用標(biāo)簽顯示在屏幕上,給用戶選擇,目前只有一個DF,所以下一步直接選擇這個DF。
2.第二步,選擇應(yīng)用
?send =>00 A4 04 00 07 A0 00 00 03 33 01 01
?recv <=6F 5F 84 07 A0 00 00 03 33 01 01 A5 54 50 0B 50 42 4F 43 20 43 72 65 64 69 7487 01 01 9F 38 18 9F 66 04 9F 02 06 9F 03 06 9F 1A 02 95 05 5F 2A 02 9A 03 9C01 9F 37 04 5F 2D 08 7A 68 65 6E 66 72 64 65 9F 11 01 01 9F 12 0F 43 41 52 4420 49 4D 41 47 45 20 30 30 33 31 BF 0C 05 9F 4D 02 0B 0A 90 00
根據(jù)選擇環(huán)境得到的AID,我們發(fā)送的時(shí)候A404的時(shí)候,選擇了A0 00 00 03 33 01 01
可以看到卡片的返回是:
6F : FCI模板;
84 : DF名稱;(如果卡片支持部分匹配,可能返回的與發(fā)送的不一致)
A5 : FCI專用模板;
50 : 應(yīng)用標(biāo)簽;
87 : 應(yīng)用優(yōu)先指示位;
9F38 : PDOL,在下一步的時(shí)候,會按照這串?dāng)?shù)據(jù),組包,發(fā)送給卡片;
5F2D : 首選語言;
9F11 : 發(fā)卡行代碼表索引;
9F12 : 應(yīng)用首選名稱;
BF0C : 發(fā)卡行自定義數(shù)據(jù)
經(jīng)過這一步,我們確定了選擇A0 00 00 03 33 01 01這個DF,同時(shí)確定了下一步應(yīng)該發(fā)什么數(shù)據(jù)給卡片。
3.第三步,GPO.
send => 80 A800 00 23 83 21 36 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 01 56 00 00 0000 00 01 56 14 05 19 22 11 22 33 44
recv <= 77 81 9C 82 02 70 00 94 08 10 01 0200 18 01 03 01 9F 10 13 07 01 01 03 90 00 00 01 0A 01 00 00 00 99 99 9A D1 9D3A 9F 36 02 00 0D 9F 26 08 03 A6 F4 9F 3E 26 68 4D 9F 4B 60 71 B2 B3 17 28 52 21E1 85 D9 B1 85 D1 BE BD 04 BD 95 FA 18 31 72 47 78 BB DA 6A 4D 9C 74 66 C8 89F8 41 95 D2 C0 93 0F C1 67 FB C6 CD 67 BB 54 5F 50 F3 2C 97 D3 F4 08 0A BC B453 FD 68 99 AC 81 F0 3A 44 9F 0D 80 F6 A5 C6 14 CD A5 1E 3F 4A 5E 8C 0C D1 38EF 2F AA 4E 7D 8A 95 15 90 81 6D 9F 6C 02 30 00 90 00
GPO代表交易的開始,GPO需要把PDOL指令填充好,發(fā)送給卡片。
發(fā)給卡片包括金額,時(shí)間,國家代碼和貨幣代碼等。
可以看到卡片返回:
82 : AIP應(yīng)用交互特征;
94 :應(yīng)用文件定位器;
9F10 : 發(fā)卡行應(yīng)用數(shù)據(jù);
9F36 : ATC應(yīng)用交易計(jì)數(shù)器;
9F26 : 應(yīng)用密文;
9F48 : 簽名的動態(tài)應(yīng)用數(shù)據(jù);
9F6C : 卡片交易屬性;(表明啊卡片要求哪一個CVM)
至此,卡片進(jìn)入預(yù)扣款狀態(tài),根據(jù)卡片響應(yīng),得知卡片已經(jīng)返回脫機(jī)成功的狀態(tài),終端需要把GPO返回的AFL讀完,交易便完成。
4. 第四步,讀記錄。
下面會有多個指令來回,因?yàn)镚PO返回的AFL需要讀取多個記錄。
send => 00 B201 14
recv <=70 81 B0 90 81 80 22 91 03 A5 E3 12 0F2D 28 62 09 11 76 AA 2B D4 E2 4D 69 E7 EE F7 B9 19 5C 91 EA 00 88 AE CF F4 7EDF A0 BE EF 7C 39 1D F3 B0 5F 71 7D CC 06 FF C8 EE FF 90 BA 14 21 2B 8A 52 AD48 B3 32 77 B2 E2 30 D4 0B 3E 76 DC 59 77 89 26 F1 D8 73 9E 10 6C D7 41 DE 06A7 42 3D FB A2 5E 02 F1 2E 54 3D 13 D1 B4 71 80 65 26 02 49 81 B7 D2 6B 4B F6E5 55 86 04 CC C2 89 F5 9E 8A 80 2F 45 FB 3D 9E 67 9F 32 01 03 92 24 8B 64 3D1E AF 2E A7 84 AC 20 53 03 C9 0E 74 5E A2 EF A5 CB F0 2C C4 7D 47 83 3B B7 B27E CC 69 62 38 5A 4B 8F 01 80 90 00
卡片返回:
90 :發(fā)卡行公鑰證書;
9F32 : 發(fā)卡行公鑰模數(shù);
92 :發(fā)卡行公鑰余數(shù);
8F: CA公鑰索引;
send => 00 B202 14
recv <= 70 81 A1 9F 46 81 80 AE 45 C4 2F EAE7 11 15 9E B5 DE 29 B7 F8 D4 37 DE 42 9F 03 B0 35 B1 48 E2 AB 99 BC 14 56 A69A 8C 8B F7 3A 19 08 40 3F 50 5A B4 B9 DD 5E 38 A9 36 67 65 9E 98 38 05 3C C3 D33A FB 82 A6 9F E7 BB E8 8C B0 71 76 20 6A 79 29 06 EB 86 27 69 4F 0A 23 6E 7FCC FB A4 AA 6A 73 A5 50 75 9B 9B EC 72 C6 29 43 AD 05 70 75 45 71 CB E5 AB 583C 46 0A 48 9E B7 F2 5E 5F E2 DF 1E 9B EC D9 E9 82 AD 9F 47 03 01 00 01 9F 480A 89 DD 91 7D 3A 28 8B 7B DD 55 9F 49 03 9F 37 04 9F 4A 01 82 90 00
卡片返回:
9F46 :公鑰模數(shù);
9F47 : 公鑰證書;
9F48 :公鑰余數(shù);
9F49 : 動態(tài)數(shù)據(jù)認(rèn)證數(shù)據(jù)對象列表-DDOL;
9F4A :靜態(tài)數(shù)據(jù)認(rèn)證標(biāo)簽列表;
send => 00 B201 1C
recv <= 70 1B 5A 08 62 28 00 01 00 00 11 175F 24 03 30 12 31 5F 25 03 95 07 01 9F 08 02 00 30 90 00
卡片返回:
5A :應(yīng)用PAN,也就是卡號;
5F24 :應(yīng)用失效日期;
5F25 :應(yīng)用生效日期;
9F08 :應(yīng)用版本號;
send => 00 B202 1C
recv <= 70 3C 5F 34 01 01 5F 28 01 56 9F 0702 FF C0 5F 20 0F 46 55 4C 4C 20 46 55 4E 43 54 49 4F 4E 41 4C 5F 30 02 02 019F 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
卡片返回:
5F34 :應(yīng)用PAN序列號;
5F28 :發(fā)卡行國家代碼;
9F07 :應(yīng)用用途控制;
5F20????????? :持卡人姓名;
5F30 :服務(wù)碼;
9F42 :應(yīng)用貨幣碼
9F63 :產(chǎn)品標(biāo)識信息;
send => 00 B203 1C
recv <= 70 09 9F 74 06 45 43 43 31 31 31 9000
卡片返回:
9F74 :電子現(xiàn)金發(fā)卡行授權(quán)碼;
5.第五步,風(fēng)險(xiǎn)管理。
在最后一條記錄讀完的時(shí)候,卡片會完成扣款流程。
剩下的工作就是終端需要完成快速脫機(jī)動態(tài)數(shù)據(jù)認(rèn)證,即FDDA,也會有相關(guān)的風(fēng)險(xiǎn)管理,比如應(yīng)用用途控制,卡片日期檢查,黑名單檢查。
當(dāng)終端接收到來自卡片的正確的GPO命令響應(yīng),將檢查發(fā)卡行應(yīng)用數(shù)據(jù)(標(biāo)簽“9F10”)來確定卡片提供的密文類型。根據(jù)密文類型,判斷交易拒絕、聯(lián)機(jī)處理或脫機(jī)批準(zhǔn)。
如果上面的都完成,一個QPBOC交易就完成了。
- 中巨偉業(yè) -
相關(guān)案例