目录

  • 目录
  • QPBOC快速借贷记流程
    • 交易预处理
    • 应用选择
    • 最终选择
    • 应用初始化
      • GPO命令报文发送
      • GPO响应报文接收
    • 卡片行为分析
    • 读取记录
    • 脱机数据认证

QPBOC快速借贷记流程

在我的上一篇文章中,我曾提到QPBOC有以下几个步骤:
- 交易预处理
- 应用选择
- 最终选择
- 应用初始化
- 卡片行为分析
- 读取记录
- 脱机数据认证


交易预处理

终端通过检查终端交易属性(9F66)来判断其交易的类型,如是否支持QPBOC。如果支持QPBOC,则在提示持卡人出示卡片和终端非接触式界面被激活前,必须进行这一步。否则,不需要进行这一步。
接下来,我来说明一下交易预处理的流程(在QPBOC规范中,这一点也说明得很清楚)

  1. 终端获得授权金额(9F02)
  2. 对授权金额进行检查,并设置终端交易属性第2字节
    1. 终端交易属性联机应用密文设置的条件

      • 终端配置为支持状态检查,并且授权金额为一个货币单位
      • 除了终端支持QPBOC扩展应用这种情况,其他授权金额为零且终端具有联机能力的情况
      • 授权金额大于非接触终端脱机最低限额或可用的终端最低限额(9F1B)
    2. 终端交易属性CVM设置的条件
      • 授权金额大于或等于终端执行CVM限额
    3. 采用另一种界面的条件
      • 除了终端支持QPBOC扩展应用这种情况,其他授权金额为零且终端仅支持脱机的情况
      • 授权金额大于或等于终端非接触交易限额
  3. 在预交易处理成功完成后,终端提示持卡人出示卡片,并对非接触界面上电。

应用选择

当卡片和终端建立通信后,终端采用“2PAY.SYS.DDF01”来选择PPSE。为满足时间的要求,卡片所返回的FCI尽可能只列出一个应用或者尽量少的应用。
接下来,我将展示其过程:
终端向卡片发出SELECT 命令来选择文件名为“2PAY.SYS.DDF01”的支付系统环境。
send =>00A404000E 325041592E5359532E4444463031
若回送的状态字为“90 00”,则命令执行成功,并进入非接触式支付系统环境。
recv <=6F 31 84 0E 325041592E5359532E4444463031 A5 1F BF0C 1C 61 1A 4F 08 A00000033301010250 0B 50424F432043524544495487 01 01

至此,终端得到了所需要进入的ADF的DF名。
若回送的状态字为其他状态字,或PPSE存在错误格式,则不能从FCI中获得AID,终端应关闭非接触式界面,启用另一界面。QPBOC并不支持AID列表选择


最终选择

在上一步骤中,我们已经得到了ADF的DF名:A0 00 00 03 33 01 01 02,且所返回的FCI中只有一个AID。所以,终端最终选择该ADF。
卡片返回PDOL的基本内容依赖于支持的密文版本以及卡片是否支持脱机QPBOC交易(这一部分PBOC规范的第12部分已经有了比较详细的说明)
send =>00A4040008 A000000333010102
recv <=6F 56 84 08 A000000333010102 A5 4A 50 0B 50424F4320435245444954 87 01 01 9F38 18 9F66 04 9F02 06 9F03 06 9F1A 02 95 05 5F2A 02 9A 03 9C 01 9F37 04 5F2D 02 7A68 9F11 01 01 9F12 0B 50424F4320435245444954 BF0C 05 9F4D 02 0B0A

在所返回的响应中,最为重要的数据就是PDOL和交易日志入口。相比于接触式应用,QPBOC要求PDOL中包含更多的标签:4个字节的终端交易属性、6个字节的授权金额、6个字节的其他金额、2个字节的终端国家代码、5个字节的终端验证结果(TVR)、2个字节的交易货币代码、3个字节的交易日期、1个字节的交易类型、4个字节的不可预知数。


应用初始化

GPO命令报文发送

在接收到PDOL数据时,终端必须检查卡片所返回的响应。如果标签为“9F66”的数据项在PDOL中不存在或PDOL不存在,则终端应关闭非接触式界面,并尝试另一种界面进行交易
如果数据存在,终端将通过GPO命令将卡片所需的数据传送给卡片。卡片根据所接收到的终端交易属性判断交易类型是QPBOC还是非接触借记贷记应用。
如果卡片支持非接触借记贷记应用且“终端交易属性”第1字节第7位=“1”(支持非接触式借贷记应用),则卡片使用非接触借记贷记应用路径,其处理流程和接触式借记贷记应用处理流程一致,只是通信方式不一样。
如果卡片支持QPBOC应用且“终端交易属性”第1字节第6位=“1”(支持非接触QPOBC),卡片将使用QPBOC路径,执行卡片行为分析,确定该操作是进行脱机批准、联机还是脱机拒绝。卡片将其生成的应用密文加入GPO响应报文中并返回给终端。
如果没有匹配的非接触交易路径,则卡片应在响应中返回一个指示器(6985)来终止交易,并尝试采用另一种界面。

GPO响应报文接收

当终端收到卡片所返回的响应报文时,终端需要通过应用交互特征和卡片响应GPO命令提供的数据元决定是否采用QPBOC路径。

过程展示:
1. send =>80A80000238321 60000000(终端交易属性) 000000000001(交易金额为0.01元)000000000000(其他交易金额为0.00元) 0156(终端国家代码为中国)0000000000(终端验证结果)0156(人民币)150818(交易时间:15年8月18日) 00(商品或服务消费)11223344(不可预知数)
recv <= 80 12 7C00 08010100 10010301 10070700 18010400
其中终端交易属性为“60 00 00 00”,则表明第1字节为01 10 00 00,表明终端仅支持QPBOC,又支持非接触式应用,(估计卡片也是一样的属性),所以,卡片将按照非接触式借记/贷记应用进行处理,GPO命令将只能返回AIP和AFL,终端将按照非接触式借记/贷记流程进行处理
2. send =>80A80000238321 3E000000(终端交易属性) 000000000001(交易金额为0.01元)000000000000(其他交易金额为0.00元) 0156(终端国家代码为中国)0000000000(终端验证结果)0156(人民币)150818(交易时间:15年8月18日) 00(商品或服务消费)11223344(不可预知数)
recv <= 77 5A 82 02 7C00 9F36 02 002C 57 13 (IC卡卡号)D**(失效日期)2010000078000000F 9F10 13 07370103A02000010A0100000000002A783CAC 9F26 08 589005F5A07E44CC5F3401009F6C0200009F5D06000000000000 5F20 06 ******

其中终端交易属性为“3E 00 00 00”,则表明第1字节为00 11 11 10,表明终端支持QPBOC,支持联机PIN,支持签名,且终端具有联机能力,请求联机处理,所以卡片将按照QPBOC进行处理,GPO命令将不仅返回AIP、AFL、还需要返回应用密文、动态签名数据
77 5A
82 02 7C00(应用交互特征AIP)
9F36 02 002C (应用交易计数器ATC)
57 13 **** D * 201 00000 78000000F(磁条2等效数据)
9F10 13 07 37 01 03 A0 20 00 01 0A 01 0000000000(电子现金余额) 2A783CAC(MAC) (发卡行应用数据)
9F26 08 589005F5A07E44CC5F3401009F6C0200009F5D06000000000000(应用密文AC)
5F20 06 *********(持卡人姓名)
此时,应用密文在GPO命令响应中出现,终端就可以按照QPBOC流程进行处理。
2磁道等价数据由应用主账号PAN(16位数字)、分隔符(“D”)、失效日期(YYMM)、服务码(3位数字)、PIN验证域(4位数字)、自定义数据组成,如果数据不满偶数,则在后面添加F。
因此,从磁条2等效数据中,可以明确了解到我的信用卡卡号和失效日期

而发卡行应用数据中,可以了解到第3字节为01,表示该应用密文采用的是01版本,第5字节为A0(1010 0000),表示要求联机交易, 其IDD类型为01,表示接下来的数据为电子现金余额的数目,所以电子现金余额为0元。
AIP表明:卡片支持SDA、DDA、持卡人认证,要求执行终端风险管理,并支持发卡行认证。


卡片行为分析

当卡片接收到终端传送的GPO命令时,卡片通过卡片行为分析来判断该交易的脱机批准、脱机拒绝、联机处理,并利用GPO传送的数据生成动态签名和应用密文,回送给终端。
卡片的行为是通过卡片附加处理(9F68)中个人化的一系列需求来控制的。其实就是对货币类型和货币金额的检查。(比较详细的步骤可参考规范,我只讲述了大概的流程)

  1. 设置货币匹配位
    如果货币不匹配,且不允许不匹配货币交易,则拒绝交易
  2. 如果终端仅支持脱机
    1. 卡片为新卡,则拒绝交易
    2. 脱机PIN尝试上限超过,则拒绝交易
    3. 要求CVM
      • 卡片和终端都支持签名,则脱机货币检查
      • 卡片或终端至少一个不支持签名,则终止非接触式交易
  3. 如果终端支持联机
    1. 终端不要求CVM,则检查联机处理要求
    2. 要求CVM
      • 卡片和终端均支持联机PIN,则联机处理
      • 卡片和终端均支持签名,则检查联机处理请求
      • 没有共同的CVM,则终止非接触式交易

检查联机处理请求
如果先前的检查没有指示需要联机处理或终止非接触交易,就需要执行该检查,来确定是否存在其它的条件导致联机处理,否则,将进行脱机货币检查
1. 终端请求联机处理
2. 货币不匹配,且不允许不匹配货币的脱机交易
3. 卡片为新卡
4. PIN尝试超过上限
如果满足以上任意条件,则进行联机处理,否则,进行脱机货币检查

脱机货币检查
当交易货币匹配应用货币时,应执行脱机消费检查。如果货币不匹配,则需要执行脱机下的货币不匹配

脱机消费检查
脱机消费检查有以下三种方法:小额检查、小额或CTTA检查、小额和CTTA检查

我们可以从下面的例子中,来区别出小额检查、小额或CTTA检查、小额和CTTA检查。
假如,卡片中的电子现金余额只有100块,那么情况会有下面几种:
1. 执行小额检查,也就是检查当前余额是否足够支持消费金额,其最多只能消费100块
2. 执行小额和CTTA检查,除了检查是否足够的余额支付消费金额之外,还需要检查已经进行的脱机消费是否已经达到上限,其可能无法消费100块
3. 执行小额或CTTA检查,检查是否有余额足够支持消费金额,如果不够,检查已经进行的脱机消费是否已经达到上限。如果还没有达到脱机消费的上限,则允许先透支消费。

如果无法通过脱机消费检查,对于具有联机处理能力的终端而言,则完成联机交易。对于仅支持脱机的终端,则拒绝交易。如果通过了脱机消费检查,则脱机批准。

脱机下的货币不匹配
1. 连续交易计数器(国际-货币)小于连续脱机交易限制数(国际-货币),则卡片应当脱机批准
2. 如果前面的条件不满足,且终端具有联机功能,则卡片应当联机交易
3. 如果前面的条件不满足,且终端仅支持脱机,则卡片脱机拒绝

过程展示:
1. 货币匹配,其交易货币(人民币)与应用货币相匹配
2. 终端交易属性表示终端具有联机能力,跳过第二步骤(仅支持脱机终端检查),进行第三步骤(终端具有联机能力检查)。
3. 检查是否进行CVM。终端交易属性的CVM请求位为0,且货币匹配,授权金额小于卡片CVM限额。交易无需进行CVM,检查联机处理请求
4. 终端要求联机处理,卡片也要请求联机处理
5. 卡片生成并返回ARQC密文

读取记录

卡片根据AFL来读取指定的记录,一旦指示的记录都被读取,终端应提示持卡人和商户可将卡片移开。

脱机数据认证

根据发卡行自定义数据可知交易的处理方式。
如果脱机拒绝,终端直接拒绝交易,交易结束。
如果联机授权,终端向收单行发送联机授权报文,根据收单行返回的响应判断交易是否批准。但要注意的是联机授权成功,则扣除的是银行账户的金额,而不是卡片上的金额。
如果脱机批准,终端进行FDDA认证,其详细认证过程见卡片规范。
如果FDDA认证通过,则终端提供清算消息(交易证书TC、相关数据)
如果FDDA认证失败,交易被拒绝、终止或根据发卡行设置发送联机请求

由于终端读取了最后一条记录后,卡片已经离开场中,这就会引起一个问题:如果卡片允许脱机批准,此时卡片上的电子现金余额已经减少,但终端FDDA验证失败,拒绝交易,收单行无法收到钱,由于卡片的离开,终端无法将验证结果传递给卡片,这就出现了扣费而不打单的情况。对于这个问题,我还不知道要怎么解决。


QPBOC快速借贷记流程(2)相关推荐

  1. 非接触借记贷记流程报文解析

     交易预处理 终端通过检查终端交易属性(9F66)来判断其交易的类型,如是否支持QPBOC.如果支持QPBOC,则在提示持卡人出示卡片和终端非接触式界面被激活前,必须进行这一步.否则,不需要进行这 ...

  2. 一张金融IC卡的交易流程(二)-----基本测试环境及借贷记交易流程(银联,交通部均为此流程)

    1.基本测试环境 读卡器:SDI011 密钥: ;3DES算法主密钥,应用密文计算 MdkAc_3DES=2F3D201558865D02A1497F04F820924C ;3DES算法主密钥,MAC ...

  3. PBOC借贷记交易流程与命令解析(二) -应用选择

    当我们首次进行一个借贷记交易时,卡插进POS终端,首先终端会判断卡片的通信协议类型和ATR值. 一  当终端能识别卡片时,终端开始下发一个选择PSE指令,即选择一个金融环境. 二 根据选择PSE命令的 ...

  4. QPBOC与标准借贷记的脱机认证详细过程

    最近搞定了标准借贷记的脱机认证,清楚了它的脱机认证过程.跟电子现金区别还是蛮大的.想在此详细的记录下,,, 未完待续...先说一下ARQC, 直接看指令 00A404000E315041592E535 ...

  5. PBOC/EMV之小额支付, 电子钱包和借贷记

    EMV标准共分四册, 分别是book1到book4, 这四册里没有对小额支付和EP/ED的相关说明, 也就是说,PBOC L2的这两个标准在EMV L2里是没有的. 所以,PBOC L2里借贷记部分实 ...

  6. 做废99个短视频账号才总结出的7天快速起号流程

    做废99个短视频账号才总结出的7天快速起号流程 1.注册账号 放大镜搜索框输入所在赛道关键词,刷短视频刷到同行优秀作品可以收藏,方便以后创作寻找灵感 2.寻找20个左右同类优秀账号蕞好是10w粉丝左右 ...

  7. LeaRun.Framework━ .NET快速开发框架 ━ 工作流程组件介绍

    1. LeaRun.Framework .NET 框架介绍 LeaRun.Framework .NET,基于.NET的快速开发 框架 .整合框架,为企业或个人在 .NET环境下快速开发系统提供了强大的 ...

  8. android app 快速接入支付宝流程(android studio)

       前一段时间做了商城app,增加了支付宝支付,感谢在遇到问题的时候,帮助我的大神们~    编程的路很长,学习的路也很长,总结才是提高的最快过程~ 一.快捷支付地址: https://b.alip ...

  9. linux快速建站流程,使用wordpress建站流程的八个步骤

    之前很多小伙伴在WEB主题公园下载或者购买了主题之后,对wordpress建站的一些流程并不是非常了解,WEB主题公园悉心为大家搜罗的各种资源,很多朋友也没有能够找到. 这也是在WEB主题公园的资源越 ...

最新文章

  1. 在struts框架下实现文件的上传
  2. hbuilderx的快捷键整理pdf_mac键盘快捷键详解,苹果电脑键盘快捷键图文教程
  3. 蓝桥杯 基础练习 芯片测试
  4. jQuery判断checked的三种方法
  5. 计算混响时间的意义_混响是什么意思,混响时间计算公式汇总,混响器的
  6. STM8S103K3和STM8S105K4原理图
  7. MMA7660传感器使用心得
  8. 【Python】与或非的符号表示
  9. 计算机五笔打字口诀,电脑五笔打字的字根口诀是什么?
  10. 在 Activity 中添加 Menu 菜单
  11. 2021年6月四六级成绩查询时间!
  12. 长微博android,凑合着用吧:Android版长微博
  13. 什么是智能颈部按摩仪低频脉冲电流?它会对人体有何影响?
  14. CUE 文件及其格式说明
  15. BUAA-2021春-数据结构-综合作业-文本摘要生成(Hash实现 + SIMD优化 终测最速)
  16. ASP.NET Core 导出Excel文件
  17. 分享三个前端学习方法、十项前端面试笔记:养精蓄锐,为想去的公司努力一把
  18. JAVA可以赋值分数吗,信息技术支持下的教学反思超星尔雅网课答案
  19. 写给大数据初级开发者或准备转行大数据的人
  20. Linux shell编程自动化运维,三剑客之awk原理,语法,内部变量,格式化输出,模式和动作 详细解析

热门文章

  1. 面向对象多项式求导总结
  2. HTML常用的标签:
  3. HDU - 1253 胜利大逃亡 BFS
  4. 微信支付二维码上添加logo
  5. flutter 使用 高德地图选取位置
  6. 用Jmeter分布式测试——多台电脑做压力测试
  7. booting和adbboost
  8. 集合相关题目0927
  9. 中国联通将 900MHz 频段频谱资源重耕用于 5G 系统,更有利用把5G网络覆盖到边远地区的每一寸土地
  10. HTML5 UI 模板