ectonpay消费apple pay是什么意思思?

通联Toppay消费报文解读 - CSDN博客
通联Toppay消费报文解读
Accept TCP connection from : 192.168.1.189
Left In Data(443 bytes):
01 B9 60 06 03 00 00 80 20 00 00 00 00 39 39 30 35 38 34 30 34 38 31 36 36 30 32 35 30 30 30 30 30 30 30 31 33 30 30 30 30 30 30 30 30 30 30 30 30 30 33 30 30 30 30 30 30 30 31 39 39 30 35 38 34 30 34 38 31 36 36 30 32 35 30 30 30 30 30 30 30 30 02 00 70 24
06 C0 20 C4 9A 31 16 9B 6D AC 2A 86 78 0A AC DD F2 65 E5 C6 9D E0 2B 00 90 00 00 00 00 00 00 01 00 00 80 22 10 07 10 00 00 00 06 24 95 01 64 E8 97 32 5D A8 62 95 61 A1 EB B6 35 EC 84 6D B0 79 AD 69 A6 7C 30 30 30 30 30 30 30 31 39 39 30 35 38 34 30 34 38 31
36 36 30 32 35 00 10 5F 52 07 30 33 02 20 02 20 02 31 35 36 C9 92 3D 3E 6A 61 B2 00 26 00 00 00 00 00 00 00& 00 57 41 32 30 35 32 30 31 30 30 32 30 34 30 32 30 31 36 30 30 30 30 30 31 30 34 38 35 33 30 30 37 32 36 30 33 30 30 36 33 37 34 36 31 32 30 35 30
30 38 31 37 30 37 39 39 20 20 00 19 22 00 00 03 00 05 00 00 00 00 36 32 39 36 41 30 36 43 &
Connecting to server host.........OK
Sending data to server............OK
Receiving header from server......OK
Receiving data from server........OK
Left Out Data(1032 bytes):
04 06 60 00 00 06 03 80 20 00 00 00 00 39 39 30 35 38 34 30 34 38 31 36 36 30 32 35 30 30 30 30 30 30 30 31 33 30 30 30 30 30 30 30 30 30 30 30 30 30 33 30 30 30 30 30 30 30 31 39 39 30 35 38 34 30 34 38 31 36 36 30 32 35 30 30 30 30 30 30 30 30 02 10 30 3C
06 C1 0A C6 8A 13 00 90 00 00 00 00 00 00 01 00 00 80 20 56 40 10 27 22 10 07 10 00 00 00 06 08 99 99 00 01 38 30 30 30 34 39 35 30 39 38 31 38 30 30 30 30 30 30 30 30 30 31 39 39 30 35 38 34 30 34 38 31 36 36 30 32 35 00 85 5F 57 2E 31 31 31 37 35 34 39 39
30 30 30 30 30 36 32 30 32 35 02 D5 D0 C9 CC D2 F8 D0 D0 20 20 02 34 38 32 31 30 30 30 31 02 49 02 30 02 02 02 02 5F 51 09 BD BB D2 D7 B3 C9 B9 A6 02 5F 55 15 30 30 30 30 30 33 02 30 30 30 30 38 30 02 31 30 32 37 02 30 02 07 29 8F 03 82 02 D4 10 B0 E6 B1 BE
3A 53 2D 4C 44 41 38 2D 4E 30 30 56 34 2E 30 31 37 30 37 39 39 0A C9 CC BB A7 C3 FB 3A B4 F3 D0 C5 CD A8 CF EE C4 BF B2 E2 CA D4 BA C5 0A C9 CC BB A7 BA C5 3A 39 39 30 35 38 34 30 34 38 31 36 36 30 32 35 0A D6 D5 B6 CB BA C5 3A 30 30 30 30 30 30 30 31 20 20
B2 D9 D7 F7 D4 B1 3A 33 30 33 0A B7 A2 BF A8 BB FA B9 B9 3A D5 D0 C9 CC D2 F8 D0 D0 20 20 0A CA D5 B5 A5 BB FA B9 B9 3A 34 38 32 31 30 30 30 31 0A 7E BF A8 BA C5 3A 36 32 31 34 38 33 2A 2A 2A 2A 2A 2A 34 36 31 32 20 43 7E 0A 7E BD BB D2 D7 C0 E0 D0 CD 3A CF
FB B7 D1 7E 0A D3 D0 D0 A7 C6 DA 3A 32 32 31 30 20 20 20 C5 FA B4 CE BA C5 3A 30 30 30 30 30 33 0A C6 BE D6 A4 BA C5 3A 30 30 30 30 38 30 20 CA DA C8 A8 C2 EB 3A 0A BD BB D2 D7 B2 CE BF BC BA C5 3A 38 30 30 30 34 39 35 30 39 38 31 38 0A CA B1 BC E4 3A 32 30
31 37 2D 31 30 2D 32 37 20 32 30 3A 35 36 3A 34 30 0A 7E BD F0 B6 EE 3A 52 4D 42 20 30 2E 30 31 7E 0A 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0A BD BB D2 D7 B5 A5 BA C5 3A 31 31 31 37 35 34 39 39 30 30 30 30
30 36 32 30 32 35 20 20 42 0A 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0A 02 11 49 43 44 41 54 41 50 41 52 41 4D 0A 7E B3 D6 BF A8 C8 CB C7 A9 C3 FB 3A 7E 0A 45 4C 45 43 54 53 49 47 4E 4E 41 4D 45 0A 0A B1 BE
C8 CB C8 B7 C8 CF D2 D4 C9 CF BD BB D2 D7 2C CD AC D2 E2 BD AB C6 E4 BC C6 C8 EB B1 BE D5 CB BB A7 0A 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0A 35 2E 31 C8 D5 B5 EA C6 CC CA AE D6 DC C4 EA D3 C5 BB DD
BB EE B6 AF A3 AC C8 AB B3 A1 35 D5 DB 0A 02 12 CD A8 C1 AA BF CD BB A7 BA C5 3A 39 39 30 35 38 34 30 34 38 31 36 36 30 32 35 0A 7E B3 D6 BF A8 C8 CB C7 A9 C3 FB 3A 7E 0A 45 4C 45 43 54 53 49 47 4E 4E 41 4D 45 0A 0A B1 BE C8 CB C8 B7 C8 CF D2 D4 C9 CF BD BB
D2 D7 2C CD AC D2 E2 BD AB C6 E4 BC C6 C8 EB B1 BE D5 CB BB A7 0A 02 13 CD A8 C1 AA BF CD BB A7 BA C5 3A 39 39 30 35 38 34 30 34 38 31 36 36 30 32 35 0A 7E B3 D6 BF A8 C8 CB C7 A9 C3 FB 3A 7E 0A 45 4C 45 43 54 53 49 47 4E 4E 41 4D 45 0A 0A B1 BE C8 CB C8 B7
C8 CF D2 D4 C9 CF BD BB D2 D7 2C CD AC D2 E2 BD AB C6 E4 BC C6 C8 EB B1 BE D5 CB BB A7 0A 02 31 35 36 26 00 00 00 00 00 00 00 00 17 9F 36 02 00 05 91 0A 4E CB 06 21 5B 37 D5 9A 30 30 00 19 22 00 00 03 00 05 00 00 00 00 00 03 43 55 50 32 45 36 36 34 32 42 35
发送的报文解析
01 B9 60 06 03 00 00 80 20 00 00 00 00 39 39 30 35 38 34 30 34 38 31 36 36 30 32 35 30 30 30 30 30 30 30 31 33 30 30 30 30 30 30 30 30 30 30 30 30 30 33 30 30 30 30 30 30 30 31 39 39 30 35 38 34 30 34 38 31 36 36 30 32 35 30 30 30 30 30 30 30 30 &
报文头&& &&& &N4&& &&& &&& &02 00&& &&& &&& &&& &&& &&& &&& &BCD
8位位图码&& 70 24 06 C0 20 C4 9A 31 (AnalyseISO8583工具)& 2,3,4,11,14,22,23,25,26,35,41,42,46,49,52,53,55,59,60,64
2域主账号 &&& &B..16 && & &&& &16&&&&& 9B 6D AC 2A 86 78 0A AC DD F2 65 E5 C6 9D E0 2B&& &&& &&& &LLVAR
3域交易处理码&&& N6&& &&& &00 90 00 && &&& & && &&& & &&& &&& &&& &BCD
4域交易金额&& &N12&& &&& &00 00 00 00 00 01 &&& &&& &&& &&& &&& &&& &BCD
11域受卡方系统跟踪号 N6&& &&& &00 00 80 && &&& &流水号&& &&& &&& &&& &&& &BCD
14域卡有效期&& &n4&& &&& &22 10
22域服务点输入方式码&& &N3&& &07 10 && &//&& &02(msr)& 07(rf) 05(ic)
23域卡序列号&& &&& &N3&& &00 00&& //& IC卡交易时使用
25域服务点条件码&& &N2&& & 00&&&& //00(正常提交)&& & 06(预授权类交易)&&& 60(追加预授权)
26域服务点PIN获取码&& &N2&& & 06&& &//4-12&& &服务点设备所允许输入的个人密码明文的最大长度。
35域2磁道数据&& & B..24(LLVAR)&& &24 95 01 64 E8 97 32 5D A8 62 95 61 A1 EB B6 35 EC 84 6D B0 79 AD 69 A6 7C
41域受卡机终端标识码&&& ANS8&&&&& 30 30 30 30 30 30 30 31&& 终端号
42域受卡方标识码&&&&&&& ANS15&& & 39 39 30 35 38 34 30 34 38 31 36 36 30 32 35&&& 商户号
46域附加数据&& &&& &&& &00 10&&& 5F 52&& 07&&& 30 33 02 20 02 20 02&&&&&&&& &
49域交易货币代码&& &AN3&& &31 35 36&&& //人民币的货币代码为156
52域持卡人的个人密码的密文&& &B64(8个字节)&& C9 92 3D 3E 6A 61 B2 00&& //域22指明有PIN输入,则本域必须出现
53域安全控制信息&& &n16&& & 26 00 00 00 00 00 00 00& &
55域IC卡数据域&& && LLLVAR&& (01 54 9F 26 08 35 6E 26 5D 09 DC FF CA 9F 10 16 07 01 01 03 A0 00 00 01 0D 07 01 00 00 00 00 00 80 B0 CE BF 71 5F 9F 37 04 26 62 65 74 9F 36 02 00 05 95 05 00 00 00 00 00 9A 03 17 10 27 9C 01 00 9F 02 06 00 00 00 00 00 01 5F 2A 02 01
56 82 02 7C 00 9F 1A 02 01 56 9F 33 03 E0 F0 C8 9F 35 01 22 84 08 A0 00 00 03 33 01 01 01 9F 09 02 00 20 9F 63 10 30 33 30 38 30 30 30 30 00 80 B0 00 00 00 00 00 9F 1E 08 38 35 33 30 30 37 32 36 9F 03 06 00 00 00 00 00 00 9F 27 01 80)&& &&& &&& &LLVAR
[TAG:9F26][Length:8][Values:356E265D09DCFFCA]
[TAG:9F10][Length:22][Values:B0CEBF715F]
[TAG:9F37][Length:4][Values:]
[TAG:9F36][Length:2][Values:0005]
[TAG:95&&&& ][Length:5][Values:]
[TAG:9A&&&& ][Length:3][Values:171027]
[TAG:9C&&&& ][Length:1][Values:00]
[TAG:9F02][Length:6][Values:]
[TAG:5F2A][Length:2][Values:0156]
[TAG:82&&&& ][Length:2][Values:7C00]
[TAG:9F1A][Length:2][Values:0156]
[TAG:9F33][Length:3][Values:E0F0C8]
[TAG:9F35][Length:1][Values:22]
[TAG:84&&&& ][Length:8][Values:A101]
[TAG:9F09][Length:2][Values:0020]
[TAG:9F63][Length:16][Values:]
[TAG:9F1E][Length:8][Values:3236]
[TAG:9F03][Length:6][Values:]
[TAG:9F27][Length:1][Values:80]
59域自定义域&&& ans...999(LLVAR),3个字节长度&&&&&& LLVAR
00 57 41 32 30 35 32 30 31 30 30 32 30 34 30 32 30 31 36 30 30 30 30 30 31 30 34 38 35 33 30 30 37 32 36 30 33 30 30 36 33 37 34 36 31 32 30 35 30 30 38 31 37 30 37 39 39 20 20 00 19
60域自定义域 &
60.1消息类型码&& &&& &&& &22&& &&& &&& &&& &N2&& &
60.2批次号&& &&& &&& &00 00 03&& &&& &&& &&& &N6&& &
60.3& 网络管理信息码&& &&& &000&& &&& &&& &N3&& &
60.4& 终端读取能力&& &&& &&& &5&& &&& &&& & N1
60.5& 基于PBOC借/贷记标准的IC卡条件代码&& &&& &0&& & N1
60.6& 支付产品编码&&&&&&&&&&&&&&& 0000&&&&&&&&&&&&& N4
60.7& 业务编码&&&&&&&&&&&&&&&&&&&& 00&&&&&&&&&&&& N2
64域报文鉴别码&& B64(8个字节)&&& 36 32 39 36 41 30 36 43
接收的报文解析
04 06 60 00 00 06 03 80 20 00 00 00 00 39 39 30 35 38 34 30 34 38 31 36 36 30 32 35 30 30 30 30 30 30 30 31 33 30 30 30 30 30 30 30 30 30 30 30 30 30 33 30 30 30 30 30 30 30 31 39 39 30 35 38 34 30 34 38 31 36 36 30 32 35 30 30 30 30 30 30 30 30
报文头&& &&& &N4&& &&& &&& &02 10&& &
8位位图码&& 30 3C 06 C1 0A C6 8A 13 (AnalyseISO8583工具) &&& &3,4,11,12,13,14,22,23,25,26,32,37,39,41,42,46,47,49,53,55,60,63,64&& &&& &BCD
3域交易处理码&&& N6&& &&& &00 90 00 && &&& & && &&& & &&& &&& &&& &BCD
4域交易金额&& &N12&& &&& &00 00 00 00 00 01 &&& &&& &&& &&& &&& &&& &BCD
11域受卡方系统跟踪号 N6&& &&& &00 00 80 && &&& &流水号&& &&& &&& &&& &&& &BCD&&& &
12域受卡方所在地时间 N6&& &&& &20 56 40 &&& &&& &//hhmmss
13域受卡方所在地日期 N4&& &&& &10 27&& &&& &&& &//MMDD
14域卡有效期&& &n4&& &&& &22 10
22域服务点输入方式码&& &N3&& &07 10 && &//&& &02(msr)& 07(rf) 05(ic)&& &
23域卡序列号&& &&& &N3&& &00 00&& //& IC卡交易时使用
25域服务点条件码&& &N2&& & 00&&&& //00(正常提交)&& & 06(预授权类交易)&&& 60(追加预授权)
26域服务点PIN获取码&& &N2&& & 06&& &//4-12&& &服务点设备所允许输入的个人密码明文的最大长度。
32域受理方标识码&& &08 && &99 99 00 01 && &&& &&& &//标识一个机构(POS中心)
37域检索参考号&& &&& &An12&& &38 30 30 30 34 39 35 30 39 38 31 38 &&& &&& &//POS中心系统流水号&&&&& ASCII
39域&& &&& &&& &an2&&&&& 30 30&& &&& &&& &&& &&& &&& &&& &&& &ASCII
41域受卡机终端标识码&&& ANS8&&&&& 30 30 30 30 30 30 30 31&& 终端号&& &&& &&& &&& &ASCII
42域受卡方标识码&&&&&&& ANS15&& & 39 39 30 35 38 34 30 34 38 31 36 36 30 32 35&&& 商户号&& &&& &ASCII
46域附加数据&& &
5F 57 交易单号+ 0x02 + 发卡机构(可空)+0x02+收单机构(可空)+0x02
2E 31 31 31 37 35 34 39 39 30 30 30 30 30 36 32 30 32 35 02 D5 D0 C9 CC D2 F8 D0 D0 20 20 02 34 38 32 31 30 30 30 31 02 49 02 30 02 02 02 02
5F 51&&&&& 本TAG主要用于F39!==00时的交易错误提示,但也用于F39==00时的信息显示
09 BD BB D2 D7 B3 C9 B9 A6 02
15 30 30 30 30 30 33 02 30 30 30 30 38 30 02 31 30 32 37 02 30 02
47域附加数据 - 私有
8F 03 POS纸张打印额外信息
82 02 D4 10 B0 E6 B1 BE 3A 53 2D 4C 44 41 38 2D 4E 30 30 56 34 2E 30 31 37 30 37 39 39 0A C9 CC BB A7 C3 FB 3A B4 F3 D0 C5 CD A8 CF EE C4 BF B2 E2 CA D4 BA C5 0A C9 CC BB A7 BA C5 3A 39 39 30 35 38 34 30 34 38 31 36 36 30 32 35 0A D6 D5 B6 CB BA C5 3A 30 30
30 30 30 30 30 31 20 20 B2 D9 D7 F7 D4 B1 3A 33 30 33 0A B7 A2 BF A8 BB FA B9 B9 3A D5 D0 C9 CC D2 F8 D0 D0 20 20 0A CA D5 B5 A5 BB FA B9 B9 3A 34 38 32 31 30 30 30 31 0A 7E BF A8 BA C5 3A 36 32 31 34 38 33 2A 2A 2A 2A 2A 2A 34 36 31 32 20 43 7E 0A 7E BD BB
D2 D7 C0 E0 D0 CD 3A CF FB B7 D1 7E 0A D3 D0 D0 A7 C6 DA 3A 32 32 31 30 20 20 20 C5 FA B4 CE BA C5 3A 30 30 30 30 30 33 0A C6 BE D6 A4 BA C5 3A 30 30 30 30 38 30 20 CA DA C8 A8 C2 EB 3A 0A BD BB D2 D7 B2 CE BF BC BA C5 3A 38 30 30 30 34 39 35 30 39 38 31 38
0A CA B1 BC E4 3A 32 30 31 37 2D 31 30 2D 32 37 20 32 30 3A 35 36 3A 34 30 0A 7E BD F0 B6 EE 3A 52 4D 42 20 30 2E 30 31 7E 0A 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0A BD BB D2 D7 B5 A5 BA C5 3A 31 31 31 37
35 34 39 39 30 30 30 30 30 36 32 30 32 35 20 20 42 0A 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0A 02 11 49 43 44 41 54 41 50 41 52 41 4D 0A 7E B3 D6 BF A8 C8 CB C7 A9 C3 FB 3A 7E 0A 45 4C 45 43 54 53 49 47 4E
4E 41 4D 45 0A 0A B1 BE C8 CB C8 B7 C8 CF D2 D4 C9 CF BD BB D2 D7 2C CD AC D2 E2 BD AB C6 E4 BC C6 C8 EB B1 BE D5 CB BB A7 0A 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0A 35 2E 31 C8 D5 B5 EA C6 CC CA AE
D6 DC C4 EA D3 C5 BB DD BB EE B6 AF A3 AC C8 AB B3 A1 35 D5 DB 0A 02 12 CD A8 C1 AA BF CD BB A7 BA C5 3A 39 39 30 35 38 34 30 34 38 31 36 36 30 32 35 0A 7E B3 D6 BF A8 C8 CB C7 A9 C3 FB 3A 7E 0A 45 4C 45 43 54 53 49 47 4E 4E 41 4D 45 0A 0A B1 BE C8 CB C8 B7
C8 CF D2 D4 C9 CF BD BB D2 D7 2C CD AC D2 E2 BD AB C6 E4 BC C6 C8 EB B1 BE D5 CB BB A7 0A 02 13 CD A8 C1 AA BF CD BB A7 BA C5 3A 39 39 30 35 38 34 30 34 38 31 36 36 30 32 35 0A 7E B3 D6 BF A8 C8 CB C7 A9 C3 FB 3A 7E 0A 45 4C 45 43 54 53 49 47 4E 4E 41 4D 45
0A 0A B1 BE C8 CB C8 B7 C8 CF D2 D4 C9 CF BD BB D2 D7 2C CD AC D2 E2 BD AB C6 E4 BC C6 C8 EB B1 BE D5 CB BB A7 0A 02
49域交易货币代码&& &AN3&& &31 35 36&&& //人民币的货币代码为156
53域安全控制信息&& &&& &n16&& & 26 00 00 00 00 00 00 00& &
55域IC卡数据域&& && LLLVAR&& 00 17 (9F 36 02 00 05 91 0A 4E CB 06 21 5B 37 D5 9A 30 30 00 19)&& &&& &&& &LLVAR
60域自定义域 &
60.1消息类型码&& &&& &&& &22&& &&& &&& &&& &N2&& &
60.2批次号&& &&& &&& &00 00 03&& &&& &&& &&& &N6&& &
60.3& 网络管理信息码&& &&& &000&& &&& &&& &N3&& &
60.4& 终端读取能力&& &&& &&& &5&& &&& &&& & N1
60.5& 基于PBOC借/贷记标准的IC卡条件代码&& &&& &0&& & N1
60.6& 支付产品编码&&&&&&&&&&&&&&& 0000&&&&&&&&&&&&& N4
60.7& 业务编码&&&&&&&&&&&&&&&&&&&& 00&&&&&&&&&&&& N2
63域自定义域 &
63.1& 自定义域1&& &&& &AN3&& &&& &00 03
63.2自定义域2&& &&& &ANS…120(LLLVAR)&& & 43 55 50
64域MAC报文鉴别码&& &8个字节&& &32 45 36 36 34 32 42 35
public class ISO8583 {
&&& private static final String TAG = &ISO8583&;
&&& public final static int ISO8583_MAX_LENGTH = 128; && &/*ISO858包的最多字段个数*/
&&& public final static int MAXBUFFERLEN = 2048; && &/*定义ISO_data结构中最长的缓冲区*/
&&& public final static int MSGIDLEN = 4; && &/*消息类型长度*/
&&& public final static byte FIX_LEN = 0;&& &&& &/*(LENgth fix 是指由ISO_8583中的长度决定该域的长度)*/
&&& public final static byte LLVAR_LEN&& &= 1;&&& /*(LENgth 00~99)*/
&&& public final static byte LLLVAR_LEN&& &= 2;&&& /*(LENgth 00~999)*/
&&& public final static byte L_BCD = 0;&&& /*左对齐BCD码*/&&&&&&&&&&&&&&& &
&&& public final static byte L_ASC = 1;&&& /*左对齐ASC码*/
&&& public final static byte R_BCD = 2;&&& /*右对齐BCD码*/
&&& public final static byte R_ASC = 3;&&& /*右对齐ASC码*/
&& &public final static byte D_BIN = 4;&&&& /*?BCD*/
&&& public ISO8583Domain[] mISO8583D
&&& private int mO
&&& private byte[] mDataB
&&& private byte[] mMessageId;
&&& private class ISO8583Domain { /*8583每个域的定义*/
&&&&&&& public int mMaxL&& &&& &&& &/* data element max length */
&&&&&&& public byte mT&& &&& &&&& /* bit0,bit1暂留,bit2:为0时左对齐,为1时右对齐,bit3:为0时BCD码,为1时ASC码,type:0,1,2,3三种*/
&& &&& &public byte mF&& &&& &&& &/* length field length: 0--FIX_LEN型 1--LLVAR_LEN型 2--LLLVAR_LEN型*/
&& &&& &public String mDomainN &&& &/* 域名*/
&&&&&&& public int mB&& &&& &&& &&& &&& &&& &&& &/*field map if 1 true& 0 false*/
&& &&& &public int mL&& &&& &&& &&& &&& &&&& /*field length*/
&& &&& &public int mStartA&& &&& &&& &&& &&& &&& &/*field data's start address*/
&&&&&&& public void setDomainProperty(int length, byte type, byte flag, String domainName) {
&&&&&&&&&&& this.mMaxLength =
&&&&&&&&&&& this.mType =
&&&&&&&&&&& this.mFlag =
&&&&&&&&&&& this.mDomainName = domainN
&&& public ISO8583() {
&&&&&&& mISO8583Domain = new ISO8583Domain[ISO8583_MAX_LENGTH];
&&&&&&& for (int i = 0; i & ISO8583_MAX_LENGTH; i++) {
&&&&&&&&&&& mISO8583Domain[i] = new ISO8583Domain();
&&&&&&&&&&& initISO8583Domain();
&&&&&&& mOffset = 0;
&&&&&&& mDataBuffer = new byte[MAXBUFFERLEN];
&&&&&&& mMessageId& = new byte[MSGIDLEN];
&&& /*=================================================================
&&& * Function ID :& isotostr
&&& * Input&&&&&& :& byte[] src
&&& * Output&&&&& : &
&&& * Return&& && :& success 0 fail -1
&&& * Description :& ISO583包解包成为一个数据BCD码串
&&& * Notice&& && :& 成功:返回该数据串,失败:返回null
&&& *=================================================================*/
&&& public byte[] isotostr() {
&&&&&&& int dataOffset = 0;
&&&&&&& int bitnum = 8;
&&&&&&& int n = 0;
&&&&&&& byte[] data = new byte[MAXBUFFERLEN];&& &
&&&&&&& BCDASCII.fromASCIIToBCD(mMessageId, 0, MSGIDLEN, data, 0, false);
&&&&&&& dataOffset = MSGIDLEN/2 + //指向消息类型和位图之后的数据域
&&&&&&& for (int i = 0; i & i++) {
&&&&&&&&&&& byte bitmap = 0; //表示64位的位图中的一个字节中的8个位图域
&&&&&&&&&&& int bitmask = 0x80;
&&&&&&&&&&& for (int j = 0; j & j++, bitmask&&=1) {
&&&&&&&&&&&&&&& n = (i&&3) +
&&&&&&&&&&&&&&& if (mISO8583Domain[n].mBitf == 0) {//该域没有值
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& bitmap |=
&&&&&&&&&&&&&&& int len = mISO8583Domain[n].mL
&&&&&&&&&&&&&&& String srclen&& = String.valueOf(len);
&&&&&&&&&&&&&&& byte[] arraylen =
&&&&&&&&&&&&&& &
&&&&&&&&&&&&&&& Log.d(TAG, &idx=&+(n+1)+&, &+mISO8583Domain[n].mDomainName+&, len=&+srclen );
&&&&&&&&&&&&&& &
&&&&&&&&&&&&&&& if (mISO8583Domain[n].mFlag == LLVAR_LEN) {
&&&&&&&&&&&&&&&&&&& // error Temporary comment for F35 length
&& &&& &&& &&& &&&& if (mISO8583Domain[n].mType == D_BIN) {
&&&&&&&&&&&&&&&&&&&&&&& len = (len+1)/2;
&& &&& &&& &&& &&&& }
&&&&&&&&&&&&&& &&& &String lenstr = String.format(&%02d&,len);
&&&&&&&&&&&&&&&&&&& arraylen = BCDASCII.fromASCIIToBCD(lenstr, 0, 2, false);&& &//rclen, 0, 2, false);
&&&&&&&&&&&&&&&&&&& System.arraycopy(arraylen, 0, data, dataOffset, 1);
&&&&&&&&&&&&&&&&&&& dataOffset += 1;
&&&&&&&&&&&&&&& } else if (mISO8583Domain[n].mFlag == LLLVAR_LEN) {
&& &&& &&& &&& &&&& if (mISO8583Domain[n].mType == D_BIN) {
&&&&&&&&&&&&&&&&&&&&&&& len = (len+1)/2;
&& &&& &&& &&& &&&& }
&&&&&&&&&&&&&& &&& &String lenstr = String.format(&%04d&,len);
&&&&&&&&&&&&&&&&&&& arraylen = BCDASCII.fromASCIIToBCD(lenstr, 0, 4, false);&& //srclen, 0, 4, false);
&&&&&&&&&&&&&&&&&&& System.arraycopy(arraylen, 0, data, dataOffset, 2);
&&&&&&&&&&&&&&&&&&& dataOffset += 2;
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& if (mISO8583Domain[n].mType == L_BCD) {
&&&&&&&&&&&&&&&&&&& len = (len+1)/2;
&&&&&&&&&&&&&&& } else if (mISO8583Domain[n].mType == L_ASC) {
&&&&&&&&&&&&&&& } else if (mISO8583Domain[n].mType == R_BCD) {
&&&&&&&&&&&&&&&&&&& len = (len+1)/2;
&&&&&&&&&&&&&&& } else if (mISO8583Domain[n].mType == R_ASC) {
&&&&&&&&&&&&&&&&&& &
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& System.arraycopy(mDataBuffer, mISO8583Domain[n].mStartAddr, data, dataOffset, len);
&&&&&&&&&&&&&&& dataOffset +=
&&&&&&&&&&& }
&&&&&&&&&&& data[i + 2] =
&&&&&&& if (mISO8583Domain[127].mBitf == 1 && bitnum == 16) {
&&&&&&&&&&& data[2 + 7] |= 0x01; //将位图中的最后一位置为1,即将64域置为1
&&&&&&&&&&& System.arraycopy(mDataBuffer, mISO8583Domain[127].mStartAddr, data, dataOffset, 8);
&&&&&&&&&&& dataOffset += 8;
&&&&&&& if (bitnum == 16) {
&&&&&&&&&&& data[2] |= 0x80; //0x80 二进制为 ,将位图的首位置为1,表示使用128个域
&&&&&&& if (dataOffset != 0) {
&&&&&&&&&&& byte[] BCD = new byte[dataOffset];
&&&&&&&&&&& System.arraycopy(data, 0, BCD, 0, dataOffset);
&&&&&&&&&&& return BCD;
&&& /*=================================================================
&&& * Function ID :& strtoiso
&&& * Input&&&&&& :& byte[] src
&&& * Output&&&&& : &
&&& * Return&& && :& success 0 fail -1
&&& * Description :& 将按8583包格式的数据串装载到8583包中
&&& * Notice&& && : &
&&& *=================================================================*/
&&& public int strtoiso(byte[] src) {
&&&&&&& int bitnum = 8;//位图为64位二进制,8个字节。
&&&&&&& int bitmask = 0x80;//0x80为128,,通过bitmask移位来检查一个字节8位中的每一位是否为1。
&&&&&&& clearBit();//清除8583包中的数据。
&&&&&&& BCDASCII.fromBCDToASCII(src, 0, mMessageId, 0, MSGIDLEN, false);
&&&&&&& int srcLen = src.
&&&&&&& byte[] srcData = new byte[srcLen - ((MSGIDLEN/2) + bitnum)];//将src中的消息类型和位图的数据去除。
&&&&&&& System.arraycopy(src, (MSGIDLEN/2) + bitnum, srcData, 0, srcData.length);
&&&&&&& byte[] varLen = new byte[10];//字串中表示可变长度的长度值,如长度为104,则BCD码为 01 04,2个字节表示
&&&&&&& int n = 0;
&&&&&&& int len = 0;//每个域的数据长度
&&&&&&& int srcDataOffset = 0;
&&&&&&& int offset = 0;
&&&&&&& for (int i = 0; i & i++) {//位图64位,8个字节,每个字节8位按顺序检测是否为1
&&&&&&&&&&& bitmask = 0x80;
&&&&&&&&&&& for (int j = 0; j & j++, bitmask&&=1) {//bitmask = 0x80,,每次右移一位,代表判断这个字节中的下一位是否为1
&&&&&&&&&&&&&&& if (i == 0 && bitmask == 0x80) {//第一个字节的第一位,代表是64域还是128域,
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& if ((src[i+2] & bitmask)==0) {//从第2位开始,i=0,j=1,bitmask=0x40为 1000000,判断位图中的第二位
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& n = (i&&3) +//当i=1,则代表从第九个域开始,则是8+j,
&&&&&&&&&&&&&&& if (mISO8583Domain[n].mFlag == LLVAR_LEN) {
&&&&&&&&&&&&&&&&&&& String lenSrc = BCDASCII.fromBCDToASCIIString(srcData, srcDataOffset, 2, false);
&& &&& &&& &&& &&& &Log.d(TAG, &LLVAR_LEN ascii_len=& + lenSrc);
&& &&& &&& &&& &&& &len = Integer.parseInt(lenSrc, 10); // .valueOf(lenSrc);
&&&&&&&&&&&&&&&&&&& srcDataOffset += 1;
&&&&&&&&&&&&&&& } else if (mISO8583Domain[n].mFlag == LLLVAR_LEN) {
&&&&&&&&&&&&&&&&&&& String lenSrc = BCDASCII.fromBCDToASCIIString(srcData, srcDataOffset, 4, false);
&& &&& &&& &&& &&& &Log.d(TAG, &LLLVAR_LEN ascii_len=& + lenSrc);
&& &&& &&& &&& &&& &len = Integer.parseInt(lenSrc, 10); // .valueOf(lenSrc);
&&&&&&&&&&&&&&&&&&& srcDataOffset += 2;
&&&&&&&&&&&&&&& } else if (mISO8583Domain[n].mFlag == FIX_LEN) {
&&&&&&&&&&&&&&&&&&& len = mISO8583Domain[n].mMaxL
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& mISO8583Domain[n].mLength =&&&&&&& /*保存该域的长度*/&&&&&&&&&&& &
&&&&&&&&&&&&&&& mISO8583Domain[n].mStartAddr =& /*该域值在mDataBuffer中的起始位置*/
&&&&&&&&&&&&&&& if (len + offset &= MAXBUFFERLEN) {
&&&&&&&&&&&&&&&&&&& return -1;
&&&&&&&&&&&&&&& }
&& &&& &&& &&& &// for debug
&& &&& &&& &&& &byte[] buf = new byte[len + 1];
&&&&&&&&&&&&&&& if (mISO8583Domain[n].mType == L_BCD) {
&&&&&&&&&&&&&&&&&&& len = (len+1)/2;
&&&&&&&&&&&&&&&&&&& System.arraycopy(srcData, srcDataOffset, mDataBuffer, offset, len);
&& &&& &&& &&& &&& &// buf=BCDASCII.fromBCDToASCII(mDataBuffer, offset, len,
&& &&& &&& &&& &&& &// false);
&& &&& &&& &&& &&& &System.arraycopy(srcData, srcDataOffset, buf, 0, len);
&& &&& &&& &&& &} else if (mISO8583Domain[n].mType == L_ASC || mISO8583Domain[n].mType == D_BIN) {
&& &&& &&& &&& &&& &System.arraycopy(srcData, srcDataOffset, mDataBuffer,
&& &&& &&& &&& &&& &&& &&& &offset, len);
&& &&& &&& &&& &&& &System.arraycopy(srcData, srcDataOffset, buf, 0, len);
&&&&&&&&&&&&&&& } else if (mISO8583Domain[n].mType == R_BCD) {
&&&&&&&&&&&&&&&&&&& len = (len+1)/2;
&&&&&&&&&&&&&&&&&&& System.arraycopy(srcData, srcDataOffset, mDataBuffer, offset, len);
&& &&& &&& &&& &&& &// buf=BCDASCII.fromBCDToASCII(mDataBuffer, offset, len,
&& &&& &&& &&& &&& &// false);
&& &&& &&& &&& &&& &System.arraycopy(srcData, srcDataOffset, buf, 0, len);
&&&&&&&&&&&&&&& } else if (mISO8583Domain[n].mType == R_ASC) {
&&&&&&&&&&&&&&&&&&& System.arraycopy(srcData, srcDataOffset, mDataBuffer, offset, len);
&& &&& &&& &&& &&& &System.arraycopy(srcData, srcDataOffset, buf, 0, len);
&& &&& &&& &&& &}
&& &&& &&& &&& &// if (mISO8583Domain[n].mType == R_ASC ||
&& &&& &&& &&& &// mISO8583Domain[n].mType == L_ASC)
&& &&& &&& &&& &// Log.d(TAG,
&& &&& &&& &&& &// &idx=&+(n+1)+&, &+mISO8583Domain[n].mDomainName+&, Len=&+len+&,[ASCII] &+new
&& &&& &&& &&& &// String(buf));
&& &&& &&& &&& &// else
&& &&& &&& &&& &Log.d(TAG, &idx=& + (n + 1) + &, &
&& &&& &&& &&& &&& &&& &+ mISO8583Domain[n].mDomainName + &, Len=& + len
&& &&& &&& &&& &&& &&& &+ &,[BCD] & + BCDHelper.hex2DebugHexString(buf, len));
&& &&& &&& &&& &mISO8583Domain[n].mBitf = 1;
&& &&& &&& &&& &offset +=
&& &&& &&& &&& &srcDataOffset +=
&& &&& &&& &}
&& &&& &mOffset =
&& &&& &return 0;
&&& /*=================================================================
&&& * Function ID :& setbit
&&& * Input&&&&&& :& int n,byte[] str,int len
&&& * Return&& && :& success 0 fail -1
&&& * Description :& 将第n域加载到8583包(mDataBuffer)中.
&&& * Notice&& && :& n-&第几个域 src-&需要打包的字符串 len-&字符串的长度
&&& *=================================================================*/
&&& public int& setBit(int n, byte[] src, int len) {
&&&&&&& int& i=0, l=0;
&& &&& &byte[] pt& =//new byte[MAXBUFFERLEN];
&& &&& &byte[] tmp = new byte[MAXBUFFERLEN];
&& &&& &LOG.d(TAG,
&&&&&&&&&&&&&&& &comein &+CommonFunction._FILE_LINE_FUN_()+&setBit, n: & + n + &,len: & + len + &,src: &
&& &&& &&& &&& &&& &&& &+ BCDHelper.hex2DebugHexString(src, src.length)
&& &&& &&& &&& &&& &&& &+ &, ascii(& + new String(src) + &)&);
&&&&&&& if (len == 0 || len & MAXBUFFERLEN) {
&&&&&&&&&&& return 0; //str为空或超长,不需要打包
&&&&&&& if (n == 0) {
&&&&&&&&&&& System.arraycopy(src, 0, mMessageId, 0, MSGIDLEN);
&&&&&&&&&&& return 0;
&&&&&&& }&&&& &
&& &&& &if (n &= 1 || n & ISO8583_MAX_LENGTH) {//第1域为位图域,不能用
&& &&& &&& &return -1;&& &
&& &&& &n--;//域从1开始,数组从0开始
&&&&&&& LOG.d(TAG, CommonFunction._FILE_LINE_FUN_()+&setBit, mMaxLength: & + mISO8583Domain[n].mMaxLength+& n= &+n);
&& &&& &if( len & mISO8583Domain[n].mMaxLength ) {//最大长度不能超过8583包规定的长度
&& &&& &&& &len = mISO8583Domain[n].mMaxL
&&&&&&& l =
&& &&& &if( mISO8583Domain[n].mFlag == FIX_LEN ) {//该域为固定长度
&& &&& &&& &len = mISO8583Domain[n].mMaxL
&&&&&&& //如果固定长度为8,实际传入只有6,那么需要补2位,len &= l.
&&&&&&& LOG.d(TAG, CommonFunction._FILE_LINE_FUN_()+&setBit, l: & + l + &,len: & + len);
&&&&&&& mISO8583Domain[n].mBitf = 1;&&&&&&&&&&& /*置该域为有数据 */ &
&&&&&&& mISO8583Domain[n].mLength =&&&&&&& /*保存该域的长度*/
&&&&&&& mISO8583Domain[n].mStartAddr = mO& /*该域值在mDataBuffer中的起始位置*/
&&&&&&& if ((mOffset + len) &=& MAXBUFFERLEN) {//mDataBuffer空间已满
&&&&&&&&&&& return -1;
&&&&&&& if (mISO8583Domain[n].mType == L_BCD) {
&&&&&&&&&&& System.arraycopy(src, 0, tmp, 0, l);
&&&&&&&&&&& Arrays.fill(tmp, l, len, (byte)' ');
&&&&&&&&&&& pt = BCDASCII.fromASCIIToBCD(tmp, 0, len, false);
&&&&&&&&&&& System.arraycopy(pt, 0, mDataBuffer, mOffset, (len+1)/2);
&&&&&&&&&&& mOffset += (len+1)/2;
&&&&&&& } else if (mISO8583Domain[n].mType == L_ASC) {
&&&&&&&&&&& System.arraycopy(src, 0, tmp, 0, l);
&&&&&&&&&&& Arrays.fill(tmp, l, len, (byte)' ');
&&&&&&&&&&& System.arraycopy(tmp, 0, mDataBuffer, mOffset, len);
&&&&&&&&&&& mOffset +=
&&&&&&& } else if (mISO8583Domain[n].mType == R_BCD) {
&&&&&&&&&&& Arrays.fill(tmp, 0, len-l, (byte)'0');
&&&&&&&&&&& System.arraycopy(src, 0, tmp, len-l, l);
&&&&&&&&&&& pt = BCDASCII.fromASCIIToBCD(tmp, 0, len, true);
&&&&&&&&&&& System.arraycopy(pt, 0, mDataBuffer, mOffset, (len+1)/2);
&&&&&&&&&&& mOffset += (len+1)/2;
&&&&&&& } else if (mISO8583Domain[n].mType == R_ASC) {
&&&&&&&&&&& Arrays.fill(tmp, 0, len-l, (byte)' ');
&&&&&&&&&&& System.arraycopy(src, 0, tmp, len-l, l);
&&&&&&&&&&& System.arraycopy(tmp, 0, mDataBuffer, mOffset, len);
&&&&&&&&&&& mOffset +=
&& &&& &} else if (mISO8583Domain[n].mType == D_BIN) {
&&&&&&&&&&& Log.d(TAG, CommonFunction._FILE_LINE_FUN_() + && l = & + l);
&& &&& &&& &System.arraycopy(src, 0, tmp, 0, l);
&& &&& &&& &Arrays.fill(tmp, l, len, (byte) ' ');
&& &&& &&& &pt = BCDASCII.fromASCIIToBCD(tmp, 0, len, false);
&& &&& &&& &System.arraycopy(pt, 0, mDataBuffer, mOffset, (len + 1) / 2);
&& &&& &&& &mOffset += (len + 1) / 2;
&&&&&&& return 0;
&&& /*=================================================================
&&& * Function ID :& getbit
&&& * Input&&&&&& :& int n,第几个域
&&& * Return&& && :& 成功返回这个域的字符串,失败返回空。
&&& * Description :& 从8583包(mDataBuffer)中取出第n域的值。
&&& * Notice&& && :& n-&第几个域
&&& *=================================================================*/
&&& public byte[] getBit(int n) {
&&&&&&& // LOG.d(TAG, &getBit, n: & + n);
&&&&&&& byte[] domainValue =
&&&&&&& if (n == 0) {
&&&&&&&&&&& domainValue = new byte[MSGIDLEN];
&&&&&&&&&&& System.arraycopy(mMessageId, 0, domainValue, 0, MSGIDLEN);
&&&&&&&&&&& LOG.d(TAG, &getBit, n=0,& + new String(domainValue));
&&&&&&&&&&& return domainV&&&&&&&&&& &
&&&&&&& if (n &= 1 || n & ISO8583_MAX_LENGTH) {//第1域为位图域,不能用
&&&&&&&&&&& LOG.d(TAG, &getBit, n is not normal.&);
&& &&& &&& &&& &
&& &&& &n--;//域从1开始,数组从0开始
&&&&&&& if (mISO8583Domain[n].mBitf == 0) {
&&&&&&&&&&& LOG.d(TAG, &getBit, n domainValue is null.&);
&&&&&&&&&&&
&&&&&&& int len = mISO8583Domain[n].mL
&&&&&&& int startAddr = mISO8583Domain[n].mStartA
&&&&&&& byte[] data&& =
&&&&&&& if (mISO8583Domain[n].mType == L_BCD) {
&&&&&&&&&&& data = new byte[(len+1)/2];
&&&&&&&&&&& System.arraycopy(mDataBuffer, startAddr, data, 0, (len+1)/2);
&&&&&&&&&&& domainValue = BCDASCII.fromBCDToASCII(data, 0, len, false);
&&&&&&& } else if (mISO8583Domain[n].mType == L_ASC || mISO8583Domain[n].mType == D_BIN) {
&&&&&&&&&&& data = new byte[len];
&&&&&&&&&&& System.arraycopy(mDataBuffer, startAddr, data, 0, len);
&&&&&&&&&&& domainValue =
&&&&&&& } else if (mISO8583Domain[n].mType == R_BCD) {
&&&&&&&&&&& data = new byte[(len+1)/2];
&&&&&&&&&&& System.arraycopy(mDataBuffer, startAddr, data, 0, (len+1)/2);
&&&&&&&&&&& domainValue = BCDASCII.fromBCDToASCII(data, 0, len, true);&&&&&&&&& &
&&&&&&& } else if (mISO8583Domain[n].mType == R_ASC) {
&&&&&&&&&&& data = new byte[len];
&&&&&&&&&&& System.arraycopy(mDataBuffer, startAddr, data, 0, len);
&&&&&&&&&&& domainValue =
&& &&& &LOG.d(TAG,
&& &&& &&& &&& &&getBit, n=& + (n + 1) + &, &
&& &&& &&& &&& &&& &&& &+ BCDHelper.hex2DebugHexString(domainValue, len));
&&&&&&& return domainV
&&& public void clearBit() {
&&&&&&& for (int i = 0; i & ISO8583_MAX_LENGTH; i++) {
&&&&&&&&&&& mISO8583Domain[i].mBitf = 0;
&&&&&&&&&&& mISO8583Domain[i].mLength = 0;
&&&&&&&&&&& mISO8583Domain[i].mStartAddr = 0;
&&&&&&& mOffset = 0;
&&&&&&& Arrays.fill(mDataBuffer, (byte)0);
&&& private void initISO8583Domain() {
&&&&&&& if (mISO8583Domain == null) {
&&&&&&&&&&&
&&&&&&& mISO8583Domain[0 ].setDomainProperty(& 8, L_ASC, FIX_LEN,&&&&& &&& &&& &&位图&);&& &&& &&& &//1
&&&&&&& mISO8583Domain[1 ].setDomainProperty( 32, D_BIN, LLVAR_LEN,&&& &&& &&& &&主帐号&);&& &&& &//2 + L_ASC-&L_BCD
&&&&&&& mISO8583Domain[2 ].setDomainProperty(& 6, L_BCD, FIX_LEN,&&&&& &&& &&& &&交易处理码&);&& &&& &//3 +
&&&&&&& mISO8583Domain[3 ].setDomainProperty( 12, R_BCD, FIX_LEN,&&&&& &&& &&& &&交易金额&);&& &&&& //4 + Henry 4-&12
&&&&&&& mISO8583Domain[4 ].setDomainProperty(& 8, L_BCD, FIX_LEN,&&&&& &&& &&& &&未使用&);&& &&&& //5
&&&&&&& mISO8583Domain[5 ].setDomainProperty(& 8, L_BCD, FIX_LEN,&&&&& &&& &&& &&未使用&);&& &&&& //6
&&&&&&& mISO8583Domain[6 ].setDomainProperty( 99, R_BCD, LLVAR_LEN,&&& &&& &&& &&未使用&);&&&& &&& &//7
&&&&&&& mISO8583Domain[7 ].setDomainProperty(& 8, R_BCD, FIX_LEN,&&&&& &&& &&& &&未使用&);&& &&&& //8
&&&&&&& mISO8583Domain[8 ].setDomainProperty(& 8, R_BCD, FIX_LEN,&&&&& &&& &&& &&未使用&);&&&& &&& &//9
&&&&&&& mISO8583Domain[9 ].setDomainProperty(& 8, R_BCD, FIX_LEN,&&&&& &&& &&& &&未使用&);&&&& &&& &//10
&&&&&&& mISO8583Domain[10].setDomainProperty(& 6, R_BCD, FIX_LEN,&&&&& &&& &&& &&系统跟踪号&);&& &&&& //11 +
&&&&&&& mISO8583Domain[11].setDomainProperty(& 6, R_BCD, FIX_LEN,&&&&& &&& &&& &&本地交易时间&);&& &//12 +
&&&&&&& mISO8583Domain[12].setDomainProperty(& 4, R_BCD, FIX_LEN,&&&&& &&& &&& &&本地交易日期&);&& &//13 + Henry 8-&4 -&hw: 8
&&&&&&& mISO8583Domain[13].setDomainProperty(& 4, R_BCD, FIX_LEN,&&&&& &&& &&& &&卡有效期&);&& &&& &//14 + Henry 8-&4
&&&&&&& mISO8583Domain[14].setDomainProperty(& 4, R_BCD, FIX_LEN,&&&&& &&& &&& &&结算日期&);&& &&&& //15 +
&&&&&&& mISO8583Domain[15].setDomainProperty(& 4, R_BCD, FIX_LEN,&&&&& &&& &&& &&未使用&);&& &&&& //16
&&&&&&& mISO8583Domain[16].setDomainProperty(& 4, R_BCD, FIX_LEN,&&&&& &&& &&& &&未使用&);&& &&&& //17
&&&&&&& mISO8583Domain[17].setDomainProperty(& 4, R_BCD, FIX_LEN,&&&&& &&& &&& &&未使用&);&& &&&& //18
&&&&&&& mISO8583Domain[18].setDomainProperty(& 4, R_BCD, FIX_LEN,&&&&& &&& &&& &&未使用&);&& &&&& //19
&&&&&&& mISO8583Domain[19].setDomainProperty(& 4, R_BCD, FIX_LEN,&&&&& &&& &&& &&未使用&);&& &&&& //20
&&&&&&& mISO8583Domain[20].setDomainProperty(& 4, R_BCD, FIX_LEN,&&&&& &&& &&& &&未使用&);&& &&&& //21
&&&&&&& mISO8583Domain[21].setDomainProperty(& 3, L_BCD, FIX_LEN,&&&&& &&& &&& &&服务点输入方式&); && &//22 + Henry 4-&3 R_BCD-&L_BCD
&&&&&&& mISO8583Domain[22].setDomainProperty(& 3, R_BCD, FIX_LEN,&&&&& &&& &&& &&卡序列号&);&& &&&& //23 + Henry 4-&3
&&&&&&& mISO8583Domain[23].setDomainProperty(& 4, R_BCD, FIX_LEN,&&&&& &&& &&& &&未使用&);&& &&&& //24
&&&&&&& mISO8583Domain[24].setDomainProperty(& 2, R_BCD, FIX_LEN,&&&&& &&& &&& &&服务点条件代码&);&& &//25 +
&&&&&&& mISO8583Domain[25].setDomainProperty(& 2, R_BCD, FIX_LEN,&&&&& &&& &&& &&服务点PIN获取码&);&& &//26 +
&&&&&&& mISO8583Domain[26].setDomainProperty(& 99, L_BCD, LLVAR_LEN,&& &&& &&& &&未使用&);&& &&&& //27
&&&&&&& mISO8583Domain[27].setDomainProperty(& 99, L_BCD, LLVAR_LEN,&& &&& &&& &&未使用&);&& &&&& //28
&&&&&&& mISO8583Domain[28].setDomainProperty(& 99, L_BCD, LLVAR_LEN,&& &&& &&& &&未使用&);&& &&&& //29
&&&&&&& mISO8583Domain[29].setDomainProperty(& 99, L_BCD, LLVAR_LEN,&& &&& &&& &&未使用&);&& &&&& //30
&&&&&&& mISO8583Domain[30].setDomainProperty(& 99, L_BCD, LLVAR_LEN,&& &&& &&& &&未使用&);&& &&&& //31
&&&&&&& mISO8583Domain[31].setDomainProperty(& 99, L_BCD, LLVAR_LEN,&& &&& &&& &&受理方标识码&);&& &//32 +
&&&&&&& mISO8583Domain[32].setDomainProperty(& 99, L_BCD, LLVAR_LEN,&& && &&& &&& &&未使用&);&& &&&& //33
&&&&&&& mISO8583Domain[33].setDomainProperty( 999, L_BCD, LLLVAR_LEN,& &&& &&& &&未使用&);&& &&&& //34
&&&&&&& mISO8583Domain[34].setDomainProperty( 48, D_BIN, LLVAR_LEN,&& &&& &&& &&二磁道数据&);&& &&&& //35 +
&&&&&&& mISO8583Domain[35].setDomainProperty(112,& D_BIN, LLLVAR_LEN,& &&& &&& &&三磁道数据&);&& &&&& //36 +
&&&&&&& mISO8583Domain[36].setDomainProperty( 12,& L_ASC, FIX_LEN,&&&& &&& &&& &&检索参考号&);&& &&& &//37 +& Henry 16-&12
&&&&&&& mISO8583Domain[37].setDomainProperty(& 6,& L_ASC, FIX_LEN,&&&& &&& &&& &&授权码&);&& &&& &//38 +
&&&&&&& mISO8583Domain[38].setDomainProperty(& 2,& L_ASC, FIX_LEN,&&&& &&& &&& &&应答码&);&& &&& &//39 +& Henry 4-&2
&&&&&&& mISO8583Domain[39].setDomainProperty( 16,& L_ASC, FIX_LEN,&& &&& &&& &&终端序列号&);&& &&&& //40 +& Hw:
&&&&&&& mISO8583Domain[40].setDomainProperty(& 8,& R_ASC, FIX_LEN,&&&& &&& &&& &&受卡方终端标识码&);&& &//41 +
&&&&&&& mISO8583Domain[41].setDomainProperty( 15,& R_ASC, FIX_LEN,&&&& &&& &&& &&受卡方标识码&);&& &//42 +
&&&&&&& mISO8583Domain[42].setDomainProperty( 99,& L_BCD, LLVAR_LEN,&& &&& &&& &&未使用&);&& &&& &//43
&&&&&&& mISO8583Domain[43].setDomainProperty( 25,& L_ASC, LLVAR_LEN,&& &&& &&& &&附加返回数据&);&& &//44 +
&&&&&&& mISO8583Domain[44].setDomainProperty( 99,& L_BCD, LLVAR_LEN,&& &&& &&& &&未使用&);&& &&&& //45
&&&&&&& mISO8583Domain[45].setDomainProperty(999, R_ASC, LLLVAR_LEN,&& &&& &&& &&未使用&);&& &&&& //46
&&&&&&& mISO8583Domain[46].setDomainProperty(999, D_BIN, LLLVAR_LEN,&& &&& &&& &&未使用&);&& &&&& //47
&&&&&&& mISO8583Domain[47].setDomainProperty(322, R_BCD, LLLVAR_LEN,&& &&& &&& &&附加数据-私用&);&& &//48 +
&&&&&&& mISO8583Domain[48].setDomainProperty(& 3, R_ASC, FIX_LEN,&&&&& &&& &&& &&交易货币代码&);&& &//49 +
&&&&&&& mISO8583Domain[49].setDomainProperty(& 3, R_BCD, FIX_LEN,&& &&& &&& &&未使用&);&& &&& &//50
&&&&&&& mISO8583Domain[50].setDomainProperty(& 3, R_BCD, FIX_LEN,&&&&&&&&& &&& &&未使用&);&& &&& &//51
&&&&&&& mISO8583Domain[51].setDomainProperty(& 8, L_ASC, FIX_LEN,&&&&& &&& &&& &&个人标识码数据(PIN)&);&& &//52 +
&&&&&&& mISO8583Domain[52].setDomainProperty( 16, L_BCD, FIX_LEN,&&&&& &&& &&& &&密码相关控制信息&);&& &&& &//53 +
&&&&&&& mISO8583Domain[53].setDomainProperty( 20, R_ASC, LLLVAR_LEN,&& &&& &&& &&附加金额&);&& &&&& //54 +
&&&&&&& mISO8583Domain[54].setDomainProperty(255, R_ASC, LLLVAR_LEN,&& &&& &&& &&IC卡数据域&);&& &&&& //55
&&&&&&& mISO8583Domain[55].setDomainProperty(999, R_BCD, LLLVAR_LEN,&&&&& &&& &&未使用&);&& &&&& //56
&&&&&&& mISO8583Domain[56].setDomainProperty(999, R_BCD, LLLVAR_LEN,&&&&& &&& &&未使用&);&& &&&& //57
&&&&&&& mISO8583Domain[57].setDomainProperty(100, R_BCD, LLLVAR_LEN,&& &&& &&& &&PBOC电子钱包标准交易信息&);&& &&&& //58
&&&&&&& mISO8583Domain[58].setDomainProperty(999, R_BCD, LLLVAR_LEN,&&&&& &&& &&未使用&);&& &&&& //59
&&&&&&& mISO8583Domain[59].setDomainProperty(999, L_BCD, LLLVAR_LEN,&& &&& &&& &&自定义域&);&& &&&& //60 +& Henry R_ASC-&R_BCD
&&&&&&& mISO8583Domain[60].setDomainProperty(999, L_BCD, LLLVAR_LEN,&& &&& &&& &&自定义域&);&& &&&& //61 +& Henry L_ASC-&R_BCD LLVAR_LEN-&LLLVAR_LEN; Hw
&&&&&&& mISO8583Domain[61].setDomainProperty(512, L_ASC, LLLVAR_LEN,&& &&& &&& &&自定义域&);&& &&&& //62 +& Henry R_BCD-&L_ASC
&&&&&&& mISO8583Domain[62].setDomainProperty(999, L_ASC, LLLVAR_LEN,&& &&& &&& &&自定义域&);&& &&&& //63 +&& &Hw
&&&&&&& mISO8583Domain[63].setDomainProperty(& 8, L_ASC, FIX_LEN,&&&&& &&& &&& &&报文鉴别码(MAC)&);&& &//64 +
&&&&&&& mISO8583Domain[64].setDomainProperty(& 8, L_BCD, FIX_LEN,&&&&&&&&& &&& &&未使用&);&&&& &&& &//65
&&&&&&& mISO8583Domain[65].setDomainProperty(& 1, R_ASC, FIX_LEN,&&&&&&&&& &&& &&未使用&);&&&& &&& &//66
&&&&&&& mISO8583Domain[66].setDomainProperty(& 2, R_ASC, FIX_LEN,&&&&&&&&& &&& &&未使用&);&&&& &&& &//67
&&&&&&& mISO8583Domain[67].setDomainProperty(& 3, R_ASC, FIX_LEN,&&&&&&&&& &&& &&未使用&);&&&& &&& &//68
&&&&&&& mISO8583Domain[68].setDomainProperty(& 3, R_ASC, FIX_LEN,&&&&&&&&& &&& &&未使用&);&&&& &&& &//69
&&&&&&& mISO8583Domain[69].setDomainProperty(& 3, R_ASC, FIX_LEN,&&&&& &&& &&& &&管理信息码&);&&&&& //70
&&&&&&& mISO8583Domain[70].setDomainProperty(& 4, R_ASC, FIX_LEN,&&&&&&&&& &&& &&未使用&);&&&& &&& &//71
&&&&&&& mISO8583Domain[71].setDomainProperty(& 4, R_ASC, FIX_LEN,&&&&&&&&& &&& &&未使用&);&&&& &&& &//72
&&&&&&& mISO8583Domain[72].setDomainProperty(& 6, R_ASC, FIX_LEN,&&&&&&&&& &&& &&未使用&);&&&& &&& &//73
&&&&&&& mISO8583Domain[73].setDomainProperty( 10, R_ASC, FIX_LEN,&&&&& &&& &&& &&贷记交易笔数&);&&& //74
&&&&&&& mISO8583Domain[74].setDomainProperty( 10, R_ASC, FIX_LEN,&&&&& &&& &&& &&贷记自动冲正交易笔数&);&&&&& //75
&&&&&&& mISO8583Domain[75].setDomainProperty( 10, R_ASC, FIX_LEN,&&&&& &&& &&& &&借记交易笔数&);&& &&& &&& &//76
&&&&&&& mISO8583Domain[76].setDomainProperty( 10, R_ASC, FIX_LEN,&&&&& &&& &&& &&借记自动冲正交易笔数&);&&&&& //77
&&&&&&& mISO8583Domain[77].setDomainProperty( 10, R_ASC, FIX_LEN,&&&&& &&& &&& &&转帐交易笔数&);&& &&& &&& &//78
&&&&&&& mISO8583Domain[78].setDomainProperty( 10, R_ASC, FIX_LEN,&&&&& &&& &&& &&转帐自动冲正交易笔数&);&&&&& //79
&&&&&&& mISO8583Domain[79].setDomainProperty( 10, R_ASC, FIX_LEN,&&&&& &&& &&& &&查询交易笔数&);&&& //80
&&&&&&& mISO8583Domain[80].setDomainProperty( 10, R_ASC, FIX_LEN,&&&&& &&& &&& &&授权交易笔数&);&&& //81
&&&&&&& mISO8583Domain[81].setDomainProperty( 12, R_ASC, FIX_LEN,&&&&&&&&& &&& &&未使用&);&&&& &&& &//82
&&&&&&& mISO8583Domain[82].setDomainProperty( 12, R_ASC, FIX_LEN,&&&&& &&& &&& &&贷记交易费金额&); &&& &//83
&&&&&&& mISO8583Domain[83].setDomainProperty( 12, R_ASC, FIX_LEN,&&&&&&&&& &&& &&未使用&);&&& &&& &//84
&&&&&&& mISO8583Domain[84].setDomainProperty( 12, R_ASC, FIX_LEN,&&&&& &&& &&& &&借记交易费金额&); &&& &//85
&&&&&&& mISO8583Domain[85].setDomainProperty( 16, R_ASC, FIX_LEN,&&&&& &&& &&& &&贷记交易金额&);&&& //86
&&&&&&& mISO8583Domain[86].setDomainProperty( 16, R_ASC, FIX_LEN,&&&&& &&& &&& &&贷记自动冲正金额&);&& &//87
&&&&&&& mISO8583Domain[87].setDomainProperty( 16, R_ASC, FIX_LEN,&&&&& &&& &&& &&借记交易金额&);&&& //88
&&&&&&& mISO8583Domain[88].setDomainProperty( 16, R_ASC, FIX_LEN,&&&&& &&& &&& &&借记自动冲正交易金额&);&&&& &&& &//89
&&&&&&& mISO8583Domain[89].setDomainProperty( 42, R_ASC, FIX_LEN,&&&&& &&& &&& &&原交易的数据元素&);&& &&& &&& &//90
&&&&&&& mISO8583Domain[90 ].setDomainProperty(& 1, R_BCD, FIX_LEN,&&&&& &&& &&文件修改编码&);&&& //91
&&&&&&& mISO8583Domain[91 ].setDomainProperty(& 2, R_BCD, FIX_LEN,&&&&&&&&&& &未使用&);&&&& &&& &//92
&&&&&&& mISO8583Domain[92 ].setDomainProperty(& 5, R_BCD, FIX_LEN,&&&&&&&&&& &未使用&);&&&& &&& &//93
&&&&&&& mISO8583Domain[93 ].setDomainProperty(& 7, R_BCD, FIX_LEN,&&&&& &&& &&服务指示码&);&&&& //94
&&&&&&& mISO8583Domain[94 ].setDomainProperty( 42, R_BCD, FIX_LEN,&&&&& &&& &&代替金额&);&& &&& &//95
&&&&&&& mISO8583Domain[95 ].setDomainProperty(& 8, R_BCD, FIX_LEN,&&&&&&&&&& &未使用&);&&&& &&& &//96
&&&&&&& mISO8583Domain[96 ].setDomainProperty( 16, R_BCD, FIX_LEN,&&&&& &&& &&净结算金额&);&&&& //97
&&&&&&& mISO8583Domain[97 ].setDomainProperty( 25, R_BCD, FIX_LEN,&&&&&&&&&& &未使用&); && &&& &//98
&&&&&&& mISO8583Domain[98 ].setDomainProperty( 11, R_ASC, LLVAR_LEN,&&& &&& &&结算机构码&);&& &&& &//99
&&&&&&& mISO8583Domain[99 ].setDomainProperty( 11, R_ASC, LLVAR_LEN,&&& &&& &&接收机构码&);&& &&& &//100
&&&&&&& mISO8583Domain[100].setDomainProperty( 17, R_BCD, LLVAR_LEN,&&& &&& &&文件名&); && &&& &//101
&&&&&&& mISO8583Domain[101].setDomainProperty( 28, R_BCD, LLVAR_LEN,&&& &&& &&帐号1&); &&& &&& &//102
&&&&&&& mISO8583Domain[102].setDomainProperty( 28, R_BCD, LLVAR_LEN,&&& &&& &&帐号2&);& &&& &&& &//103
&&&&&&& mISO8583Domain[103].setDomainProperty(10,& R_BCD, LLLVAR_LEN,&& &&& &&&);&&&&& &&& &//104
&&&&&&& mISO8583Domain[104].setDomainProperty(999, R_BCD, LLLVAR_LEN,&& &&& &&&);&&&&& &&& &//105
&&&&&&& mISO8583Domain[105].setDomainProperty(999, R_BCD, LLLVAR_LEN,&& &&& &&&);&&&&& &&& &//106
&&&&&&& mISO8583Domain[106].setDomainProperty(999, R_BCD, LLLVAR_LEN,&& &&& &&&);&&&&& &&& &//107
&&&&&&& mISO8583Domain[107].setDomainProperty(999, R_BCD, LLLVAR_LEN,&& &&& &&&);&&&&& &&& &//108
&&&&&&& mISO8583Domain[108].setDomainProperty(999, R_BCD, LLLVAR_LEN,&& &&& &&&);&&&&& &&& &//109
&&&&&&& mISO8583Domain[109].setDomainProperty(999, R_BCD, LLLVAR_LEN,&& &&& &&&);&&&&& &&& &//110
&&&&&&& mISO8583Domain[110].setDomainProperty(999, R_BCD, LLLVAR_LEN,&& &&& &&&);&&&&& &&& &//111
&&&&&&& mISO8583Domain[111].setDomainProperty(999, R_BCD, LLLVAR_LEN,&& &&& &&&);&&&&& &&& &//112
&&&&&&& mISO8583Domain[112].setDomainProperty(999, R_BCD, LLLVAR_LEN,&& &&& &&&);&&&&& &&& &//113
&&&&&&& mISO8583Domain[113].setDomainProperty(999, R_BCD, LLLVAR_LEN,&& &&& &&&);&&&&& &&& &//114
&&&&&&& mISO8583Domain[114].setDomainProperty(999, R_BCD, LLLVAR_LEN,&& &&& &&&);&&&&& &&& &//115
&&&&&&& mISO8583Domain[115].setDomainProperty(999, R_BCD, LLLVAR_LEN,&& &&& &&&);&&&&& &&& &//116
&&&&&&& mISO8583Domain[116].setDomainProperty(999, R_BCD, LLLVAR_LEN,&& &&& &&&);&&&&& &&& &//117
&&&&&&& mISO8583Domain[117].setDomainProperty(999, R_BCD, LLLVAR_LEN,&& &&& &&&);&&&&& &&& &//118
&&&&&&& mISO8583Domain[118].setDomainProperty(999, R_BCD, LLLVAR_LEN,&& &&& &&&);&&&&& &&& &//119
&&&&&&& mISO8583Domain[119].setDomainProperty(999, R_BCD, LLLVAR_LEN,&& &&& &&&);&&&&& &&& &//120
&&&&&&& mISO8583Domain[120].setDomainProperty(999, R_BCD, LLLVAR_LEN,&& &&& &&&);&&&&& &&& &//121
&&&&&&& mISO8583Domain[121].setDomainProperty(999, R_BCD, LLLVAR_LEN,&& &&& &&&);&&&&& &&& &//122
&&&&&&& mISO8583Domain[122].setDomainProperty(999, R_BCD, LLLVAR_LEN,&& &&& &&新密码数据&);&&&& //123
&&&&&&& mISO8583Domain[123].setDomainProperty(999, R_BCD, LLLVAR_LEN,&&&&& &&& &&未使用&);&&&&& &&& &//124
&&&&&&& mISO8583Domain[124].setDomainProperty(999, R_BCD, LLLVAR_LEN,&&&&& &&& &&未使用&);&&&&& &&& &//125
&&&&&&& mISO8583Domain[125].setDomainProperty(999, R_BCD, LLLVAR_LEN,&&&&& &&& &&未使用&);&&&&& &&& &//126
&&&&&&& mISO8583Domain[126].setDomainProperty(999, R_BCD, LLLVAR_LEN,&&&&& &&& &&未使用&);&&&&& &&& &//127
&&&&&&& mISO8583Domain[127].setDomainProperty(& 8, R_BCD, FIX_LEN,&&&&& &&& &&信息确认码&);&& &&& &//128
本文已收录于以下专栏:
相关文章推荐
日,39岁的鲍捷乘上从硅谷至北京的飞机,开启了他心中的金融梦想。...
日前,中国 报表软件领导品牌FineReport厂商帆软软件有限公司,再次携手通联支付网络服务股份有限公司,开启第6次合作,共同打造联通支付下属各分公司的预付卡系统及报表平台。
通联支付...
前天去陆家嘴参加了通联量化的一个公开课。通联量化才两周年,所以我还是比较早的知道这个平台的人,至少一年多以前就知道有这样一个东西,可惜当时太年轻,二级市场的知识也很匮乏,更加重要的是,没有经历过A股暴...
情况:项目中需要利用webview调用写好的java后台网页,并利用网页端的第三方通联支付。
前面的网页跳转都能支持,没有任何问题. 当跳转到支付界面的时候,点击”首次...
让我们来看两则新闻:
新闻一:媒体报道:日,上午8点中国电信到北美海底光缆发生故障,导致电信用户大面积无法连接美国网站。根据网友反映,早上起来发现宕机警报,原因是中国电信AS4134...
如果说HTTP是因特网的信使,那么HTTP报文就是运送的包裹。所有的HTTP程序都是通过互相发送报文来完成工作的。本文将介绍HTTP报文的流动方式,报文的组成部分,请求和响应报文之间的区别等。
他的最新文章
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 apple pay是什么意思 的文章

 

随机推荐