非接环境(PPSE)和接触环境(PSE)的FCI有什么区别

探讨非接触式交易环境中,快速支付流程对FCI(文件控制信息)的影响及优化策略,包括目录选择方法的弃用,直接指定支持的AID以加快交易速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FCI 产生区别的原因在于非接环境做交易有可能走快速支付的流程,为了减少交易时间就必须要优化指令流。有人可能会有疑问,如果是走非接PBOC,PPSE的FCI是否就可以和PSE一样了?答案是否定的,因为在选择PPSE阶段,卡片并不知道这笔交易后面会走借贷记还是快速支付。

首先,PPSE环境的交易不再支持目录选择方法建立AID列表,因为这种轮询的查找方式确实非常耗时间。

对于目录选择方法,PSE的FCI, TAG 88是肯定要有的,因为卡片必须要支持目录选择方法,即使88指定的文件记录里没有AID, tag88这个项也是一定要有的。Tag 84和tag A5就不必多说了。所以一个基本的PSE的FCI大概是这样的:

6F 1E 84 0E 31 50 41 59 2E 53 59 53 2E 4444 46 30 31 A5 0C 88 01 01 5F 2D 02 7A 68 9F 11 01 01

解析如下:

Tag BF0C和9F11是可选的,一般都有。

  • 接触环境的流程是:终端读到tag 88中的SFI,然后读该SFI中的所有记录,直到返回非9000,非过程字的状态码。读到的记录中的AID和终端里保存的去匹配,最终建立一个候选列表

非接环境,为了达到时间要求,ppse的FCI不要用88这个tag, 而是直接通过tag4F(包含在tag 61),直接到FCI中指明支持的AID.如果卡片支持多个应用,就有多个61的结构。规范一般建议只有一个应用。在多个应用的情况下,也可以用优先级指示器(tag 87)要指明优先顺序,这样才能在快速支付时选择一个优先级最高的直接执行。快速支付的原则之一是不能提示多应用供持卡人选择,一定要缺省选择一个。

所以对于非接交易,无论是走非接借贷记还是快速支付,读记录找AID的这个步骤就没有了,这是要特别注意的。给出一个快速支付下环境FCI的示例:

6F30840E325041592E5359532E4444463031A51EBF0C1B61194F08A000000333010101500A50424F43204445424954870101

解析图:

参考:

全国公共交通一卡通应用技术规范.pdf_4.7.  选择响应报文(FCI )】


--------------------- 
作者:Pony小马 
来源:优快云 
原文:https://blog.youkuaiyun.com/pony_maggie/article/details/43169617 
版权声明:本文为博主原创文章,转载请附上博文链接!

<think>嗯,用户需要EMV支付规范PURE Certification的测试案例,这属于支付领域的专业认证内容。用户可能是支付终端开发工程师或测试人员,正在准备产品认证。 从技术深度看,EMV PURE认证主要针对接触支付终端,需要覆盖POS终端与卡片交互的全流程。核心测试点应该包括:终端行为分析、卡片指令处理、交易流程合规性。用户可能需要具体案例而理论描述,所以准备给出可操作的测试场景。 考虑到认证要求严格,测试案例需要涵盖正常流程异常处理。比如交易中断恢复、卡片类型识别错误等边界情况。另外注意到用户提到"开发测试目的",所以补充了测试工具建议,这些工具能模拟不同卡片行为,对开发阶段很有帮助。 用户没有说明具体终端类型(传统POS/移动POS),所以案例设计保持通用性。如果用户后续补充设备类型,可以调整测试重点——比如移动POS需加强NFC信号测试。 最后提醒用户注意认证体系差异很必要。VISA银联的PURE要求不同,之前有客户因混淆标准导致认证失败。补充的参考资料链是官方文档,能避免用户走弯路。</think>以下是针对EMV支付规范PURE Certification的核心测试案例,涵盖终端认证的关键场景(基于EMV Contactless Specifications Book C-7): --- ### 一、终端行为测试案例 1. **终端选择处理** - **测试用例**:终端需正确识别卡片AID列表,优先选择本地支持的支付应用 - **验证点**:当卡片返回`PPSE`(Proximity Payment System Environment)包含多个AID时,终端应选择配置文件中优先级最高的应用 - **错误注入**:模拟卡片返回无效AID列表,验证终端是否拒绝交易[^1] 2. **脱机数据认证(ODA)** - **测试用例**:终端对SDA(静态数据认证)/DDA(动态数据认证)的处理 - **验证点**: - SDA场景:验证终端正确校验卡片静态签名 `$ \text{Verify}(PK_{issuer}, \text{Sig}_{SDA}) $` - DDA场景:终端发送`INTERNAL AUTHENTICATE`指令,验证动态签名有效性 - **错误注入**:篡改卡片公钥证书,终端应中断交易并返回`6984`(密钥失效) --- ### 二、交易流程测试 3. **持卡人验证方法(CVM)** ```mermaid graph TD A[交易金额≥CVM限额] --> B{终端配置} B -->|需要PIN| C[发送GET PROCESSING OPTIONS] B -->|免密| D[直生成ARQC] ``` - **测试用例**:当交易金额达到$300时,终端必须触发PIN输入流程 - **边界测试**:金额=$299时验证是否跳过PIN输入(需符合终端配置) 4. **交易风险管理** - **随机交易选择**:验证终端是否按规范生成随机数`$ R \in [0,1] $`,当`$ R < T_{rand} $`时强制联机 - **连续脱机计数**:模拟连续10次脱机交易,第11笔必须强制联机授权 --- ### 三、异常处理场景 5. **通信中断恢复** | 中断阶段 | 预期行为 | |----------------|------------------------------| | 在读卡阶段中断 | 终端应释放卡片并重置状态机 | | 在ARQC生成后中断 | 终端应保留交易记录并冲正 | 6. **错误码处理** - **测试用例**:卡片返回`6985`(使用条件不满足) - **验证点**:终端应显示"交易被拒绝"并生成TLV格式的错误日志`9F10 07...` --- ### 四、测试工具建议 1. **硬件工具**: - UL Validator Pro 模拟器(支持JCOP卡仿真) - Proxmark3(用于RF信号层测试) 2. **软件工具**: - GlobalPlatform Pro + jCardSim(Java卡模拟环境) - pyemv(Python版EMV协议栈) > ⚠️ 注意事项: > - 所有测试需在EMVCo授权实验室执行(如UL、Brightsight) > - PURE认证要求100%通过Book C第10章定义的测试套件[^2] > - 最新测试规范参考: [EMVCo PURE v2.6](https://www.emvco.com/document-search/?document_type=specifications&sub_type=contactless) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值