【电子回单】浦发银行(SPDB_DC)回单配置指南
浦发银行的新客户仅支持WJ01或DY47+WJ12的接口获取方式,这种方式是发请求银行返回文件流的方式。在电子回单代理程序 - 银行配置页面,浦发银行推送文件的方式要选择“WJ01”或者“DY47+WJ12”,如下图所示:
一、回单代理程序 - 配置项 - 银行配置
在电子回单代理程序 - 银行配置页面,选择“上海浦东发展银行直联版”之后,需要对以下配置项进行配置。
1、浦发银行推送文件的方式
要选择“WJ01”或者“DY47+WJ12”,如下图所示:
WJ01
WJ01交易,用来下载T+1的账单文件。若客户已在柜面通过4498签约了银企直联DZZD功能,则可以通过该交易定期进行后续账单文件下载。
在预处理调度,根据银行账号、下载文件业务类型、下载文件参数等参数下载回单。交易失败时,报文体失败报错(无文件字节流返回)。交易成功时,报文体成功返回+文件字节流,回单平台根据报文体中的fileLength文件大小、fileFormat文件格式、fileName读取返回报文后的文件字节流内容,并在本地tempPath目录下输出zip压缩包,解压后重命名文件并将其移动到scanPath目录下。
参数说明:
下载文件业务类型fileBusinessType:1-账单文件)
下载文件参数fileDownloadPar:下载文件业务类型字段为1-账单文件时,则需要输入:账单类型|账单日期
其中,账单类型:1-银企余额账单,2-批量回单,3-单笔回单,4-对公明细账单。金蝶电子回单代理程序下载的回单类型为3。
其中,账单日期格式:YYYYMMDD。如果在银行配置页面维护了测试日期,账单日期就取测试日期。
DY47+WJ12
在预处理阶段,先调用DY47发起前置交易,交易成功后等到下载阶段再发起WJ12交易获取结果文件。
DY47交易接口主要用来满足客户T+0电子回单下载需求。通过该交易可以发起账务流水的T+0电子回单生成申请,然后根据接口返回的回单文件编号,通过银企直联WJ12交易获取相应的回单文件。一条流水对应一个回单文件,一次最多支持10条流水的回单文件。
2. 下面这些配置项可以参考银企平台的前置机配置页面以及浦发前置机bisafe进行配置
银行前置机IP地址 —— 浦发前置机这台机器的IP
银行前置机端口 —— 浦发前置机的NC安全HTTP服务的监听端口
企业客户号 —— 银企平台前置机配置页面的企业客户号
bisafe签名服务地址 —— 浦发前置机这台机器的IP
bisafe签名服务端口 —— 浦发前置机的NC签名服务的监听端口
bisafe服务IP地址 —— 浦发前置机这台机器的IP
bisafe文件传输服务监听端口 —— 浦发前置机的文件传输HTTP服务的监听端口
另, 新版浦发银行前置机界面如下。注意,测试回单的话,银行服务端口要用7002/7004。
3、测试日期
浦发银行推送文件的方式选择“DY47+WJ12”时,这个测试日期填了也不生效,默认为空即可。
浦发银行推送文件的方式选择“WJ01”,这个测试日期可以填回单的交易日期,格式为yyyymmdd,正式环境不填。
4、是否获取当日回单
获取当日回单功能,能够下载当天的回单文件,如果选择"是"请对下方【[当日回单创建]任务调度配置】进行设置。
注意:浦发银行推送文件的方式选择“DY47+WJ12”,才支持获取当日回单。
二、任务的[创建]->[预处理] ->[下载] ->[扫描]阶段
1. 创建调度
创建浦发银行的回单任务。
2. 预处理调度
在预处理阶段,先调用DY47发起前置交易获取到回单文件名,交易成功后等到下载阶段再发起WJ12交易获取结果文件。
调用DY47接口发起前置请求,请求报文和响应报文如下:
DY47Impl 签名请求报文: <body> <billDownloadChanel>1</billDownloadChanel> <acctNo>952A9997220008092</acctNo> <singleOrBatchFlag>1</singleOrBatchFlag> <beginNumber>1</beginNumber> <queryNumber>10</queryNumber> <beginDate>20461231</beginDate> <endDate>20461231</endDate> </body> 验签响应报文体: <body> <totalNumber>2</totalNumber> <reserve1></reserve1> <reserve2></reserve2> <reserve3></reserve3> <lists name="LoopResult"> <list> <acceptNo>20230712100001026263</acceptNo> <result>0</result> <resultMsg></resultMsg> <oppositeAcctNo></oppositeAcctNo> <oppositeBankNo></oppositeBankNo> <debitFlag>1</debitFlag> <businessCode>9935</businessCode> <backhostGyno>995209880014</backhostGyno> <subpoenaSeqNo>2</subpoenaSeqNo> <transDate>20461231</transDate> <transAmount>36.11</transAmount> <reserve1>20230614</reserve1> <reserve2></reserve2> <reserve3></reserve3> </list> <list> <acceptNo>20230712100001026262</acceptNo> <result>0</result> <resultMsg></resultMsg> <oppositeAcctNo></oppositeAcctNo> <oppositeBankNo></oppositeBankNo> <debitFlag>1</debitFlag> <businessCode>9935</businessCode> <backhostGyno>995209880014</backhostGyno> <subpoenaSeqNo>4</subpoenaSeqNo> <transDate>20461231</transDate> <transAmount>36.11</transAmount> <reserve1>20230614</reserve1> <reserve2></reserve2> <reserve3></reserve3> </list> <list> ………… </list> </lists> </body>
如上所示,DY47接口返回符合条件的总笔数totalNumber=6,结果为[995209880014_36.11_1_20230712100001026263, 995209880014_36.11_1_20230712100001026262, …………]
。其中,响应报文中的acceptNo为回单文件编号,当账单下载渠道billDownloadChanel为1时,可用此编号发起WJ12交易下载回单文件。
3. 下载调度
DY47接口返回了几条数据,那么在下载调度阶段,就一条一条的去下载,一直到下载任务结束。
WJ接口的请求和响应报文如下:
WJ12Impl-buildSign 签名请求报文: <body> <acctNo>952A9997220008092</acctNo> <fileDownloadFlag>1</fileDownloadFlag> <fileDownloadPar>20230712100001026263</fileDownloadPar> </body> 验签响应报文体: <body> <fileLength>211399</fileLength> <fileName>20230712100001026263.pdf</fileName> <remark1></remark1> <remark2></remark2> <remark3></remark3> <remark4></remark4> <remark5></remark5> <remark6></remark6> </body>
其中,fileDownloadFlag为文件下载模式。若该字段为1,则需要先发起前置交易(DY47)完成T+0回单文件申请。fileDownloadPar为文件下载参数,其值为DY47返回的回单文件编号,每笔WJ12文件下载交易只能输入一个回单文件编号。
响应报文:
返回成功时:报文体成功返回+文件字节流
返回失败时:报文体失败报错(无文件字节流返回)
回单平台会根据报文体中的fileLength文件大小,读取返回报文后的文件字节流内容,保存在本地tempPath\SPDB_DC目录下,并修改文件名为:952A9997220008092_20461231_995209880014_36.11_1_20230712100001026263.pdf,然后将文件移动到\scanPath\SPDB_DC成功下。
文件命名规则:银行账号_交易日期_柜员流水号_交易金额_回单文件编号.pdf
4. 扫描调度
回单代理程序将下载到scanPath\SPDB_DC目录的文件扫描,解析出结构化数据保存到数据库,同时将文件保存到bakPath\SPDB_DC目录下。此时查看任务【结果】,如下图所示:
三、常见问题
浦发提供了sit和uat两套测试环境,不同的测试环境环境,BiSafe的配置以及测试数据也不相同。请参考银行提供的《浦发银企直联客户端国密BiSafe部署手册.docx》、《上海浦东发展银行银企直联系统测试环境测试数据.doc》等文档中对测试环境、测试数据的说明和要求,去创建任务,进行回单下载测试。
创建任务后进行下载,若任务失败,可在回单日志中找出对应日志。如何找日志?使用这个工具“Sublime Text”查看日志较为方便。下面,以"DY47+WJ12"为例来说明寻找日志的大概步骤:
1、先根据关键字找到任务id
某个回单任务对应的银行账号、回单日期,你可以在回单任务列表这里看到,那么关键字为“账号:xxxxxxxxxxxxxxxxx处理时间:yyyymmdd”。然后看一下任务的处理时间是哪天?找到这天的回单日志,编辑打开,搜索这个关键字在回单日志中出现的地方,如下图所示,找到任务id是“1686406434884943872”。
2、根据任务id找到DY47接口的请求和响应报文
任务的id在整个任务执行期间是不变的,所以接下来就根据任务id去找银行接口的请求和响应报文。如下图所示,日志文件会高亮显示。如下图所示,可以看到在预处理阶段,先调用DY47接口发起前置请求:
DY47Impl 签名请求报文:<body><billDownloadChanel>1</billDownloadChanel><acctNo>95200078801300000003</acctNo><singleOrBatchFlag>1</singleOrBatchFlag><beginNumber>1</beginNumber><queryNumber>10</queryNumber><beginDate>20230802</beginDate><endDate>20230802</endDate></body>
验签响应报文体:
<body>
<totalNumber>42</totalNumber>
<reserve1></reserve1>
<reserve2></reserve2>
<reserve3></reserve3>
<lists name="LoopResult">
<list>
<acceptNo>20230802100002849428</acceptNo>
<result>0</result>
<resultMsg></resultMsg>
<oppositeAcctNo>952A9997220008092</oppositeAcctNo>
<oppositeBankNo>9520</oppositeBankNo>
<debitFlag>1</debitFlag>
<businessCode>EK95</businessCode>
<backhostGyno>999703600001</backhostGyno>
<subpoenaSeqNo>2</subpoenaSeqNo>
<transDate>20230802</transDate>
<transAmount>21.12</transAmount>
<reserve1>20230802</reserve1>
<reserve2></reserve2>
<reserve3></reserve3>
</list>
<list>
………………忽略
</list>
</lists>
</body>
3、根据任务id找到WJ12接口的请求和响应报文
如下图所示,可以看到在下载调度,获取到前置机锁成功后,就会调用WJ12接口发送请求报文,日志也会输出响应报文。
WJ12Impl-buildSign 签名请求报文:<body><acctNo>95200078801300000003</acctNo><fileDownloadFlag>1</fileDownloadFlag><fileDownloadPar>20230802100002849522</fileDownloadPar></body>
响应报文:
读取到的文件转换位string之后: <?xml version="1.0" encoding="gb2312"?>
<packet><head><transCode>WJ12</transCode><signFlag>1</signFlag><packetID>1686769325093945344</packetID><timeStamp>2023-08-03 00:02:00</timeStamp><returnCode>EYY8777</returnCode></head><body><returnCode>EYY8777</returnCode><returnMsg>未找到对应文件登记信息</returnMsg></body></packet>
从日志可以看出,WJ12接口返回了:
<returnCode>EYY8777</returnCode><returnMsg>未找到对应文件登记信息</returnMsg>
因而回单任务失败了,前台显示:下载回单失败,本次未获取到回单文件。验证签名 银行响应数据中没有包含<signature>节点
因该报错为银行返回的,所以需要联系银行技术人员处理。
【电子回单】浦发银行(SPDB_DC)回单配置指南
本文2024-09-22 20:17:20发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-112662.html