1,初始化应用( Initiate Application),进行应用选择后的第一个过程
这个过程需要进行TSI( Transaction Status Information),TVR( Terminal Verification Results),PDOOL( Processing Options Data Object List) Data specified in PDOL,
输出AIP( Application Interchange Profile),AFL( Application File Locator),SW1 SW2 (9000-success, 6985-conditions of use not satisfied, others)
处理:终端会给ICC发送 GET PROCESSING OPTIONS(获得处理选项)命令
2.读取应用数据( Read Application Data )
这个过程需要输入AFL( Application File Locator),其中AFL的结构如下:
SFI,firstRecordNo( the first (or only) record number to be read for that SFI.), lastRecordNo( the last record number to be read for that SFI.),RecordNumToOFFlineDateAuthenication( the number of records involved in offline data。authentication starting with the record number coded in the second byte.)
输出data SW1 SW2( 9000-success, others-fail)
处理:终端给ICC发送read record命令,读取AFL指定的文件里记录内容并返回数据供终端保存及使用。
3.Offline Data Authenication
这一过程需要ODA判断。
输入的有AIP(Application Interchange Profile)AFL(Application File Locator)AFL中指定的记录数据 SDA TAG list
输出:TVR (Terminal Verfication Results) TSI (Transaction Status Information)
处理:终端从AIP数据判断执行哪种类型的ODA。如果ICC 和terminal都支持CDDA/ACG(Combined Dynamic Data Authentication/Application ryptogram Generation),则终端需要执行CDDA/ACG,如果终端不执行CDDA/ACG,此时,若ICC和terminal都支持OFFLINE DDA,则终端执行OFFLINE DDA.如果终端不执行OFFLINE DDA,此时,若icc和terminal都只支持offline SDA,则终端执行OFLINE SDA.如果以上三种ODA都不执行,则设置TVR的“ODA未执行”标志为1.
4.Processing Restrictions
输入:TERMINAL和ICC上的AVN(Application Version Number) ,AUC(Application Usage Control),Issuer Country Code,Terminal Country code,Application Effective Date,Applicationn Expiration Date
输出:TVR
处理:【应用版本判断】比较Terminal 和ICC的AVN,设置TVR相应位。
【ICC地域判断】根据交易类型,比较Issuer Country Code和Terminal Country Code,依据比较结果和AUC的相应位匹配与否,设置TVR相应位。
【有效期判断】判断当前交易日期是否在有效期内,设置TVR相应。
5.Cardholder Verfication
输入:AIP(Application Intercahrge Profile),CVM List(tag “8E”包括两个4-byte的amount fields 和数个2-byte 的CVRs( Cardholder Verification Rule)),每个CVR包括两个字节,分别是CVM(Cardholder Verfication Method,表示身份验证的可选方法)Codes和CVM Condition Codes(表示进行身份验证的条件)),TVR(Terminal Verfication Result),TSI(Transaction Status Information)
处理:终端判断CVR列表里的第一个CVM Condition是否满足,如果满足则采用对应的CVM进行验证,如果验证成功则CV过程结束,否则需要检查CVM Code的第7位,以决定是否需要读取第二个CVR元素继续验证。
如果第一个CVR的Condition不能满足,或者该条件不被终端理解,则需要读取下一个CVR继续验证。
当其中只要有一个CVR验证成功,则CV成功结束,若所有验证都失败则CV失败,,CV结果在TVR相应位中做设置。
几个典型的额CVM方法; Offline PIN,Online PIN,Signature,Combination CVMs
6.Terminal Risk Management
输入:AIP(Application Interchange Profile),Terminal LOG(用于获得本次交易账号的最近一次交易金额),TFL(Terminal floor Limit tag“9F1B“)TPURS(Target Percentage to be Used for Random Selection-终端数据)TVBRS(Threshold Value for Biased Random Selection-终端数据)MTPUBRS(Maximum Target Percentage to be Used for Biased Random Selection-终端数据) LCOL (Lower Consecutive Offline Limit - tag “9F14”) UCOL(Upper Consecutive Offline Limit -tag “9F23”) ATC(Application Transaction Counter - tag “9F36”) LOAR(Last Online ATC Register) TVR(Terminal Verfication Result) TSI(Transaction Status Information)
处理: [金额上限检验(Floor Limit checking)] 判断本次交易金额和上次交易金额的总和是否超过终端交易金额上限(Terminal Floor Limit),设置TVR相应位。
20 [在线交易判断(Random Transaction Selection)] 对于交易金额小于TVBRS的情况,终端需要产生一个1-99的随机数,如果该随机数小于等于TPURS则该交易需要在线验证。对于金额大于等于TVBRS但小于TFL的交易,终端需要比较产生的随机数和TTP(Transaction Target Percent),如果随机数小于等于TTP,则交易需要在线验证。其中,TTP=( (MTPUBRS-TPURS) * ((Amount,Authorised-TVBRS)/(TFL-TVBRS)) )+TPURS。若需要在线验证则设置TVR的相应位为1。
21 [交易周期校验(Velocity Checking)] 发送GET DATA命令读取ATC和Last Online ATC Register,若读取失败则校验结束并置TVR相应位。若读取成功则两值相减的结果同LCOL比较,若结果大于LCOL则该交易需要在线授权。若终端当时无法在线交易则可以继续离线交易的上限为UCOL,当UCOL次数达到时必须进行在线授权,否则交易应当被拒绝。若LOAR为0则要设置TVR的“新卡”位为1。
22 TRM执行完后置TVR和TSI相应位。
7.Terminal Action Analysis
输入:TVR(Terminal Verfication Result) IAC(issuer Action Codes,这个是和TVR完全一样的数据结构,记录了针对TVR中每位结果应采取的决策包括离线授权,离线拒绝或在线授权。IAC包括: Issuer Action Code - Denial (Tag '9F0E'), 默认值为全0
Issuer Action Code - Online (Tag '9F0F'), 默认值为全1
Issuer Action Code - Default(Tag '9F0D'), 默认值为全1
IAC-Denial指定TVR中哪些结果位为1时需要离线拒绝。
IAC-Online指定TVR中哪些结果位为1时需要在线授权。
IAC-Default指定当要求在线授权但是终端没办法在线的情况下TVR中哪些结果位为1时需要离线拒绝。对为0的结果位则离线授权。如果终端可以在线交易则IAC-Default不被执行。
TAC和IAC完全一样的意义,在进行行为决策的时候需要综合考虑IAC和TAC,只要其中某一个的相应位要求做出某种行为则需要执行该行为。比如,当TVR中某位为1时IAC要求Denial(离线拒绝),但是TAC没有要求Denial,那么结果是需要离线拒绝。
处理:终端行为决策,就是根据TVR结果查找IAC和TAC表来决定向icc发送GENERATE AC命令时需要请求AAC,ARQC,还是TC,即离线拒绝,在线授权还是离线授权。想ICC发送Generate AC 命令后,ICC本身还要做出行为决策(Card Action Analusis),以最终确定该交易是离线拒绝,在线授权还是离线授权。行为决策的顺序是:IAC/TAC-Denial,IAC/TAC=Online到IAC/TAC-Default
8.Card Action Analysis
输入:GENERATE AC Command,CDOL(Card Risk Management Data Object List) AIP(Application Interchange Profile)
输出:TSI(Transaction Status Information) GENERATE AC Response
处理:卡行为决策,即对终端发下来的GENERATE AC命令进行处理并做出相应(离线拒绝,在线授权,在线‘冲正’还是离线授权),以发卡行的风险进行管理。不同于终端行为(Terminal Action Analysis)的查表决策,发卡行如何处理AC命令及做何种响应完全由发卡行自身决定,EMV并无规定。
9.Online Processing
输入:ARQC(Authorization Request Cryptpgram) AIP(Application Interchange Profile)
输出:TVR(Terminal Verfication Result) TSI(Transaction Status Infromation)
处理:这是发卡行(ICC)和发卡行自身(主机)之间的一次对话,当终端收到ICC的ARQC决策时需要在线授权,具体地,ARQC被包含在交易请求包中发送给主机,主机进行确认后返回交易响应包。如果交易响应包中包含IAD(Issuer Authentication Data-tag ‘91’),终端检查AIP值看ICC是否支持IA(Issuer Authentication),如果支付则终端给ICC发送EXTERNAL AUTHENTICATA 命令(一次交易只能发一次),根据ICC返回的命令执行结果设置TVR相应位。若终端不支持IA或交易响应包没有IAD数据,则不发送任何命令。若EXTERNAL AUTHENTICATE 命令有被发送,则设置TSI的相应位为1。
10.Issuer-to-Card Script Processing
输入:Authorization Response Message(包含issuer Script - tag ‘71’ or ‘72’)
输出:TVR(Terminal Verification Result) TSI(Transaction Status Information)
处理: 这是发卡行(ICC)和发卡行自身(主机)之间的又一次对话。
主机可以在发给终端的交易响应包中包含一些特殊命令的脚本
(比如unblocking of an offline PIN命令,对于不同的发卡行命令迥异所以由发卡行直接发送)供ICC执行,终端只要将这些命令转发给ICC即可。
具体地,终端接收到主机的交易响应包后取出ICC执行脚本(Issuer Script-Tag'71' or '72', 每个响应包中可能包含多个执行脚本),终端对每个执行脚本进行解析得到该脚本的ICC命令序列(Tag-'86'),然后逐一按序给ICC发送ICC命令,如果ICC执行该命令失败则该脚本的后续命令不再执行,脚本执行结束;如果该命令执行成功则继续执行后续解析出来的命令,直到所有命令执行成功后该脚本的执行成功完成。
只要脚本被执行则设置TSI的"Script processing was performed"为1,若执行失败则设置TVR的相应位为1(对Tag'71'和'72'的脚本设置的TVR位不同)。