联机处理
(一)文档说明
在联机响应处理阶段,终端接收来自发卡行主机的联机响应,并决定是否应该进行发卡行认证:
——如果以下两个条件同时满足,终端将按照7.11.4.3描述进行发卡行认证。
● 联机授权响应中包含发卡行认证数据;
● 应用交互特征(AIP)显示卡片支持发卡行认证。
——如果满足以下任一条件,终端将进行交易结束处理。
● 联机授权响应中不包括发卡行认证数据;
● 应用交互特征(AIP)表明卡片不支持发卡行认证。
终端应能正确读取并处理收单行返回的数据:授权码,授权响应代码,发卡行认证数据,发卡行脚本等。
授权响应码的处理:联机成功后,收单行会在响应报文里传送发卡行的两字节授权响应码,表示发
卡行对交易的授权结果,如批准交易、拒绝交易或发卡行要求的授权参考。
处理脚本: 脚本解析及处理 后面单独再讲.
第二次GAC
(二)资料解析
第二次GAC根据8D CDOL2的数据来组包跟 CDOL1类似
8D-卡片风险管理数据对象列表2(CDOL2)
Length=29
Value=8A02 9F0206 9F0306 9F1A02 9505 5F2A02 9A03 9C01 9F3704 9F2103 9F4E14
3030 //授权响应吗
000000000002 授权金额
000000000000 其他金额
0156 终端国家代码
000004E000 tvr
0156 交易货币代码
160601 交易日期
00 交易类型
719B5D0B 终端随机数
095214 交易时间
0000000000000000000000000000000000000000 商户名称
SEND:80AE40003630300000000000020000000000000156000004E000015616060100719B5D0B095214000000000000000000000000000000000000000000
这里发送的命令第三个字节为40(01000000),明显这个第二次GAC,终端请求的是TC。
recv:801E 40 18D7 7B029B07E9B6C0FB 070D0103602402010A010000000000B53DAF03 9000
表19 生成AAC时GENERATE AC命令返回的数据对象
标签 长度 值 存在
‘9F27’ 1 密文信息数据 必须
‘9F36’ 2 应用交易计数器 必须
‘9F26’ 8 应用认证密文 必须
‘9F10’ 变长,最长32 发卡行应用数据 可选
(三)源码片段分析
根据AIP (82标签)和 返回的91标签 待认证的数据
paip = emvget_appdata(0x82, NULL);
if (AIP_IA_Support(paip) && (p91 = emvget_appdata(0x91, &i)))
{
if (emvicc_external_auth(p91, i) != 0x9000) //认证命令
{
tvr_set(ISSUER_AUTHENTICATION_FAILED); //持卡人认证失败
}
tsi_set(ISSUER_AUTH_PERFORMED);//持卡人认证成功
}
(四)常见问题及分析
1.在做完对应的步骤,不要忘记设置相应的TVR(95) TSI(9B)
2.根据后台响应的39域应答码,向卡片发送第二次GAC请求指令,以结束交易
扫描关注我
(转载本站文章请注明作者和出处 Undefined)