CPU卡电子现金qPBOC交易流程记录
步驟1:選非接觸式支付系統環境(PPSE)
選PPSE(使用文件名稱“2PAY.SYS.DDF01”來選擇PPSE) 00 A4 04 00(04 00代表使用DF名稱選擇) + 長度LC(0E) + “2PAY.SYS.DDF01”
00a4 0400 0e 325041592e5359532e4444463031(2PAY.SYS.DDF01的16進制ascii碼)
返回數據
6F30840E325041592E5359532E4444463031A51EBF0C1B61194F08A000000333010101500A50424F432044454249548701019000
TLV格式 標簽、長度、值(Tag Length Value)
標簽第一個字節后5個bit都為1時,標簽為2個字節
6F 30 “FCI模板”
84 0E 325041592E5359532E4444463031 “DF名(專用文件名):2PAY.SYS.DDF01”
A5 1E “FCI(File Control Information)專用模板”
BF0C 1B “FCI發卡行自定義數據”
61 19 “目錄入口”
4F 08 A000000333010101 “DF名(AID)”
50 0A 50424F43204445424954 “應用標簽:PBOC DEBIT”
87 01 01 “應用優先指示器”
90 00 指令執行成功
注:AID解析:
a0 00 00 03 33 // 注冊的應用提供商標識(RID)長度為5字節,唯一地表示應用提供商,根據GB/T 16649.5分配
01 01 01 // 最長為11字節的可選域,由應用提供商定義。
步驟2:選AID
根據上面的應答 a000000333010101
發送應用選擇命令 00a4040008a000000333010101
返回數據
6F438408A000000333010101A537500A50424F432044454249548701019F38189F66049F02069F03069F1A0295055F2A029A039C019F37045F2D027A68BF0C059F4D020B0A9000
6F 43 “FCI模板”
84 08 A000000333010101 “DF名(專用文件名):A000000333010101”
A5 37 “FCI(File Control Information)專用模板”
50 0A 50424F43204445424954 “應用標簽:PBOC DEBIT”
87 01 01 “應用優先指示器”
9F38 18 “PDOL:處理選項數據對象列表”
9F66 04 “終端交易屬性”
9F02 06 “授權金額”
9F03 06 “其它金額”
9F1A 02 “終端國家代碼”
95 05 “終端驗證結果(TVR)”
5F2A 02 “交易貨幣代碼”
9A 03 “交易日期”
9C 01 “交易類型”
9F37 04 “不可預知數”
5F2D 02 7A68 “首選語言”
BF0C 05 “FCI發卡行自定義數據”
9F4D 02 0B0A “記錄入口:提供交易記錄的SFI(短文件標識符)”
9000 指令執行成功
步驟3:讀錢包余額
指令:80ca9f7900
返回數據
9F79060000000007979000
9F79 06 000000000797 “電子現金余額:7.97元”
9000 執行成功
步驟4:應用初始化(GPO:Get Processing Options獲取處理選項)
80a80000238321
后面為填充PDOL的數據
28000000 “04終端交易屬性”
000000000001 “06授權金額”
000000000000 “06其它金額”
0156 “02終端國家代碼”
0000000000 “05終端驗證結果(TVR)”
0156 “02交易貨幣代碼”
140315 “03交易日期”
00 “01交易類型”
5f2d027a “04不可預知數”
80a8000023832128000000000000000001000000000000015600000000000156140315005f2d027a
返回數據
775682027C00940C1005080118010200200202009F360200509F2608304D8792EC199BD19F101307080103900000010A01000000079606CC14AE57136228480018200564971D23112217903030000F5F3401009F6C0220009000
77 56 “模板”
82 02 7C00 “AIP:應用交互特征Application Interchange Profile”
94 0C 100508011801020020020200 “AFL:應用文件定位器Application File Locator”
9F36 02 0050 “ATC:應用交易計數器Application Transaction Counter”
9F26 08 304D8792EC199BD1 “應用密文”
9F10 13 07080103900000010A01000000079606CC14AE “發卡行應用數據”
57 13 6228480018200564971D23112217903030000F “2磁道等價數據”
5F34 01 00 “應用PAN序列號”
9F6C 02 2000 “卡片交易屬性”
9000 執行成功
注:
AIP:
7C = 0x0111 1100
字節1:
位8:1=RFU
位7:1=支持SDA—支持
位6:1=支持DDA—支持
位5:1=支持持卡人認證—支持
位4:1=執行終端風險管理—支持
位3:1=支持發卡行認證—支持
位2:RFU(0)
位1:1=支持CDA—不支持
字節2:RFU(“00”)
AFL:
10 05 08 01
18 01 02 00
20 02 02 00
文件的短文件標識符(SFI) + 第1個和最后一個要讀取記錄的記錄號 + 用于保存SDA和DDA數據的記錄個數
步驟5:讀取AFL指定的記錄
00b2051400
返回數據
Send APDU = 0x0000 run time = 21
para1 = 80
para2 = 704C5F25030001015F24032311285A0A6228480018200564971F5F3401009F0702FF008E0C00000000000000001E031F009F0D05D8603CA8009F0E0500108000009F0F05D8683CF8005F280201569000
70
4C “長度”
5F25 03 000101 “生效日期:00年01月01日”
5F24 03 231128 “失效日期:23年11月28日”
5A 0A 6228480018200564971F “標簽:持卡人有效卡號”
5F34 01 00 “卡中使用同一個賬號的不同應用”
9F07 02 FF00 “標簽:應用用途控制. 含義如下:標明發卡行指定的卡片應用上的一些限制,包括地域使用和服務類型等。”
字節1:
位8:1=國內現金交易有效
位7:1=國際現金交易有效
位6:1=國內商品有效
位5:1=國際商品有效
位4:1=國內服務有效
位3:1=國際服務有效
位2:1=ATM 有效
位1:1=除ATM 外的終端有效
字節2:
位8:1=允許國內返現
位7:1=允許國際返現
位6–1:RFU(000000)
JR/T 0025 限制:字節1 中,位4,6 值相同;位3,5 值相同
8E 0C “標簽:持卡人驗證方法(CVM)列表”
00000000000000001E031F00
含義如下:按照優先順序列出卡片應用支持的所有持卡人驗證方法
注:一個應用中可以有多個CVM 列表,例如一個用于國內交易,一個用于國際交易
字節1–4:金額X(二進制)
字節5–8:金額Y(二進制)
字節9(CVM Code):
位 8:0=只有符合此規范的取值(如果為1,說明有自定義的值)
位 7:1=如果此CVM 失敗,應用后續的;0 = 如果此CVM 失敗,則持卡人驗證失敗
位 6–1(CVM Type):
000000=CVM 失敗處理
000001=卡片執行明文PIN 核對
000010=聯機加密PIN 驗證
000011=卡片執行明文PIN 核對+簽名(紙上)
000100=保留
000101=保留
011110=簽名(紙上)
011111=無需CVM
000110–011101=保留給加入的支付系統
100000–101111=保留給各自獨立的支付系統
110000–111110=保留給發卡行
111111=RFU
JR/T0025 定義:
100000 =持卡人證件出示
字節10(CVM Condition Code):
00=總是
01=如果是ATM 現金交易
02=如果不是ATM 現金或有人值守現金或返現交易
03=如果終端支持這個CVM
04=如果是人工值守現金交易
05=如果是返現交易
06=如果交易貨幣等于應用貨幣代碼而且小于X值
07=如果交易貨幣等于應用貨幣代碼而且大于X值
08 =如果交易貨幣等于應用貨幣代碼而且小于Y值
09=如果交易貨幣等于應用貨幣代碼而且大于Y值
0A–7F:RFU
80–FF:RFU 保留給各個支付系統下一個CVM 用另兩個CVM 碼和CVM 條件字節表示
9F0D 05 D8603CA800 “標簽:發卡行行為代碼(缺省)含義:指定當交易請求聯機但是終端不能完成練級上送的交易拒絕的條件”
9F0E 05 0010800000 “標簽:發卡行行為代碼(拒絕)”
9F0F 05 D8683CF800 “標簽:發卡行行為代碼(練級)”
5F28 02 0156 “標簽:發卡行國家代碼。0156”
9000
00b2061400
返回數據
Send APDU = 0x0000 run time = 34
para1 = 185
para2 = 7081B49F4681B0E7D93795CB88C70328EF5ACE68D16411A130611A3741C9DA9011F79B1CB6E009A7552816484334F74371018F21F98BFA3AF09B336E4D9B0ACF43F10B6C5358EBF3F121E05172534F61999A998722625F75291ADC456EAE5AE8EF33693716E4BBDA64679EF732D1AE845D76B8845BD8A6C537023A7FEFE23FDF25CAC3896CBED47FB290E0FB6FB370FA003B565B63A8D1FD3FE8330F0E6DF2D828A65918CE322EB16D53DFDD9551B3CF16DA75A4F988979000
70
81B4
9F4681B0 “9F46發卡行認證過的IC卡公鑰”
E7D93795CB88C70328EF
5ACE68D16411A130611A
3741C9DA9011F79B1CB6
E009A7552816484334F7
4371018F21F98BFA3AF0
9B336E4D9B0ACF43F10B
6C5358EBF3F121E05172
534F61999A998722625F
75291ADC456EAE5AE8EF
33693716E4BBDA64679E
F732D1AE845D76B8845B
D8A6C537023A7FEFE23F
DF25CAC3896CBED47FB2
90E0FB6FB370FA003B56
5B63A8D1FD3FE8330F0E
6DF2D828A65918CE322E
B16D53DFDD9551B3CF16
DA75A4F98897
9000
00b2071400
返回數據
Send APDU = 0x0000 run time = 11
para1 = 21
para2 = 70119F4701039F480A8EBA4C29823E07D6618D9000
70
11
9F470103 “IC卡公鑰指數,IC卡公鑰指數用于驗證簽名的動態應用數據”
9F480A8EBA4C29823E07D6618D “IC卡公鑰余數,沒有放入IC卡公鑰證書的IC卡公鑰部分”
9000
00b2081400
返回數據
Send APDU = 0x0000 run time = 35
para1 = 197
para2 = 7081C09381B0CB5004E7D453F024ADC1E09E18BAB57C34D50F5D4BDA95CAD06D18D7F9738F80C719E8ACF34D9AF1DCAA018D879C69DC2CB2DD203E5BF0A9763C5796551C349DA2262133104FDCCEB94D9544AD172151BBFB438430AB947D2A13B18C10D95B1F7E3214EA90A4C29005B733EC9F6B6EAD3C940364C6B4F5A9B60B772581B4808B64555015C1216E4EAA5F2BAA48B456775180415616F825C32E9B48BFBC8BFF904D248517B61D5FFAA55705CF60566B589F4A01829F74064543433030319000
7081C0 “發卡行簽名的數據簽名。用卡片內的指定數據生成。在SDA過程中由終端驗證。”
9381B0
CB5004E7D453F024ADC1
E09E18BAB57C34D50F5D
4BDA95CAD06D18D7F973
8F80C719E8ACF34D9AF1
DCAA018D879C69DC2CB2
DD203E5BF0A9763C5796
551C349DA2262133104F
DCCEB94D9544AD172151
BBFB438430AB947D2A13
B18C10D95B1F7E3214EA
90A4C29005B733EC9F6B
6EAD3C940364C6B4F5A9
B60B772581B4808B6455
5015C1216E4EAA5F2BAA
48B456775180415616F8
25C32E9B48BFBC8BFF90
4D248517B61D5FFAA557
05CF60566B58
9F4A0182 “列出基本數據對象標簽,標簽的值包括在簽名的靜態應用數據中或IC卡公鑰證書中”
9F7406454343303031 電子現金發卡行授權碼“ECC001”
9000
00b2011c00
返回數據
Send APDU = 0x0000 run time = 34
para1 = 184
para2 = 7081B39081B065012046010DF6718050311B695E48E07380FCBBFBE0E6922F37C8E2BB5A02B3C76707D786E1BE47E6BDF4DD9AF032BA0426519E88A10C6AD4240F513A47077E07B4F1BCD51DD6BB57E63692C989A7B195EACA662D0E8729596E623A0CE82C4A1AC54122A7C008604929E3527DCD9AA6192AB80B667B6E503824C222BEA8939AF192D05042E22777746638CD513EB382E72FE8124D52ECABD92FE153E989CE8C3D3862520DD013C19D4A796FCCE5FE489000
7081B3 “發卡行公鑰證書,CA認證過的發卡行公鑰。用于脫機數據認證。”
9081B0
65012046010DF6718050
311B695E48E07380FCBB
FBE0E6922F37C8E2BB5A
02B3C76707D786E1BE47
E6BDF4DD9AF032BA0426
519E88A10C6AD4240F51
3A47077E07B4F1BCD51D
D6BB57E63692C989A7B1
95EACA662D0E8729596E
623A0CE82C4A1AC54122
A7C008604929E3527DCD
9AA6192AB80B667B6E50
3824C222BEA8939AF192
D05042E22777746638CD
513EB382E72FE8124D52
ECABD92FE153E989CE8C
3D3862520DD013C19D4A
796FCCE5FE48
9000
00b2021c00
返回數據
Send APDU = 0x0000 run time = 15
para1 = 55
para2 = 70339F49039F37049F3201039224339533AD3FBCC98B0780873146ECC8FEFFBB3CE540B4CE74B6BCE9BD255BEBE3AE9B647B8F01039000
7033
9F49039F3704 “動態數據認證數據對象列表。在內部認證命令中需要終端送到卡片中的數據列表,包括數據對象的標簽和長度”
9F320103 “發卡行公鑰指數,用來驗證簽名的靜態應用數據和IC卡公鑰證書”
9224339533AD3FBCC98B0780873146ECC8FEFFBB3CE540B4CE74B6BCE9BD255BEBE3AE9B647B
“發卡行公鑰余數,沒有方式發卡行公鑰證書中的發卡行公鑰部分”
8F0103 “在SDA和DDA過程中和RID一起使用,用來表示CA公鑰(CA公鑰索引PKI)”
9000
00b2022400
返回數據
Send APDU = 0x0000 run time = 38
para1 = 162
para2 = 70819D9F4B81909029617DC820D6F890609E3C3671DB5828C73E19ED00155D02D5CEEC0D210EC94AC0584589C1C3149AD2E016F5F1CDC1CE07F02208B7468D87520D11F9F7D82B2D2C6547E03FA7CB4691B5255A337830059C85FF62D40ED3CE853A2BB17617C4E1C6440D8BEC9031112540C6D3BCCDF8B536FFE777AF621800F8C5E288A9ED80A3DD9B8A2A6A45C8D33E998B936F0AC99F5D060000000007969000
70819D “簽名的動態應用數據,卡片生成的動態數據簽名。在DDA過程中有終端驗證”
9F4B8190
9029617DC820D6F89060
9E3C3671DB5828C73E19
ED00155D02D5CEEC0D21
0EC94AC0584589C1C314
9AD2E016F5F1CDC1CE07
F02208B7468D87520D11
F9F7D82B2D2C6547E03F
A7CB4691B5255A337830
059C85FF62D40ED3CE85
3A2BB17617C4E1C6440D
8BEC9031112540C6D3BC
CDF8B536FFE777AF6218
00F8C5E288A9ED80A3DD
9B8A2A6A45C8D33E998B
936F0AC9
9F5D06000000000796
9000
注:
獲取交易日志:
交易日志的推薦值為0x0B(短文件標識符SFI)
5
00b2015c00
00b2025c00
返回數據
Send APDU = 0x0000 run time = 13
para1 = 47
para2 = 131222092330000000000600000000000000015601564142435F5445524D494E414C000000000000000060000E9000
para2 = 131222091834000000000200000000000000015601564142435F5445524D494E414C000000000000000060000B9000
131222 交易日期
092330 交易時間
000000000600 授權金額
000000000000 其它金額
0156 終端國家代碼
0156 交易貨幣代碼
4142435F5445524D494E414C0000000000000000 商戶名稱ABC_TERMIDAL
60 交易類型
000E 應用交易計數器(ATC)
9000
131222
091834
000000000200
000000000000
0156
0156
4142435F5445524D494E414C0000000000000000
60
000B
9000
總結:選ppse,進入非接支付環境——根據返回的AID選擇應用——查詢初始余額——根據返回的APDU,填充好GPO指令后發送,其中扣款金額
為9F02授權金額——GPO返回AFL,tag為94,4字節一組,根據返回的AFL讀取卡片指定的文件——查詢扣款后余額,成功的話余額會變化
總結
以上是生活随笔為你收集整理的CPU卡电子现金qPBOC交易流程记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: debian apt-get联网安装my
- 下一篇: SQL语句:从一个表里按年份统计条目数