核算平台通讯开发说明修订历史制定日期制定/修订内容摘要页数版本拟稿审查批准2015.01.04初稿王瑞目录目录...........................................................................................................................................31.概述..............................................................................................................................................42.核算平台作为服务端..................................................................................................................52.1说明....................................................................................................................................52.2实时通讯............................................................................................................................52.3字段映射..........................................................................................................................103.核算平台作为客户端................................................................................................................123.1说明..................................................................................................................................123.2实时通讯..........................................................................................................................123.2.1创建通讯服务.......................................................................................................123.2.2配置请求/响应报文..............................................................................................173.2.3设置参数及字段值...............................................................................................193.3批量通讯..........................................................................................................................211.概述核算平台对外通讯主要分两种场景,分别是核算平台作为服务端及核算平台作为客户端,下面分别进行说明。2.核算平台作为服务端2.1说明核算平台作为服务端,对其他平台系统提供服务,即其他平台发请求到核算,核算平台收到请求之后做相应的业务逻辑处理,之后将处理结果返回给请求方。核算平台作为服务端,通讯主要采用实时方式,下面进行详细说明。2.2实时通讯常用的通讯方式有TCPIP通讯(即Socket通讯)、HTTP通讯、WebService通讯等,这里以TCPIP通讯方式为例进行说明。首先,在EMPExplorer视图下,选中“渠道逻辑”,右键点击“新建渠道接入定义”,会弹出对话框,如下图所示。选中“TCPIP渠道接入”,在名称栏中输入接入渠道的名称,如“QSTcpipChannel”,此处不支持中文,最后点击“Finish”按钮。此操作会在web.xml文件添加一个servlet和servlet-mapping,如下所示。servlet中load-on-startup的值需要大于1。接下来进行参数设置,如下图所示,默认的超时设置是600000ms,即10分钟,可根据实际情况进行设置,一般采取默认。通讯设定处,连接方式可选“短连接”和“长连接”,短连接表示一次通讯完成之后关闭连接,长连接表示通讯完成之后连接也不关闭;双工模式可选“false”和“true”,一般情况下默认选“false”,false表示单工。监听端口设置:如下图所示,端口根据实际需求填入端口数字,持久连接可选true或false,一般默认选false,最大连接限制、使用线程缓冲和缓冲线程数可根据实际需求填写。解包处理设置:此处实现类是“com.yuchengtech.ycloans.comm.CommProcessor4Xingye”,此类实现“com.ecc.emp.tcpip.CommProcessor”接口,主要包括两个接口方法readPackage和wrapMessagePackage,前者主要用于接到报文后对报文信息进行初步的解包处理,如读取报文长度,将后面的报文读取出来,可添加一些特殊的预处理,如MAC校验等,后者是在响应报文完成拼包之后,再对响应报文做些特殊处理,如加上报文头长度,MAC校验等。各个实施项目需求不一,此类一般各项目需要根据实际需求定制。接入逻辑设置:此处实现类是com.ecc.emp.access.tcpip.EMPTCPIPRequestHandler,主要功能是对请求报文进行解包处理,响应报文进行拼包处理。对于TCPIP通讯,如果需要对报文的字段进行映射,可使用com.ecc.emp.access.tcpip.EMPTCPIPMappedRequestHandler类。serviceIdField与之后的Biz相对应,此处一般默认填“serviceId”,表示根据serviceId的值查找biz中对应的业务逻辑。“是否截去请求报文头”和“是否在返回报文中附带报文头”可根据实际需求配置。双击“请求报文头”及“响应报文头”根据实际需求配置报文头。选中上图中的“TCPIP渠道接入”,右键“新建”,选中“TCPIP接入交易”并点击,弹出框如下图所示,选中biz,点击“Next”,在接下来的弹出框选中业务逻辑,然后点击Finish。会创建一个TCPIP接入交易,如下图所示。描述栏可改为有意义的描述,交易码也可根据实际需求进行修改。之后选中上图中的点击右键,“新建”,分别新建请求报文和响应报文,然后分别双击请求报文和响应报文根据实际需求配置报文格式。2.3字段映射核算平台作为产品,各交易场景有自己的请求响应报文,报文中的字段由核算平台自己定义。在项目实施中,报文的字段与核算平台的字段命名不一致,这就需要进行字段映射。目前字段映射功能只支持TCPIP通讯方式,具体配置说明如下。配置TCPIP渠道接入时,接入逻辑应把实现类设为com.ecc.emp.access.tcpip.EMPTCPIPMappedRequestHandler。字段映射配置文件DICTMapped.xml放在与applicationCmis2Ycloans.xml同级路径下,对于公共字段,放到common子节点下,其他放到各自的serviceId下。此处id为核算平台的数据字段定义,mappedID为外部平台定义的数据字段(示例全部在前面加new_)每个ServiceID对应的字段映射配置如下,以serv10000100054为例进行说明。serv10000100054fieldid=LOAN_NOmappedID=new_LOAN_NO/fieldid=FEE_TYPmappedID=new_FEE_TYP/fieldid=TX_LOG_SEQmappedID=new_TX_LOG_SEQ/fieldid=STR_DTmappedID=new_STR_DT/fieldid=END_DTmappedID=new_END_DT/fieldid=LmHoldFeeTxListmappedID=new_LmHoldFeeTxList/fieldid=SEQ_NOmappedID=new_SEQ_NO/fieldid=CREATE_DTmappedID=new_CREATE_DT/fieldid=CREATE_USRmappedID=new_CREATE_USR/fieldid=FEE_AMTmappedID=new_FEE_AMT/fieldid=SETL_FEE_AMTmappedID=new_SETL_FEE_AMT/fieldid=FEE_CDEmappedID=new_FEE_CDE/fieldid=FEE_CCY_CDEmappedID=new_FEE_CCY_CDE/fieldid=FEE_TYPmappedID=new_FEE_TYP/fieldid=FEE_CHRG_PCTmappedID=new_FEE_CHRG_PCT/fieldid=HOLD_SETL_DTmappedID=new_HOLD_SETL_DT/fieldid=SETL_INDmappedID=new_SETL_IND/fieldid=FEE_RMKmappedID=new_FEE_RMK/fieldid=LAST_PAY_DTmappedID=new_LAST_PAY_DT/fieldid=LOAN_ACCT_TYPmappedID=new_LOAN_ACCT_TYP/fieldid=RECV_PAY_INDmappedID=new_RECV_PAY_IND/fieldid=FEE_BASE_AMTmappedID=new_FEE_BASE_AMT/fieldid=FEE_CHRG_PCTmappedID=new_FEE_CHRG_PCT/fieldid=HOLD_SETL_DTmappedID=new_HOLD_SETL_DT/fieldid=SETL_INDmappedID=new_SETL_IND/fieldid=FEE_RMKmappedID=new_FEE_RMK/fieldid=LAST_PAY_DTmappedID=new_LAST_PAY_DT/fieldid=LOAN_ACCT_TYPmappedID=new_LOAN_ACCT_TYP//serv100001000543.核算平台作为客户端3.1说明核算平台与外部系统(如核心及清算系统等)通讯分为两种情况,实时和批量。下面就这两种情况分别进行说明。3.2实时通讯核算平台作为客户端,向外部系统发出请求,外部系统收到请求之后做出响应,然后返回给核算平台,这是一个完整的通讯过程。核算要实现发出报文请