借记就是储蓄卡
贷记就是信用卡
对卡片和终端来说是一样的
后台系统中区分
步骤1:
近距离支付系统环境(PPSE)
选PPSE(使用文件名称“2PAY.SYS.DDF01”来选择PPSE) 00 A4 04 00 + 长度LC(0E) + “2PAY.SYS.DDF01”
19
00a404000e325041592e5359532e4444463031
返回数据
Send APDU = 0x0000 run time = 20
para1 = 52
para2 = 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 “应用优先指示器”
9000
注:AID解析:
a0 00 00 03 33 // 注册的应用提供商标识(RID)长度为5字节,唯一地表示应用提供商,根据GB/T 16649.5分配
01 01 01 // 最长为11字节的可选域,由应用提供商定义。
步骤2:
选AID,根据上面的应答a000000333010101
13
00a4040008a000000333010101
返回数据
Send APDU = 0x0000 run time = 23
para1 = 71
para2 = 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:
读钱包余额
5
80ca9f7900
返回数据
Send APDU = 0x0000 run time = 8
para1 = 11
para2 = 9F79060000000007979000
9F79 06 000000000797 “电子现金余额:7.97元”
9000
步骤4:
应用初始化(GPO:Get Processing Options获取处理选项)
40
80a80000238321
28000000 “04终端交易属性”
000000000001 “06授权金额”
000000000000 “06其它金额”
0156 “02终端国家代码”
0000000000 “05终端验证结果(TVR)”
0156 “02交易货币代码”
140315 “03交易日期”
00 “01交易类型”
5f2d027a “04不可预知数”
80a8000023832128000000000000000001000000000000015600000000000156140315005f2d027a
返回数据
Send APDU = 0x0000 run time = 324
para1 = 90
para2 = 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:
1、读取AFL指定的记录
5
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 “
PBOC.zip_PBOC java_java pboc_pboc_pboc 3.0 交易
版权申诉
178 浏览量
2022-09-23
17:10:55
上传
评论
收藏 7KB ZIP 举报
小波思基
- 粉丝: 70
- 资源: 1万+
最新资源
- Flume进阶-自定义拦截器jar包
- Dubins曲线算法讲解和在运动规划中的使用.pdf
- 上市公司-股票性质数据-工具变量(民企、国企、央企)2003-2022年.dta
- 上市公司-股票性质数据-工具变量(民企、国企、央企)2003-2022年.xlsx
- Reeds+Shepp曲线算法讲解和实现.pdf
- 毕业设计基于SpringBoot+MyBatisPlus+MySQL+Vue的外卖配送信息系统源代码+数据库
- 词向量(Word Embeddings)是自然语言处理(NLP)领域的一种重要技术.txt
- Surfer,线性函数
- MyBatis 的动态 SQL 是其核心特性之一.txt
- 时代的sdddsddsddsd
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈