已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
石家庄IC卡系统TOPSmartAgent详细设计Version 1.0.1上海华腾软件系统有限公司二二年十二月1 交易流程说明1.1 签到交易(8400)终端的请求消息处理:1) 调用TPLGetMessage截取上送柜台消息;2) 申请一个新的非超时流水号;3) 将上送的信息插入到银行请求消息表(调用AgtInsBnkMsg函数,记录支行号和终端号等信息);4) 调用GenMsgKey函数生成新的交换密钥;5) 将交换密钥返回终端;1.2 签退交易(8450)终端的请求消息处理:1) 调用TPLGetMessage截取上送柜台消息;2) 调用CheckMsgMac校验MAC;3) 申请一个新的非超时流水号;4) 将上送的信息插入到银行请求消息表(调用AgtInsBnkMsg函数,记录支行号和终端号等信息);5) 向终端返回签退应答;1.3 补、换卡(8410)正常处理终端的请求消息处理: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) 调用Req84*FromHostTimeoutFun函数。2) 在Req84*FromHostTimeoutFun中的处理如下:2.1)恢复交易明细,判断交易状态如果为状态为rvsl_flg 不等于 “0”并且resp_code 不等于 “?”,则表示此交易已经被冲正无须平台处理,平台直接退出。2.2)如果交易没有被冲正则先向终端返回超时应答;2.3)重新申请一个冲正交易流水号;2.4)修改原交易状态为resp_code = “!”, agn_resp_code = “!”, rvsl_flg = “1”;在交易明细表中插入冲正交易的明细,状态为resp_code = “?”, agn_resp_code = “?”, rvsl_flg = “0”;2.5)组包向主机发送冲正交易,注意EJFNO = 0 + 终端流水号,HEJFNO = 0+平台原交易流水号;2.6)登记存储转发表,进行冲正交易的存储转发;终端发起的冲正交易1) 调用DevRsvRes函数处理。1.1) 恢复银行请求明细表将原交易的平台流水号取出来,通过流水号恢复原交易的明细,如果判断原交易已经冲正则直接返回终端已冲正的应答;否则申请新的冲正交易流水号;1.2) 将原交易状态置为冲正状态rvsl_flg = “1”;1.3) 在交易明细表中插入一条冲正交易的记录;1.4) 组包向主机发送冲正交易,注意EJFNO = 0 + 终端流水号,HEJFNO = 0+平台原交易流水号;1.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向终端返回冲正失败应答。1.4 电子存折圈提(8415)正常处理终端的圈提初始化请求消息处理:1) TPLGetMessage截取上送柜台消息;2) 调用CheckMsgMac校验MAC;3) 调用AgtChkCardStat函数判断交易卡是否已经列入黑名单;4) 调用CreditForUnLoadInit进行圈提初始化操作;5) 申请一个新的流水号,并且登记超时;6) 调用FillVarNorInitToDevAndSend返回终端;终端的请求消息处理:1) TPLGetMessage截取上送柜台消息;2) 调用CheckMsgMac校验MAC;3) 判断这笔交易的类型,如果是终端发起的冲正交易则进入DevRsvRes函数(稍后说明)处理。否则继续进行正常处理。4) 调用CreditForUnLoad生成校验码(MAC3);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) 调用AgtSelAGBNKMSG恢复SessionHead;5) 调用FillVarNorToDevAndSend组包向终端发送应答。主机失败应答1) 解除超时登记;2) 恢复交易明细,将交易状态修改为resp_code = “!”, agn_resp_code = “!”, rvsl_flg = “0”;3) 调用AgtSelAGBNKMSG恢复SessionHead;4) 调用FillVarErrToDevAndSend组包向终端发送应答。异常处理平台超时处理1) 调用Req84*FromHostTimeoutFun函数。2) 在Req84*FromHostTimeoutFun中的处理如下:2.1)恢复交易明细,判断交易状态如果为状态为rvsl_flg 不等于 “0”并且resp_code 不等于 “?”,则表示此交易已经被冲正无须平台处理,平台直接退出。2.2)如果交易没有被冲正则先向终端返回超时应答;2.3)重新申请一个冲正交易流水号;2.4)修改原交易状态为resp_code = “!”, agn_resp_code = “!”, rvsl_flg = “1”;在交易明细表中插入冲正交易的明细,状态为resp_code = “?”, agn_resp_code = “?”, rvsl_flg = “0”;2.5)组包向主机发送冲正交易,注意EJFNO = 0 + 终端流水号,HEJFNO = 0+平台原交易流水号;2.6)登记存储转发表,进行冲正交易的存储转发;终端发起的冲正交易1) 调用DevRsvRes函数处理。1.1) 恢复银行请求明细表将原交易的平台流水号取出来,通过流水号恢复原交易的明细,如果判断原交易已经冲正则直接返回终端已冲正的应答;否则申请新的冲正交易流水号;1.2) 将原交易状态置为冲正状态rvsl_flg = “1”;1.3) 在交易明细表中插入一条冲正交易的记录;1.4) 组包向主机发送冲正交易,注意EJFNO = 0 + 终端流水号,HEJFNO = 0+平台原交易流水号;1.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向终端返回冲正失败应答。1.5 圈存(8416)正常处理终端的请求消息处理:1) TPLGetMessage截取上送柜台消息;2) 调用CheckMsgMac校验MAC;3) 调用AgtChkCardStat函数判断交易卡是否已经列入黑名单;4) 判断这笔交易的类型,如果是终端发起的冲正交易则进入DevRsvRes函数(稍后说明)处理。否则继续进行正常处理。5) 调用CreditForLoad生成校验码(MAC2);6) 申请一个新的流水号,并且登记超时;7) 将上送的信息插入到银行请求消息表(调用AgtInsBnkMsg函数,记录支行号和终端号等信息);8) 在交易明细表(agtxndtl)中插入一条交易明细;状态为resp_code = “?”, agn_resp_code = “?”, rvsl_flg = “0”;9) 组包向主机发送补换卡交易的请求;注意交易流水号(EJFNO)为“0”+平台流水号(6位),原交易流水号为这笔交易的终端流水号。主机成功应答1) 恢复交易明细表中的这条交易数据;判断交易状态,如果rvsl_flg 不等于 “0”则表示此交易已经被冲正,此应答是一个迟到应答,平台将调用Req84*FromHostTimeoutFun函数进行异常处理。2) 如果非迟到应答,则解除超时登记;3) 将交易状态修改为resp_code = “00”, agn_resp_code = “00”, rvsl_flg = “0”;4) 调用AgtSelAGBNKMSG恢复SessionHead;5) 调用FillVarNorToDevAndSend组包向终端发送应答。主机失败应答1) 解除超时登记;2) 恢复交易明细,将交易状态修改为resp_code = “!”, agn_resp_code = “!”, rvsl_flg = “0”;3) 调用AgtSelAGBNKMSG恢复SessionHead;4) 调用FillVarErrToDevAndSend组包向终端发送应答。异常处理平台超时处理1) 调用Req84*FromHostTimeoutFun函数。2) 在Req84*FromHostTimeoutFun中的处理如下:2.1)恢复交易明细,判断交易状态如果为状态为rvsl_flg 不等于 “0”并且resp_code 不等于 “?”,则表示此交易已经被冲正无须平台处理,平台直接退出。2.2)如果交易没有被冲正则先向终端返回超时应答;2.3)重新申请一个冲正交易流水号;2.4)修改原交易状态为resp_code = “!”, agn_resp_code = “!”, rvsl_flg = “1”;在交易明细表中插入冲正交易的明细,状态为resp_code = “?”, agn_resp_code = “?”, rvsl_flg = “0”;2.5)组包向主机发送冲正交易,注意EJFNO = 0 + 终端流水号,HEJFNO = 0+平台原交易流水号;2.6)登记存储转发表,进行冲正交易的存储转发;终端发起的冲正交易1)调用DevRsvRes函数处理。1.1) 恢复银行请求明细表将原交易的平台流水号取出来,通过流水号恢复原交易的明细,如果判断原交易已经冲正则直接返回终端已冲正的应答;否则申请新的冲正交易流水号;1.2) 将原交易状态置为冲正状态rvsl_flg = “1”;1.3) 在交易明细表中插入一条冲正交易的记录;1.4) 组包向主机发送冲正交易,注意EJFNO = 0 + 终端流水号,HEJFNO = 0+平台原交易流水号;1.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向终端返回冲正失败应答。1.6 取现(8417)正常处理终端的请求消息处理:1) TPLGetMessage截取上送柜台消息;2) 调用CheckMsgMac校验MAC;3) 调用AgtChkCardStat函数判断交易卡是否已经列入黑名单;4) 判断这笔交易的类型,如果是终端发起的冲正交易则进入DevRsvRes函数(稍后说明)处理。否则继续进行正常处理。5) 调用DebitforPurchase生成校验码(MAC1);6) 申请一个新的流水号,并且登记超时;7) 将上送的信息插入到银行请求消息表(调用AgtInsBnkMsg函数,记录支行号和终端号等信息);8) 在交易明细表(agtxndtl)中插入一条交易明细;状态为resp_code = “?”, agn_resp_code = “?”, rvsl_flg = “0”;9) 组包向主机发送补换卡交易的请求;注意交易流水号(EJFNO)为“0”+平台流水号(6位),原交易流水号为这笔交易的终端流水号。主机成功应答1) 恢复交易明细表中的这条交易数据;判断交易状态,如果rvsl_flg 不等于 “0”则表示此交易已经被冲正,此应答是一个迟到应答,平台将调用Req84*FromHostTimeoutFun函数进行异常处理。2) 如果非迟到应答,则解除超时登记;3) 将交易状态修改为resp_code = “00”, agn_resp_code = “00”, rvsl_flg = “0”;4) 调用AgtSelAGBNKMSG恢复SessionHead;5) 调用FillVarNorToDevAndSend组包向终端发送应答。主机失败应答1) 解除超时登记;2) 恢复交易明细,将交易状态修改为resp_code = “!”, agn_resp_code = “!”, rvsl_flg = “0”;3) 调用AgtSelAGBNKMSG恢复SessionHead;4) 调用FillVarErrToDevAndSend组包向终端发送应答。异常处理平台超时处理1) 调用Req84*FromHostTimeoutFun函数。2) 在Req84*FromHostTimeoutFun中的处理如下:2.1)恢复交易明细,判断交易状态如果为状态为rvsl_flg 不等于 “0”并且resp_code 不等于 “?”,则表示此交易已经被冲正无须平台处理,平台直接退出。2.2)如果交易没有被冲正则先向终端返回超时应答;2.3)重新申请一个冲正交易流水号;2.4)修改原交易状态为resp_code = “!”, agn_resp_code = “!”, rvsl_flg = “1”;在交易明细表中插入冲正交易的明细,状态为resp_code = “?”, agn_resp_code = “?”, rvsl_flg = “0”;2.5)组包向主机发送冲正交易,注意EJFNO = 0 + 终端流水号,HEJFNO = 0+平台原交易流水号;2.6)登记存储转发表,进行冲正交易的存储转发;终端发起的冲正交易1)调用DevRsvRes函数处理。1.1) 恢复银行请求明细表将原交易的平台流水号取出来,通过流水号恢复原交易的明细,如果判断原交易已经冲正则直接返回终端已冲正的应答;否则申请新的冲正交易流水号;1.2) 将原交易状态置为冲正状态rvsl_flg = “1”;1.3) 在交易明细表中插入一条冲正交易的记录;1.4) 组包向主机发送冲正交易,注意EJFNO = 0 + 终端流水号,HEJFNO = 0+平台原交易流水号;1.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向终端返回冲正失败应答。1.7 挂失(8460)终端的请求消息处理:1) TPLGetMessage截取上送柜台消息;2) 调用CheckMsgMac校验MAC;3) 申请一个新的非超时流水号;4) 将上送的信息插入到银行请求消息表(调用AgtInsBnkMsg函数,记录支行号和终端号等信息);5) 调用AgtUpdcltathbth将挂失卡对应的行业记录(agcltath)置为不可用,auth_stat = “0”;6) 调用AgtInsBlackInfo在黑名单信息表中增加一条新的记录,属性为“增加” prop = “+”;7) 返回给终端挂失的应答;1.8 解挂(8461)终端的请求消息处理:1) TPLGetMessage截取上送柜台消息;2) 调用CheckMsgMac校验MAC;3) 申请一个新的非超时流水号;4) 将上送的信息插入到银行请求消息表(调用AgtInsBnkMsg函数,记录支行号和终端号等信息);5) 调用AgtUpdcltathbth将挂失卡对应的行业记录(agcltath)置为可用,auth_stat = “1”;6) 调用AgtInsBlackInfo在黑名单信息表中增加一条新的记录,属性为“删除” prop = “-”;7) 返回给终端解挂的应答;1.9 卡部输单产生、删除黑名单(8420)终端的请求消息处理:1) TPLGetMessage截取上送柜台消息;2) 调用CheckMsgMac校验MAC;3) 申请一个新的非超时流水号;4) 将上送的信息插入到银行请求消息表(调用AgtInsBnkMsg函数,记录支行号和终端号等信息);5) 判断交易的类型,根据交易类型分别调用AgtSelBlackInfo查询黑名单信息;6) 或者调用AgtUpdcltathbth将挂失卡对应的行业记录(agcltath)置为可用,auth_stat = “1”;调用AgtInsBlackInfo在黑名单信息表中增加一条新的记录,属性为“删除”或者“增加”;7) 返回给终端处理后的应答;1.10 密钥管理(8423)终端的请求消息处理:1) TPLGetMessage截取上送柜台消息;2) 调用CheckMsgMac校验MAC;3) 将上送的信息插入到银行请求消息表(调用AgtInsBnkMsg函数,记录支行号和终端号等信息);4) 判断交易的类型,根据交易类型分别调用AgtSelKeyAttribInfo查询密钥信息;5) 调用AgtUpdKeyAttrib修改密钥信息;6) 返回给终端处理后的应答;1.11 黑名单下传卡部(8453)终端的请求消息处理:1) TPLGetMessage截取上送柜台消息;2) 调用CheckMsgMac校验MAC;3) 将上送的信息插入到银行请求消息表(调用AgtInsBnkMsg函数,记录支行号和终端号等信息);4) 判断交易的类型,如果是第一次下传,则调用AgtSelBlackToTmp将黑名单明细表(blackinfo)中属性为“增加”的信息倒入黑名单下载临时表(blackinfochk)中;5) 调用AgtGetBlackChkDtl根据终端上送的索引号取出此索引号以后的五条黑名单信息;6) 将黑名单信息返回给终端;1.12 行业应用开通(8413)正常处理终端的请求消息处理: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) 调用AgtSelAGBNKMSG恢复SessionHead;5) 调用FillVarNorToDevAndSend组包向终端发送应答。主机失败应答1) 解除超时登记;2) 恢复交易明细,将交易状态修改为resp_code = “!”, agn_resp_code = “!”, rvsl_flg = “0”;3) 调用AgtSelAGBNKMSG恢复SessionHead;4) 调用FillVarErrToDevAndSend组包向终端发送应答。异常处理平台超时处理1) 调用Req84*FromHostTimeoutFun函数。2) 在Req84*FromHostTimeoutFun中的处理如下:2.1)恢复交易明细,判断交易状态如果为状态为rvsl_flg 不等于 “0”并且resp_code 不等于 “?”,则表示此交易已经被冲正无须平台处理,平台直接退出。2.2)如果交易没有被冲正则先向终端返回超时应答;2.3)重新申请一个冲正交易流水号;2.4)修改原交易状态为resp_code = “!”, agn_resp_code = “!”, rvsl_flg = “1”;在交易明细表中插入冲正交易的明细,状态为resp_code = “?”, agn_resp_code = “?”, rvsl_flg = “0”;2.5)组包向主机发送冲正交易,注意EJFNO = 0 + 终端流水号,HEJFNO = 0+平台原交易流水号;2.6)登记存储转发表,进行冲正交易的存储转发;终端发起的冲正交易1)调用DevRsvRes函数处理。1.1) 恢复银行请求明细表将原交易的平台流水号取出来,通过流水号恢复原交易的明细,如果判断原交易已经冲正则直接返回终端已冲正的应答;否则申请新的冲正交易流水号;1.2) 将原交易状态置为冲正状态rvsl_flg = “1”;1.3) 在交易明细表中插入一条冲正交易的记录;1.4) 组包向主机发送冲正交易,注意EJFNO = 0 + 终端流水号,HEJFNO = 0+平台原交易流水号;1.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向终端返回冲正失败应答。1.13 IC卡领卡、激活(8406)正常处理终端的请求消息处理: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) 调用AgtSelAGBNKMSG恢复SessionHead;5) 调用FillVarNorToDevAndSend组包向终端发送应答。主机失败应答1) 解除超时登记;2) 恢复交易明细,将交易状态修改为resp_code = “!”, agn_resp_code = “!”, rvsl_flg = “0”;3) 调用AgtSelAGBNKMSG恢复SessionHead;4) 调用FillVarErrToDevAndSend组包向终端发送应答。异常处理平台超时处理1) 调用Req84*FromHostTimeoutFun函数。2) 在Req84*FromHostTimeoutFun中的处理如下:2.1)恢复交易明细,判断交易状态如果为状态为rvsl_flg 不等于 “0”并且resp_code 不等于 “?”,则表示此交易已经被冲正无须平台处理,平台直接退出。2.2)如果交易没有被冲正则先向终端返回超时应答;2.3)重新申请一个冲正交易流水号;2.4)修改原交易状态为resp_code = “!”, agn_resp_code = “!”, rvsl_flg = “1”;在交易明细表中插入冲正交易的明细,状态为resp_code = “?”, agn_resp_code = “?”, rvsl_flg = “0”;2.5)组包向主机发送冲正交易,注意EJFNO = 0 + 终端流水号,HEJFNO = 0+平台原交易流水号;2.6)登记存储转发表,进行冲正交易的存储转发;终端发起的冲正交易1)调用DevRsvRes函数处理。1.1) 恢复银行请求明细表将原交易的平台流水号取出来,通过流水号恢复原交易的明细,如果判断原交易已经冲正则直接返回终端已冲正的应答;否则申请新的冲正交易流水号;1.2) 将原交易状态置为冲正状态rvsl_flg = “1”;1.3) 在交易明细表中插入一条冲正交易的记录;1.4) 组包向主机发送冲正交易,注意EJFNO = 0 + 终端流水号,HEJFNO = 0+平台原交易流水号;1.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向终端返回冲正失败应答。1.14 打名卡单位申请开卡(8436)终端的请求消息处理: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.15 打名卡个人申请开卡(8437)终端的请求消息处理: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) 组包向终端发送应答。主机失败应答1) 恢复交易明细,将交易状态修改为resp_code = “!”, agn_resp_code = “!”, rvsl_flg = “0”;2) 调用AgtSelAGBNKMSG恢复SessionHead;3) 组包向终端发送应答。1.16 IC卡发卡申请维护(8438)终端的请求消息处理:1) TPLGetMessage截取上送柜台消息;2) 调用CheckMsgMac校验MAC;3) 调用AgtSelAppnoChk检查申请书号的正确性;4) 申请一个新的流水号,不登记超时;5) 将上送的信息插入到银行请求消息表(调用AgtInsBnkMsg函数,记录支行号和终端号等信息);6) 调用AgtSelCLTATHACT返回当前卡片所对应的所有帐户类型(行业类型);7) 在交易明细表(agtxndtl)中插入一条交易明细;状态为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 开票模拟合同
- 口罩劳务合同
- 苗木移植合同
- 蔬菜买卖合同
- 店铺租赁转让合同
- 国际商法合同
- 外围护栏合同
- 户外安装合同
- 促销推广合同
- 二衬施工合同
- 聘请常年法律顾问项目投标书
- 生物制药行业的新革命:小分子合成技术
- GA 1804-2022危险化学品生产企业反恐怖防范要求
- 小学课外阅读书籍《王子与贫儿》PPT
- 三年级上册道德与法治说课教案-第一单元第1课《学习伴我成长》第二课时
- 公路勘测地形测绘内容与取舍要点有哪些
- GB/T 16930.2-2021盲杖第2部分:性能要求和试验方法
- 2022年桑植县水利系统事业单位招聘笔试试题及答案
- GB/T 14336-1993合成短纤维长度试验方法
- 11466现代企业人力资源管理概论第7章
- 养猪场动物标识使用制度
评论
0/150
提交评论