EMV规范(九)——持卡人验证(CVM)三 上篇我说这篇要说说TLV格式,嗯嗯,怕是要食言了,我觉得还是要继续说说CVM才行。毕竟我刚刚又体会了一次,目前在过EFTPOS认证,然后规范里说得很清楚,请参考EMV Book 3的CVM部分。嗯嗯,由于我是半路接手的,连规范都没来得及看全,所以就没有仔细看别人写的CVM这部分代码,嗯嗯,差点搞掉半条命????...
EMV规范(八)——持卡人验证(CVM)二 现在到了TVR和CVM Results部分了。TVR是Terminal Verification Results,也就是终端验证的结果,包括了脱机数据认证,持卡人认证,处理限制等等是否成功。所以只要交易结果不是我们期望的,我们总是先拿TVR出来看看是哪里出了问题。CVM Results是持卡人认证结果,针对CVM。一. TVRtag:‘95’ length:5 bytes第...
Android学习笔记:Error running app: Default Activity Not Found 今天开始正式学习Android,没错搭好环境后我就碰到第一个问题:Error running app: Default Activity Not Found这个问题的原因是没有为程序配置主活动。解决办法是在AndroidManifest.xml文件中加入如下代码:intent-filter:是每一个Activity对应的过滤器标签节点。ACTION_MAIN:Android A...
EMV规范(七)——持卡人验证(CVM)一 此部分笔记是来源EMV Book3中的10.5 Cardholder Verification节,可以结合此篇笔记来阅读。终于到CVM这章了,持卡人验证是非常非常重要的章节,反正我的leader是这么跟我说的。然后花了很多时间看这节,最后因为我没怎么做EMV这块接触的kernel,所以很多种CVM还没接触过。不过,EMV规范是基础,国内的PBOC就不说了,说下非接的吧,Paypass,Payw...
EMV规范(六)——处理限制 处理限制的目的是检查终端应用和卡片应用的兼容性。结果记录在TVR中。处理限制分为三部分:应用版本号检查,应用用途检查和应用有效期检查。一.应用版本号检查卡片返回的应用版本号的tag为“9F08”;终端的应用版本号的tag为“9F09”。若卡片未返回tag“9F08”,则终端应该假设卡片的应用版本号与终端的是兼容的,交易继续。若卡片的应用版本号和终端的应用版本号不一致,则应该置T
EMV规范(五)——脱机数据认证 脱机数据认证的目的是用于脱机验证卡片真伪和卡片上关键数据没被篡改。一、执行条件由AFL确定需要参与脱机数据认证的记录数据(参考前一篇EMV规范(四)——读应用数据),由终端能力和卡片(AIP)决定脱机数据认证的方式:SDA(静态脱机数据认证)、DDA(动态脱机数据认证)、CDA(复合脱机数据认证)。优先级是 CDA>DDA>SDA(即当终端能力和卡片均匹配到多种脱机数据认证的方式下,...
EMV规范(四)——读应用数据 读应用数据的目的是为了从卡片中获取后续交易需要的数据。例如,在脱机数据认证时,需要的认证数据,等。步骤:根据应用初始化时,由GPO命令返回的卡片数据中的AFL,来读取卡片数据。一. AFL:Application File Locator二. 所用到的命令为 Read Record终端发送的命令格式为: Record number:记录号 卡片回复的数据格式为:
EMV规范(二)——应用选择 应用选择的目的是给正在执行的交易选择一个应用。步骤:首先建立应用候选列表,然后从候选列表中选择一个应用。一.建立候选列表建立终端与卡片之间共同支持的应用列表。两种方法:目录选择法和AID列表法1.目录选择法:a.终端发送选择’1PAY.SYS.FFD01’文件命令,ICC返回数据包含短文件标识符(tag’88’)b.根据短文件标识符终端循环发送读记录命令,直至ICC
EMV规范(三)——应用初始化 一、应用初始化的目的:①通知卡片新交易开始②将交易所需的数据发送给卡片③从卡片上返回AIP和AFL④决定交易是否被允许执行二、应用初始化步骤:①设置TVR和TSI中所有位为0②根据应用选择时从卡片中获得PDOL,利用GPO命令将卡片所需的交易数据发送给卡片③根据卡片返回的数据可以得到AIP和AFL三、使用的命令GPO命令:四、例子
EMV规范(一)——背景介绍 一、EMV组织介绍EMV标准是由国际三大银行卡组织--Europay(欧陆卡,已被万事达收购)、MasterCard(万事达卡)和Visa(维萨)共同发起制定的银行卡从磁条卡向智能IC卡转移的技术标准,是基于IC卡的金融支付标准,已成为公认的全球统一标准。1999年2月,当时的国际三大卡组织共同成立了EMVCo组织,用来管理、维护和完善EMV智能(芯片)卡的规格标准。EMVCo组织提供...
AID列表 AID-应用标识符的组成规则AID:即唯一标识一个应用,分为两部分,RID(5字节)+PIX(最多11字节)RID:注册标识符,由ISO组织来分配,标识一个全球唯一的应用提供商,一般是分配给卡组织。PIX:扩展应用标识符,一般是由应用提供商自己定义。AID发卡行RID产品PIXAIDVisaA0 00 00 00 0
世界六大银行卡组织 世界六大银行卡组织分别为:维萨(VISA)、万事达(MasterCard)、运通(America Express) 、日本JCB(Japan Credit Bureau) 、大莱(Dinners Club)、中国银联。 1.维萨(VISA)它是目前世界上最大的信用卡国际组织。VISA是一个开放的银行卡组织、由200多个国家的22000多家会员银行和其他金融机构参与的非股份、非营利的国际性组
脚本POS规范 笔记 1.脚本ID:BCD码,共10位,5个字节脚本类型左起1位2-3位4-6位7-10位控制脚本100:银联卡标准应用某种控制脚本版本信息菜单脚本200:银联卡标准界面某种菜单版本信息
JAVA 重写 /** * 目的:重写 */package com.sunp.mye;class Father{ public void Add() { System.out.println("A add..."); } public void Addall() { System.out.println("A add all.."); Add();//由于子类中重写了父类的Add,所
JAVA 中的重写与重载 /** * 目的: * 1.测试在继承的子类中是否可以重载父类方法的问题 * 2.子类是否继承了父类的私有成员,该在子类中怎么访问父类私有成员 * 3.是否可以重写父类的私有成员 * 结果: * 1.重载是同类中;重写是父类与子类中。所以只可以重写,不可以重载 * 2.子类继承了父类的所有成员,但是子类没有访问父类私有成员的权限。 * 3.无法重写。因为父类的私有成员不能被子类访问
JAVA中super 和 this的用途 1,super(1)在子类的构造函数中要调用基类的构造函数。当基类仅含有默认构造函数时,java会自动在导出类(子类)的构造器中插入对基类构造器的调用;构建顺序为,先初构建基类,再构造子类。但是,但基类含有有参数列表的构造器时,子类的构造器中必须要正确的调用基类的构造器,否则编译器将“抱怨”找不到符合基类的构造器。注意:super必须是在构造器的第一行代码。package com.su
Android activity类 activity类处于android.app包中,继承体系如下:1.java.lang.Object2.android.content.Context3.android.app.ApplicationContext4.android.app.Activityactivity是单独的,用于处理用户操作。几乎所有的activity都要和用户打交道,所以activ
解决Android SDK Manager无法更新 亲测有用:由于国内的各种屏蔽现在Android SDK Manager出现无法更新或更新太慢,如下方法可完美解决此问题打开..\Android\sdk\SDK Manager.exe按下图进行设置
NDK中的sample hello-jni 例子 现在开始编译运行hello-jni的例子了。http://jingyan.baidu.com/article/03b2f78c73b5a85ea237aeb0.html上面的链接是学习hello-jni很完整的。这个其中碰到的问题:1,运行之前先编译NDK,然后在编译JAVA代码。编译遇到Unable to launch cygpath. Is Cygwin on th