IC卡系统-前置子系统-概要设计(v1.0.0)2.doc_第1页
IC卡系统-前置子系统-概要设计(v1.0.0)2.doc_第2页
IC卡系统-前置子系统-概要设计(v1.0.0)2.doc_第3页
IC卡系统-前置子系统-概要设计(v1.0.0)2.doc_第4页
IC卡系统-前置子系统-概要设计(v1.0.0)2.doc_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

石家庄商业银行卡系统前置子系统概要设计说明书V1.0.0石家庄商业银行上海华腾软件系统有限公司二零零四年一月质量管理运作体系文件三级文件记录编号403041-QR IC卡前置系统详细设计修订控制页章节编号章节名称修订内容简述修订日期修订前版本号拟稿人已评审初稿2003-8-11王建文修改稿2004-1-28俞海宏1 引言1.1 概述本文档是石家庄商业银行卡前置系统的概要设计说明书,主要描述了石家庄商行卡前置系统的结构、实现方式等内容,文档的主要阅读者为系统开发人员、系统设计人员和石家庄商业银行与项目相关的科技人员。1.2 定义本章节对本设计方案中采用的主要术语进行描述和说明,以避免歧义。术 语说 明IC卡集成电路卡的简称,本需求书中指具有计算功能的CPU卡PSAM卡终端安全认证模块,用来对用户卡进行安全认证PBOC标准中国人民银行颁布的金融IC卡标准ATM自动取款机POS消费终端PIN用户鉴别码DES一种广泛采用的数据加密算法MAC交易认证码Teller银行网点的交易终端前置一卡通业务系统Host银行综合业务系统电子钱包存储在IC卡上的小额支付工具,支持脱机交易,进行脱机消费时无需校验PIN,不支持挂失,不计息电子存折存储在IC卡上的支付工具,支持脱机交易,需要校验PIN,可挂失,计活期利息公用钱包采用PBOC标准可跨行、跨地区、跨行业使用的电子钱包公用存折采用PBOC标准可跨行、跨地区、跨行业使用的电子存折专用钱包只能应用于某个行业应用或地区应用的电子钱包用户卡向社会公开发行的实现支付和管理功能的IC卡母卡用来进行密钥管理的特定的IC卡加密机提供数据加、解密功能的硬件设备密钥分散由主密钥推导出子密钥的加密过程分散因子用于进行密钥分散的参数圈存将一定数量资金由主账户转入IC卡电子钱包、电子存折的操作圈提将一定数量资金由电子存折转入主账户的操作圈存机提供对IC卡进行圈存、圈提等联机交易功能的终端预制卡根据卡部申请,预制一批没有客户信息的IC卡的过程实时发卡先进行预发卡,然后实时进行用户信息更新和卡启用的发卡方式批量开卡获取用户信息后,一次进行密钥装载、用户信息更新和卡启用的发卡方式补卡用户IC卡遗失后,重发一张新卡的操作,必须先进行卡挂失换卡用户IC卡损坏后,重发一张新卡的操作,必须先进行卡回收1.3 设计依据本文档设计时主要参考和依据的文档包括: 石家庄商业银行IC卡需求分析v3.0 TOPSmartAgent中间业务平台使用手册v2.0.1 中间业务平台详细设计说明书v1.0.3 中国集成电路(IC)卡规范 金融IC卡前置总体设计方案v4.0.32 结构设计2.1 前置系统逻辑结构石家庄商业银行卡系统所涉及到的金融IC卡交易、部分卡管理交易以及城市一卡通应用通过前置系统进行预处理,其它的业务采用原有的方式(从网点直接到综合业务系统)进行处理,系统逻辑结构图如下所示:图表 21 系统逻辑结构图说明: 前置机的软件架构在基于TopSmartAgent(SA) 中间业务平台 前置机系统与网点连接方式采用TCP/IP协议(长连接) 前置机与综合业务主机的通信方式基于Tuxedo中间件通信 前置机与加密机的连接方式为TCP/IP连接(长连接) 前置机与机构的连接为TCP/IP连接2.2 卡前置系统软件架构图表 22 一卡通平台软件架构说明: 前置系统运行平台为AIX(操作系统) + Tuxedo(客户端) + SA(中间平台) + 加密通信接口 前置软件处理各种业务为并发进行,为了提高系统性能,在进行设计时要考虑防止消息堵塞2.3 通讯和数据流2.3.1 与网点的连接前置软件架构在SA平台之上,其与网点的连接方式采用TCP/IP基础之上,前置软件不采用超时保护,所有网络通信的超时保护全部在网点发起方进行保护,采用的报文格式如下所述,网点与前置软件的交易的一致性保护采用查询和取消交易的方式来实现。2.3.1.1 网点请求报文基本字段网点与一卡通系统的交易报文包括基本字段和扩展字段两部分,网点系统基于SmartTeller,考虑到新增的IC卡交易与原有交易的一致性(原有交易通过Tuxedo客户端直联主机,IC卡交易通过Tcp/IP发送到前置系统),因此,网点向前置的请求报文的通用字段定义与原交易的通用字段定义相同,也与前置向Host请求的通用字段定义相同(参考主机TITA Lable结构定义)。网点向前置请求报文的基本字段的定义如下表所示:名称长度格式原交易终端号2Char原交易流水号7Char开户行号3Char交易行号3Char交易终端号2Char交易终端流水号7Char交易大类2Char终端类型1Char交易代码4Char取消标志1Char主管授权标志2Char操作员号6Char主管柜员号6Char授权柜员号6Char授权流水号7Char密码6Char存折标志1Char连续交易标志1Char连续交易号6Char图表 23 网点请求通讯报文基本字段2.3.1.2 向网点返回报文基本字段基于原有交易和IC卡交易的一致性考虑,前置向网点的返回报文基本字段与Host向网点返回报文基本字段相同(参考主机TOTW Laber 结构定义),具体内容如下表所示:名称长度格式交易行号3Char交易终端号2Char终端流水号7Char交易大类2Char交易日期8Char交易时间9Char消息结束标志1Char消息类型1Char消息号4Char消息长度4Char图表 24 网点返回报文基本字段2.3.2 与机构的连接与机构的连接可以采用TCP/IP通信方式,命令采用消息驱动的方式来触发,卡前置系统与机构连接的通讯方式和报文格式可参考相关行业系统实现文档。2.3.3 与综合业务主机通信模块通信方式采用TUXEDO客户端连接到TUXEDO服务端的方式,通信的报文采用华腾自己定义的格式通信,前置与综合业务主机采用异步方式进行通讯,事务触发采用消息方式,即向主机发送申请和接收主机返回处理是两个流程,前置向主机发起交易请求后,并不等待主机返回而直接退出处理,主机的返回消息作为一个事件触发前置系统,前置系统经过消息匹配获得主机返回信息,进入相应的处理流程进行处理。与综合业务主机通讯报文包括基本字段和扩展字段,其基本字段的内容定义如下表所示:名称长度格式原交易终端号2Char原交易流水号7Char开户行号3Char交易行号3Char交易终端号2Char交易终端流水号7Char交易大类2Char终端类型1Char交易代码4Char取消标志1Char主管授权标志2Char操作员号6Char主管柜员号6Char授权柜员号6Char授权流水号7Char密码6Char存折标志1Char连续交易标志1Char连续交易号6Char图表 25 与主机通讯报文基本字段主机返回报文基本字段定义如下表所示:名称长度格式交易行号3Char交易终端号2Char终端流水号7Char交易大类2Char交易日期8Char交易时间9Char消息结束标志1Char消息类型1Char消息号4Char消息长度4Char图表 26 主机返回报文基本字段2.3.4 与加密机器通信系统软件架构参见部分,由于加密机属于前置机器的一部分,他们组成在一个局域网内,考虑到SA系统的消息转发机制运用,以及每个消息都需要MAC校验,因此对加密机的使用采用API 的方式进行通信,由此API负责对加密机通讯线路的建立。调用流程如下所示:图表 27 加密机调用流程说明:SA调用加密机的过程采用同步机制,也就是说,SA必须等待加密机的返回,否则超时返回。加密机提供相应的API库供SA所使用,如果希望采用动态管理不同的加密机器的使用,需要提供一套加密机作业队列的管理应用。3 交易流程描述3.1 综述石家庄商行卡系统中,所有经过前置系统的交易汇总如下:交易名称交易码信息流说明个人发卡登记8437网点前置主机个人申请开卡(含IC)批量发卡登记8436网点前置主机集团申请开卡(含行业应用)发卡申请维护8438网点前置主机发卡申请维护(含行业应用)个人领卡激活8406网点前置主机补换卡8410网点前置主机卡挂失8460网点主机前置进行黑名单处理卡解挂8461网点主机前置进行黑名单处理开户8413网点前置主机电子存折、行业应用开户PIN解锁8462网点前置PIN重装8463网点前置电子存折圈提8415网点前置主机圈存8416网点前置主机电子存折取现8417网点前置主机行业充资8418网点前置主机黑名单管理8420卡部前置脱机明细输单8421网点前置主机加密机密钥维护8423网点前置代理机构管理8481网点前置代理品种管理8482网点前置机构、品种管理8483网点前置费率管理8485网点前置燃气充资信息查询8487网点前置燃气充资8419网点前置脱机交易明细上传8471网点前置3.2 发卡及卡务管理3.2.1 批量开卡(8436、8473)批量开卡采用先申请、后制卡、再领卡的发卡模式,网点进行用户批量开卡信息录入,产生开卡申请文件(通过8436交易完成),并将此文件提交给前置系统,前置对申请信息进行处理后提交给业务主机,业务主机根据批量开卡文件内容,进行客户信息添加并产生申请书号,主机在日终批量时产生发卡文件,将此文件传递给前置,前置根据此文件内容,加上行业信息内容,生成发卡文件,由发卡系统根据发卡文件内容进行卡片个人化,实现发卡。3.2.1.1 操作流程图表 31 批量开卡操作流程批量发卡登记流程说明:1. 网点输入用户发卡信息(包括行业信息),保存在文件中2. Teller发起批量开卡交易,将相应信息文件发送给前置机3. 前置机对批量文件进行处理,保存相应的行业信息,向主机传递批量文件4. 主机对发卡文件处理,登记客户信息(如果是新客户,产生客户号),计算应收取的卡片押金,将相关信息返回给前置5. 前置将卡片押金返回给网点,网点收取押金,交易完成批量发卡操作流程:1. 主机日终批量时对申请信息进行处理,开通相关的客户账户,产生卡号,并将相应信息计入发卡文件中,将此文件传递给前置2. 前置对主机下传的发卡文件进行处理,在文件中添加相应的行业信息,生成最终的发卡文件,并提交给发卡系统3.2.1.2 异常流程如果前置系统在指定的时间内收不到主机的任何响应,前置系统进入超时处理,向主机发送取消交易,主机对卡片押金信息和发卡登记信息进行恢复处理。3.2.1.3 联动交易批量开卡成功后,系统打印相应的单据,并统一收取客户卡片押金。3.2.1.4 交易码批量发卡由两个交易完成,卡片信息录入交易和批量开卡交易,交易说明如下表所示:名称交易码类别说明开卡信息录入8436管理类交易录入行业应用信息保存在文件中批量开卡登记8473发卡类交易上传信息文件,进行卡片押金处理批量开卡(主机)Bh8433主机日终批量产生主机批量发卡文件批量开卡(前置)Bh8433前置日终批量产生最终批量发卡文件3.2.1.5 报文内容网点向前置的请求报文Teller向前置的请求报文的基本字段内容,请参见本文档网点连接部分Teller(网点)向前置(一卡通系统)的请求报文的扩展字段如下表所示:名称长度格式单位名称60Char开卡信息文件名称100Char前置向主机的请求报文前置向主机的请求报文的扩展字段内容如下表所示:名称长度格式单位名称60Char开卡信息文件名称100Char主机向前置返回报文主机向前置返回报文扩展字段定义如下表所示:名称长度格式申请书号10Char交易流水号7Char手续费金额14Char前置向Teller返回报文前置向Teller返回报文的基本字段内容,请参见文档与网点通讯部分,前置向Teller返回报文扩展字段内容与主机向前置返回内容相同:3.2.1.6 处理流程终端的请求消息处理:1. TPLGetMessage截取上送柜台消息;2. 调用CheckMsgMac校验MAC;3. 申请一个新的流水号,登记超时;4. 将上送的信息插入到银行请求消息表(调用AgtInsBnkMsg函数,记录支行号和终端号等信息);5. 调用AgtAddSeqNo给终端上传的单位申请文件中的每一条记录增加9位的顺序号;6. 调用online_instbthcard将文件上传给主机;7. 在交易明细表(agtxndtl)中插入一条交易明细;状态为resp_code = “?”, agn_resp_code = “?”, rvsl_flg = “0”;8. 组包向主机发送补换卡交易的请求;注意交易流水号(EJFNO)为“0”+平台流水号(6位),原交易流水号为这笔交易的终端流水号。主机成功应答:1. 将交易状态修改为resp_code = “00”, agn_resp_code = “00”, rvsl_flg = “0”;2. 调用AgtSelAGBNKMSG恢复SessionHead;3. 调用AgtBhInsCltAth将文件中每一条记录的行业信息插入到客户协议信息表中。4. 组包向终端发送应答。主机失败应答:1. 恢复交易明细,将交易状态修改为resp_code = “!”, agn_resp_code = “!”, rvsl_flg = “0”;2. 调用AgtSelAGBNKMSG恢复SessionHead;3. 组包向终端发送应答。超时处理:1. 向网点发送主机系统超时,交易失败应答2. 修改交易状态,申请超时交易流水号,将超时交易流水置为原交易充正流水3. 将原交易流水置为充正交易的充正流水4. 登记系统存储转发表5. 向帐务主机发起充正交易主机充正交易正确返回处理:1. 通过主机返回的原交易流水号获得充正交易信息2. 修改充正交易状态3. 解除充正交易存储转发主机充正交易错误返回处理:1. 通过主机返回的原交易流水号获得充正交易信息2. 修改充正交易状态3. 解除充正交易存储转发3.2.2 个人开卡登记(8437)个人开卡登记实现单个用户到银行网点申请发行银行卡的功能,用户到银行网点申请发行银行卡,系统登记用户信息,并在日终批量时产生发卡文件,发卡系统根据发卡文件内容进行卡片个人化。用户在登记发卡的网点进行卡片领用。3.2.2.1 操作流程图表 2 发卡登记操作流程流程说明:1. 申请书号是用户进行开卡登记的重要信息,前置系统保存用户开卡登记的申请书号可以实现用户行业应用登记信息(通过8438交易)和开卡信息的关联,用户可以在开卡登记成功后,继续进行行业应用登记申请,这样,发卡文件中不仅包括金融应用内容,而且包含行业应用内容3.2.2.2 联动交易个人开卡申请成功后,系统联动收取卡片押金交易,进行卡片押金处理。3.2.2.3 通讯报文网点向前置的请求报文Teller向前置的请求报文的基本字段内容,请参见本文档网点连接部分Teller(网点)向前置(一卡通系统)的请求报文的扩展字段如下表所示:名称长度格式卡片类型(打名、非打名)2Char客户号20Char客户姓名20Char拼音姓名20Char证件种类2Char证件号码20Char前置向主机的请求报文前置向主机的请求报文的扩展字段内容与网点向前置请求报文扩展字段内容相同。主机向前置返回报文主机向前置返回报文扩展字段定义如下表所示:名称长度格式申请书号10Char客户号20Char交易流水号7Char前置向Teller返回报文前置向Teller返回报文的基本字段内容,请参见文档与网点通讯部分,前置向Teller返回报文扩展字段内容与主机向前置返回内容相同:3.2.2.4 处理流程终端的请求消息处理:1. TPLGetMessage截取上送柜台消息;2. 调用CheckMsgMac校验MAC;3. 申请一个新的流水号,不登记超时;4. 将上送的信息插入到银行请求消息表(调用AgtInsBnkMsg函数,记录支行号和终端号等信息);5. 在交易明细表(agtxndtl)中插入一条交易明细;状态为resp_code = “?”, agn_resp_code = “?”, rvsl_flg = “0”;6. 组包向主机发送个人开卡交易的请求;注意交易流水号(EJFNO)为“0”+平台流水号(6位),原交易流水号为这笔交易的终端流水号。主机成功应答处理:1. 将交易状态修改为resp_code = “00”, agn_resp_code = “00”, rvsl_flg = “0”;2. 调用AgtInsAppnoChk在开卡申请检查表中登记这笔申请书号的信息;3. 调用AgtSelAGBNKMSG恢复SessionHead;4. 组包向终端发送应答。3.2.3 个人行业应用登记(8438)客户可以在成功进行个人开卡登记(8437)后通过此交易申请行业应用,系统保存用户行业信息,并将需要写入IC卡上的信息通过发卡文件传递到发卡系统。由于不同的行业信息有很大区别,因此个人行业应用登记交易嵌套了一些具体行业信息输入的交易,这些交易以843X来代表,如843E、843F等,在成功保存了用户申请的所有行业信息后,前置将申请提交到业务主机,业务主机对需要在保存相应的需要开通的账户信息,在批量开卡时,开通相应的账户。3.2.3.1 交易流程图表 3 行业应用登记流程交易流程说明:1. 网点首先提交用户基本信息和用户开卡登记申请书号,系统以此申请书号作为关键字将金融信息和行业信息进行关联,申请书号通过个人开卡申请交易(代码为8437)获得2. 按照用户选择的行业应用类别输入行业应用信息,前置将用户信息保存在“客户代理业务协议表”中3. 网点逐个输入用户申请的行业信息,直至输入所有的申请信息4. 网点向前置提交行业应用开通申请,前置将申请提交到后台进行登记3.2.3.2 关联交易根据用户申请,此交易会关联一个或多个行业应用信息录入交易,这些交易不能单独发起,只能通过此交易在选择相应的行业应用时进行触发。3.2.3.3 通讯报文行业信息录入通讯报文由于不同的行业机构所需要输入的信息有很大差别,因此无法统一行业信息录入报文,具体录入报文结构另行约定。网点向前置的请求报文Teller向前置的请求报文的基本字段内容,请参见本文档网点连接部分Teller(网点)向前置(一卡通系统)的请求报文的扩展字段如下表所示:名称长度格式卡片类型(打名、非打名)2Char卡号?19Char客户号20Char开卡申请书编号10Char 单位名称60Char客户姓名20Char前置向主机的请求报文前置向主机的请求报文的扩展字段内容与网点向前置请求报文扩展字段内容定义如下:名称长度格式卡片类型(打名、非打名)2Char卡号?19Char客户号20Char平台流水号7Char开卡申请书编号10Char 单位名称?60Char客户姓名20Char应用申请内容20Char主机向前置返回报文主机向前置返回报文扩展字段定义如下表所示:名称长度格式客户号20Char客户姓名20Char交易流水号7Char前置向Teller返回报文前置向Teller返回报文的基本字段内容,请参见文档与网点通讯部分,前置向Teller返回报文扩展字段内容与主机向前置返回内容相同:3.2.3.4 处理流程终端的请求消息处理:1. TPLGetMessage截取上送柜台消息;2. 调用CheckMsgMac校验MAC;3. 申请一个新的流水号,不登记超时;4. 将上送的信息插入到银行请求消息表(调用AgtInsBnkMsg函数,记录支行号和终端号等信息);5. 在交易明细表(agtxndtl)中插入一条交易明细;状态为resp_code = “?”, agn_resp_code = “?”, rvsl_flg = “0”;6. 调用AgtSelCLTATHACT返回当前卡片所对应的所有帐户类型(行业类型);7. 组包向主机发送行业应用登记交易的请求;注意交易流水号(EJFNO)为“0”+平台流水号(6位),原交易流水号为这笔交易的终端流水号。3.2.4 领卡、激活(8406)用户在已登记发卡,发卡系统已实现了用户卡个人化,用户到登记网点进行卡片领取和启用的过程称为卡片领用,激活针对批量领卡方式,经过批量领卡的用户卡,必须由持卡人到网点进行卡片激活后,才能正常使用。系统提供如下几种方式实现卡片的申请、发卡和领用:1. 个人开卡登记(8437)个人行业应用登记(8438,可选)领卡2. 批量开卡登记(8436)批量领卡(8407)激活(8406)3. 批量开卡登记(8436)领卡(8406)3.2.4.1 交易流程3.2.4.2 异常流程卡领用涉及对卡片的凭证管理,卡片凭证在后台采用表外帐进行管理,因此为了保证数据的一致性,对此交易进行超时保护,前置超时向后台发起充正交易。3.2.4.3 通讯报文网点向前置的请求报文Teller向前置的请求报文的基本字段内容,请参见本文档网点连接部分Teller(网点)向前置(一卡通系统)的请求报文的扩展字段如下表所示:名称长度格式卡号19Char开卡申请书编号10Char 客户姓名20Char证件种类2Char证件号20Char领卡类型1Char密码类型1Char密码8Char前置向主机的请求报文前置向主机的请求报文的扩展字段内容与网点向前置请求报文扩展字段内容相同。主机向前置返回报文主机向前置返回报文扩展字段定义如下表所示:名称长度格式客户号20Char客户姓名20Char交易流水号7Char前置向Teller返回报文前置向Teller返回报文的基本字段内容,请参见文档与网点通讯部分,前置向Teller返回报文扩展字段内容与主机向前置返回内容相同:3.2.4.4 处理流程终端的请求消息处理:1. TPLGetMessage截取上送柜台消息;2. 调用CheckMsgMac校验MAC;3. 申请一个新的流水号,登记超时;4. 将上送的信息插入到银行请求消息表(调用AgtInsBnkMsg函数,记录支行号和终端号等信息);5. 在交易明细表(agtxndtl)中插入一条交易明细;状态为resp_code = “?”, agn_resp_code = “?”, rvsl_flg = “0”;6. 组包向主机发送补换卡交易的请求;注意交易流水号(EJFNO)为“0”+平台流水号(6位),原交易流水号为这笔交易的终端流水号。主机成功应答处理:1. 恢复交易明细表中的这条交易数据;判断交易状态,如果rvsl_flg 不等于 “0”则表示此交易已经被冲正,此应答是一个迟到应答,平台将调用Req84*FromHostTimeoutFun函数进行异常处理。2. 如果非迟到应答,则解除超时登记;3. 将交易状态修改为resp_code = “00”, agn_resp_code = “00”, rvsl_flg = “0”;4. 根据卡号查询用户行业应用信息,修改行业应用状态为已启用状态5. 调用AgtSelAGBNKMSG恢复SessionHead;6. 调用FillVarNorToDevAndSend组包向终端发送应答。平台超时处理1. 恢复交易明细,判断交易状态如果为状态为rvsl_flg 不等于 “0”并且resp_code 不等于 “?”,则表示此交易已经被冲正无须平台处理,平台直接退出。2. 如果交易没有被冲正则先向终端返回超时应答;3. 重新申请一个冲正交易流水号;4. 修改原交易状态为resp_code = “!”, agn_resp_code = “!”, rvsl_flg = “1”;在交易明细表中插入冲正交易的明细,状态为resp_code = “?”, agn_resp_code = “?”, rvsl_flg = “0”;5. 组包向主机发送冲正交易,注意EJFNO = 0 + 终端流水号,HEJFNO = 0+平台原交易流水号;6. 登记存储转发表,进行冲正交易的存储转发;3.2.5 卡挂失、解挂(8460/8461)用户在IC卡遗失后,对IC卡申请挂失的操作,挂失包括口头挂失(含电话挂失)和书面挂失两种类型,口头挂失一定时间后会自动失效,此处所说的卡挂失指书面挂失,即用户到银行网点提交挂失申请后进行的挂失。IC卡挂失后系统即将此卡计入黑名单,由于IC卡支持脱机交易,因此IC卡的挂失期比较长,目前采用45天,在挂失期内的黑名单卡脱机交易进行清算,超过挂失期的黑名单卡不进行清算,损失由商户或收单行承担。卡解挂是卡挂失的逆向操作,执行卡解挂后,系统从黑名单表中删除此卡号,并将黑名单删除信息下发给终端。3.2.5.1 交易流程卡挂失、解挂处理流程如下表所示:图表 34 挂失、解挂流程图操作流程:1. 考虑到与原有交易的一致性,挂失、解挂交易网点首先发送给主机,主机进行成功的挂失、解挂交易处理后,网点再将申请发送给后台2. 前置进行黑名单处理,计入黑名单流水表,并将处理结果返回给Teller,挂失交易和解挂交易均计入黑名单,挂失计入黑名单添加,解挂计入黑名单删除。3.2.5.2 联动交易卡挂失、解挂交易成功完成后,由Teller触发收取手续费交易,收取挂失、解挂交易手续费。3.2.5.3 报文内容网点向主机挂失、解挂申请报文网点向主机挂失、解挂申请报文内容与现有综合业务系统相同,详见综合业务系统相关文档。卡挂失Teller请求报文扩展字段Teller请求报文扩展字段内容如下表所示:名称长度格式交易类型1Char卡号19Char3.2.5.4 库表结构卡挂失、卡解挂交易涉及到系统对黑名单的管理,卡挂失需要将卡号加入黑名单中,相反,卡解挂需要将相应卡号从黑名单中删除,因此涉及到的数据库表主要包括黑名单信息表和黑名单查询表,黑名单查询表用来保持系统的黑名单,黑名单信息表用来保存系统黑名单的变化情况。黑名单信息表和黑名单明细表的详细内容,在本文档的数据库设计部分有详细的说明。3.2.6 补、换卡(8410)补卡指用户IC卡遗失后,经过挂失处理,再超过卡挂失期后补发新卡的操作,换卡指用户IC卡物理损坏,申请换卡的操作,在进行补、换卡交易前用户必须进行补、换卡登记(8409)交易。3.2.6.1 流程图补、换卡交易操作流程图如下所示:图表 35 补、换卡流程图3.2.6.2 异常交易补、换卡交易涉及到对补、换卡凭证的处理和表外记账,因此SA需要登记充正流水,并在超时时向后台发送充正交易。3.2.6.3 联动交易补、换卡交易成功完成后,由Teller触发收取手续费交易,收取挂失、解挂交易手续费。3.2.6.4 报文内容补、换卡Teller申请报文扩展字段补、换卡Teller向前置请求报文扩展字段如下表所示:名称长度格式原卡号19Char新卡号19Char补换卡登记申请书号10Char姓名20Char证件类型2Char证件号码20Char补换卡类型1Char密码类型1Char密码6Char新密码8Char图表 36 补换卡Teller请求报文扩展字段补、换卡前置申请报文扩展字段补换卡前置请求报文扩展字段与Teller申请报文的扩展字段相同。补、换卡Host向前置返回报文扩展字段补、换卡交易,Host向前置返回报文扩展字段如下表所示:名称长度格式客户号20Char客户姓名20Char交易流水号7Char图表 37 补、换卡Host返回报文扩展字段补、换卡前置向网点返回报文扩展字段补、换卡交易,前置向网点返回报文扩展字段如下表所示:名称长度格式客户号20Char客户姓名20Char交易流水号7Char应用申请内容20Char图表 38 前置向网点返回报文扩展字段3.2.6.5 处理流程终端的请求消息处理:1. 调用TPLGetMessage截取上送柜台消息;2. 调用CheckMsgMac校验MAC;3. 判断这笔交易的类型,如果是终端发起的冲正交易则进入DevRsvRes函数(稍后说明)处理。否则继续进行正常处理。4. 申请一个新的流水号,并且登记超时;5. 将上送的信息插入到银行请求消息表(调用AgtInsBnkMsg函数,记录支行号和终端号等信息);6. 在交易明细表(agtxndtl)中插入一条交易明细;状态为resp_code = “?”, agn_resp_code = “?”, rvsl_flg = “0”;7. 组包向主机发送补换卡交易的请求;注意交易流水号(EJFNO)为“0”+平台流水号(6位),原交易流水号为这笔交易的终端流水号。主机成功应答:1. 交易明细表中的这条交易数据;判断交易状态,如果rvsl_flg 不等于 “0”则表示此交易已经被冲正,此应答是一个迟到应答,平台将调用Req84*FromHostTimeoutFun函数进行异常处理。2. 如果非迟到应答,则解除超时登记;3. 将交易状态修改为resp_code = “00”, agn_resp_code = “00”, rvsl_flg = “0”;4. 调用AgtSelCLTATHACT函数取出新卡对应的所有行业应用(帐户类型),通过卡号和帐户类型对应每条行业信息(在agcltath中记录),将每条记录的状态修改为启用状态,。5. 调用AgtSelAGBNKMSG恢复SessionHead;6. 调用FillVarNorToDevAndSend组包向终端发送应答。主机失败应答:1. 解除超时登记;2. 恢复交易明细,将交易状态修改为resp_code = “!”, agn_resp_code = “!”, rvsl_flg = “0”;3. 调用AgtSelAGBNKMSG恢复SessionHead;4. 调用FillVarErrToDevAndSend组包向终端发送应答。平台超时处理1. 恢复交易明细,判断交易状态如果为状态为rvsl_flg 不等于 “0”并且resp_code 不等于 “?”,则表示此交易已经被冲正无须平台处理,平台直接退出。2. 如果交易没有被冲正则先向终端返回超时应答;3. 重新申请一个冲正交易流水号;4. 修改原交易状态为resp_code = “!”, agn_resp_code = “!”, rvsl_flg = “1”;在交易明细表中插入冲正交易的明细,状态为resp_code = “?”, agn_resp_code = “?”, rvsl_flg = “0”;5. 组包向主机发送冲正交易,注意EJFNO = 0 + 终端流水号,HEJFNO = 0+平台原交易流水号;6. 登记存储转发表,进行冲正交易的存储转发;终端发起的冲正交易1. 恢复银行请求明细表将原交易的平台流水号取出来,通过流水号恢复原交易的明细,如果判断原交易已经冲正则直接返回终端已冲正的应答;否则申请新的冲正交易流水号;2. 将原交易状态置为冲正状态rvsl_flg = “1”;3. 在交易明细表中插入一条冲正交易的记录;4. 组包向主机发送冲正交易,注意EJFNO = 0 + 终端流水号,HEJFNO = 0+平台原交易流水号;5. 登记存储转发表,进行冲正交易的存储转发;主机冲正成功应答1. 恢复原交易的明细,将交易状态置为resp_code = “00”, agn_resp_code = “00”, rvsl_flg = “1”;2. 解除存储转发;3. 如果是终端发起的冲正交易的应答,恢复SessionHead,调用FillVarNorToDevAndSend向终端返回冲正应答。主机冲正失败应答1. 恢复原交易的明细,将交易状态置为resp_code = “!”, agn_resp_code = “!”, rvsl_flg = “1”;2. 解除存储转发;3. 如果是终端发起的冲正交易的应答,恢复SessionHead,调用FillVarErrToDevAndSend向终端返回冲正失败应答。3.2.7 行业应用开户(8413)行业应用开户指已领取了商行一卡通卡片的用户申请开通某个行业应用功能的操作,由于金融电子存折账户在开卡时不同时开通,因此,此交易也可以用来开通金融电子存折账户。行业应用开户交易登记应用的行业应用信息,如果此类行业应用需要在帐务系统中开设相应的账号,前置将开户信息提交给主机,主机开通相应的用户账户。3.2.7.1 交易流程3.2.7.2 异常流程此交易涉及到在银行后台给开通相应的用户行业账户,因此有取消交易,如果前置超时,前置向后台发起充正交易。3.2.7.3 通讯报文网点向前置的请求报文Teller向前置的请求报文的基本字段内容,请参见本文档网点连接部分Teller(网点)向前置(一卡通系统)的请求报文的扩展字段如下表所示:名称长度格式开户类型1Char卡号19Char客户姓名20Char证件种类2Char证件号20Char领卡类型1Char密码类型1Char密码8Char前置向主机的请求报文前置向主机的请求报文的扩展字段内容与网点向前置请求报文扩展字段内容相同。主机向前置返回报文主机向前置返回报文扩展字段定义如下表所示:名称长度格式客户号20Char客户姓名20Char交易流水号7Char前置向Teller返回报文前置向Teller返回报文的基本字段内容,请参见文档与网点通讯部分,前置向Teller返回报文扩展字段内容与主机向前置返回内容相同。3.2.7.4 处理流程终端的请求消息处理:1. TPLGetMessage截取上送柜台消息;2. 调用CheckMsgMac校验MAC;3. 调用AgtChkCardStat函数判断交易卡是否已经列入黑名单;4. 判断这笔交易的类型,如果是终端发起的冲正交易则进入DevRsvRes函数(稍后说明)处理。否则继续进行正常处理。5. 申请一个新的流水号,并且登记超时;6. 将上送的信息插入到银行请求消息表(调用AgtInsBnkMsg函数,记录支行号和终端号等信息);7. 在交易明细表(agtxndtl)中插入一条交易明细;状态为resp_code = “?”, agn_resp_code = “?”, rvsl_flg = “0”;8. 组包向主机发送行业应用开户交易的请求;注意交易流水号(EJFNO)为“0”+平台流水号(6位),原交易流水号为这笔交易的终端流水号。主机成功应答处理1. 恢复交易明细表中的这条交易数据;判断交易状态,如果rvsl_flg 不等于 “0”则表示此交易已经被冲正,此应答是一个迟到应答,平台将调用Req84*FromHostTimeoutFun函数进行异常处理。2. 如果非迟到应答,则解除超时登记;3. 将交易状态修改为resp_code = “00”, agn_resp_code = “00”, rvsl_flg = “0”;4. 添加用户申请信息到客户代理协议信息表5. 调用AgtSelAGBNKMSG恢复SessionHead;6. 调用FillVarNorToDevAndSend组包向终端发送应答。3.2.7.5 说明1. 目前系统并没有处理用户行业信息登记内容,需要以后根据行业应用具体情况进行添加2. 目前系统所有的行业应用开户均向后台申请开通相应的用户行业账户3.2.8 PIN解锁、重装(8462、8463)持卡人如果因为误操作将IC卡芯片密码锁定,可以持卡片和有效证件到营业柜台,由柜员在主管的授权下完成此功能,PIN解锁交易无需经过业务主机,直接由前置完成。3.2.8.1 流程图PIN解锁交易流程图如下所示:3.2.8.2 报文内容PIN解锁Teller请求报文扩展字段PIN解锁Teller请求报文扩展字段内容如下表所示:名称长度格式解锁应用类别1Char密钥索引号2Char密钥版本号2Char随机数8CharPIN长度1CharPINNCharAPDU命令长度1CharAPDU命令NChar图表 39 PIN解锁请求报文扩展字段PIN解锁前置返回报文扩展字段PIN解锁前置返回报文扩展字段内容如下表所示:名称长度格式密码密文16CharMAC8Char图表 310 PIN解锁返回报文扩展字段PIN重装Teller请求报文扩展字段PIN重装Teller请求报文扩展字段内容如下表所示:名称长度格式应用类别20Char密钥版本号2Char密钥索引号2Char产生MAC数据长度2Char产生MAC数据Char图表 311 PIN重装请求报文扩展字段PIN重装前置返回报文扩展字段PIN重装前置返回报文扩展字段内容如下表所示:名称长度格式MAC8Char图表 312 PIN重装返回报文扩展字段3.3 金融IC卡交易3.3.1 圈存通过圈存交易,用户可以将指定金额从持卡人基本活期账户,划入电子钱包或电子存折账户,并同时在用户IC卡中加入指定金额。3.3.1.1 流程图3.3.1.2 异常流程异常流程1: 平台、主机均成功,卡片圈存操作失败,由网点发起圈存取消交易,平台和主机均进行交易取消处理。异常流程2:平台向主机发起圈存交易后,在指定的时间内没有收到后台响应(平台超时),平台首先向网点发送交易失败消息,然后向主机发起交易取消请求。3.3.1.3 报文内容圈存交易Teller请求报文扩展字段圈存交易Teller请求报文扩展字段内容如下表所示:名称长度格式卡号19Char币种2Char密码类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论