【电子回单】宁波银行直连版(NBCB_DC)回单配置指南
宁波银行推送电子回单的方式,是电子回单代理程序向宁波银行前置机发送回单下载的请求,交易成功之后,银行返回回单文件的文件地址,通过URL将回单文件存到本地。
一、回单代理程序 - 配置项 - 银行配置
在回单平台 - 配置项 - 系统配置页面 - 启用银行插件列表中,勾选“宁波银行直连版(NBCB_DC)”后,点【保存】按钮,在银行配置页面,“--请选择银行--”下拉列表中就可以选择到这个插件并进行配置了。
1. 部分配置项可以参考银企平台的配置
银行前置机IP地址:对接的银行前置机所在服务器IP地址
银行前置机端口:对接的银行前置机服务的端口号
用户登录ID:企业在宁波银行柜面银企直联开户后可以得到一个网银客户号
银企直联密码:用户银企直联密码,免登陆可以不用填写
签名端口:请求报文签名端口(咨询银行)
以上配置项可以参考 银企平台 - 系统配置 - 前置机配置页面(选择宁波银行直连版(NBCB_DC))的配置,如下图所示:
2. 代理IP和代理端口
代理IP:用于内网访问代理的IP
代理端口:用于内网访问代理的端口
非必填项,默认可以不配置。
3. 是否需要登录验证
咨询银行下载回单是否需要登陆验证。新客户一般不需要登录验证,所以配置为“否”即可。
4. 银行概要文件编码方式
用于解析文件处理回单,可选择GBK或者UTF-8。默认值(GBK)。
默认值GBK。如果从日志中看到概要文件无法解析或乱码,可以换成UTF-8再验证。
5. 回单下载地址
银行提供,根据银行提供的地址填写。如对接宁波银行的测试环境一般配置为:https://open-test.nbcb.com.cn:61027,如果是对接宁波银行的生产环境,配置为 https://mybank.nbcb.com.cn 或https://cb.nbcb.com.cn。默认值(https://mybank.nbcb.com.cn)
6. 测试日期
银行提供,正式环境为空。格式yyyyMMdd(如:20240412)。
在对接宁波银行测试环境进行测试的时候,银行可能会让下载未来日期的回单,但回单平台不支持创建未来日期的任务,那么就需要配置测试日期了。
7. 当日回单调度配置
是否获取当日回单:获取当日回单功能,能够下载当天的回单文件,如果选择"是"请对下方【[当日回单创建]任务调度配置】进行设置。
宁波银行[当日回单创建]任务调度配置:电子回单[当日回单创建]任务,每天自动创建所有[电子回单账号]的当天的回单任务,并且每个调度都会重置[失败]、[下载成功]状态的任务为[创建]。因当日电子回单对系统性能影响较大,请根据具体情况合理设置调度周期。
8. 匹配码规则
匹配码是电子回单和交易明细匹配的唯一标识,请与银企平台-业务管理-银行业务配置-交易明细的匹配码保持一致。
注意:银行提供的压缩包文件中包含‘receipt_v2.txt’文件才可以选择‘账号_日期_电子回单号_交易金额_明细序号_借贷标识’格式的匹配码。默认值(账号_日期_电子回单号_交易金额)
二、任务的[创建]->[预处理] ->[下载] ->[扫描]阶段
为了快速的看到效果,可以在[配置项 - 银行配置]页面,将“宁波银行直联版电子回单调度方式”修改为“测试使用”(测试调度仅需要大约4分钟就可以完成一次调度)。修改并保存后,在[模块管理]页面重启【回单模块】生效。
1. 创建调度
自动创建所有回单账号的前一天的回单任务。
刚部署的情况下是没有任务的,可以点【+添加任务】按钮手动添加一个任务进行测试。
2. 预处理调度
第一步,根据任务的账号、交易日期、交易序列号serialNo等信息调用客户回单信息查询(srv193_accountReceiptQuery)接口,调用成功之后原样返回交易序列号serialNo;
第二步,等待一分钟银行生成生成回单文件,再根据查询序号JYXH(srv193接口的serialNo字段的值)信息调用回单生成状态查询(srv194_queryReceiptOrder)接口获取到文件地址WJDZ(命名规则:file/请求日期/dlReceipt/网银客户号+银行账号/xxxxxxxxxxxxxx_交易日期.zip)。
第三步,通过URL连接(生产环境是 https://mybank.nbcb.com.cn/file/请求日期/dlReceipt/网银客户号+银行账号/xxxxxxxxxxxxxx_交易日期.zip )将zip压缩包下载到\tempPath\NBCB_DC目录下并进行解压zip,获取pdf回单文件和概要文件。
第四步,读取到概要文件中的电子回单号、交易金额等信息,拼接成回单文件名,文件名规则为“账号_日期_电子回单号_交易金额”,并对解压后的pdf回单文件进行重命名。
预处理调度结束后,可点击任务的【详情】查看回单的文件名,如下图所示:
签名请求和响应报文、登录(srv001_signOn)请求和响应报文、客户回单信息查询(srv193_accountReceiptQuery)请求和响应报文、回单生成状态查询(srv194_queryReceiptOrder)请求和响应报文如下:
说明:
1)“是否需要登录验证”配置为“是”的情况下才会调用登录(srv001_signOn)接口。
2)调用登录、客户回单信息查询、回单生成状态查询接口前都需要先进行签名。
2024-04-28 16:20:00.027 INFO [NBCB_DC,,1779902501579915264] 10596 --- [pool-3-thread-13] c.k.bos.bank.nbcb.dc.job.NbcbDcFetchJob : 宁波银行——交易URL:http://xxx.xxx.xxx.xxx:9080/directlink/httpAccess 2024-04-28 16:20:00.028 INFO [NBCB_DC,,1779902501579915264] 10596 --- [pool-3-thread-13] c.k.bos.bank.nbcb.dc.utils.SignUtil : 宁波银行——签名请求:<?xml version="1.0" encoding="GBK"?> <msg> <msg_head> <msg_type>0</msg_type> <msg_id>1005</msg_id> <msg_sn>0</msg_sn> <version>1</version> </msg_head> <msg_body> <origin_data_len>165</origin_data_len> <origin_data> <opReq> <serialNo>1784497781059092480</serialNo> <reqTime>20240428162000</reqTime> <ReqParam> <userID>9xxxxxxxx8</userID> <userPWD>xxxxxxxxxx</userPWD> </ReqParam> </opReq> </origin_data> </msg_body> </msg> 2024-04-28 16:20:02.313 INFO [NBCB_DC,,1779902501579915264] 10596 --- [pool-3-thread-13] c.k.bos.bank.nbcb.dc.utils.SignUtil : 宁波银行——签名响应:<?xml version="1.0" encoding="UTF-8"?> <msg> <msg_head> <msg_type>1</msg_type> <msg_id>1005</msg_id> <msg_sn>0</msg_sn> <version>1</version> </msg_head> <msg_body> <signed_data>MIIF9gYJ*****************AafywyrFa</signed_data> </msg_body> </msg> 2024-04-28 16:20:02.313 INFO [NBCB_DC,,1779902501579915264] 10596 --- [pool-3-thread-13] c.k.bos.bank.nbcb.dc.job.NbcbDcFetchJob : 宁波银行——登录(srv001_signOn)请求:<?xml version="1.0" encoding="UTF-8"?> <NBCBEBankData> <sessionId>-1</sessionId> <serviceId>srv001_signOn</serviceId> <customerId>9xxxxxxxx8</customerId> <softwareId>002</softwareId> <functionId>00</functionId> <functionName>login</functionName> <opReq> <serialNo>1784497781059092480</serialNo> <reqTime>20240428162000</reqTime> <ReqParam> <userID>9xxxxxxxx8</userID> <userPWD>xxxxxxxxxx</userPWD> </ReqParam> </opReq> <signData>MIIF9*************iAafywyrFa</signData> </NBCBEBankData> 2024-04-28 16:20:02.811 INFO [NBCB_DC,,1779902501579915264] 10596 --- [pool-3-thread-13] c.k.bos.bank.nbcb.dc.job.NbcbDcFetchJob : 宁波银行——登录(srv001_signOn)响应:<?xml version="1.0" encoding="UTF-8"?> <NBCBEBankData> <serialNo>1784497781059092480</serialNo> <sessionId>GQCUIJHIHXJPBTJEDJERCPDMGCDIFODKIIEICCBT</sessionId> <retCode>0000</retCode> <errorMsg/> <opRep> <opResult> <corpName>XXXXXXXXXXXXXXXXXXX公司</corpName> </opResult> </opRep> </NBCBEBankData> 2024-04-28 16:20:02.813 INFO [NBCB_DC,,1779902501579915264] 10596 --- [pool-3-thread-13] c.k.bos.bank.nbcb.dc.utils.SignUtil : 宁波银行——签名请求:<?xml version="1.0" encoding="GBK"?> <msg> <msg_head> <msg_type>0</msg_type> <msg_id>1005</msg_id> <msg_sn>0</msg_sn> <version>1</version> </msg_head> <msg_body> <origin_data_len>166</origin_data_len> <origin_data> <opReq> <serialNo>1784497792740229120</serialNo> <reqTime>20240428162002</reqTime> <ReqParam> <ZHHA>7xxxxxxxxxxxxxxx4</ZHHA> <ZZH/> <CXRQ>20240415</CXRQ> </ReqParam> </opReq> </origin_data> </msg_body> </msg> 2024-04-28 16:20:04.731 INFO [NBCB_DC,,1779902501579915264] 10596 --- [pool-3-thread-13] c.k.bos.bank.nbcb.dc.utils.SignUtil : 宁波银行——签名响应:<?xml version="1.0" encoding="UTF-8"?> <msg> <msg_head> <msg_type>1</msg_type> <msg_id>1005</msg_id> <msg_sn>0</msg_sn> <version>1</version> </msg_head> <msg_body> <signed_data>MIIF********U1eykMrfxAw==</signed_data> </msg_body> </msg> 2024-04-28 16:20:04.732 INFO [NBCB_DC,,1779902501579915264] 10596 --- [pool-3-thread-13] c.k.bos.bank.nbcb.dc.job.NbcbDcFetchJob : 宁波银行——客户回单信息查询(srv193_accountReceiptQuery)请求:<?xml version="1.0" encoding="UTF-8"?> <NBCBEBankData> <sessionId>GQCUIJHIHXJPBTJEDJERCPDMGCDIFODKIIEICCBT</sessionId> <serviceId>srv193_accountReceiptQuery</serviceId> <customerId>9xxxxxxxx8</customerId> <softwareId>002</softwareId> <functionId>01</functionId> <functionName>receiptDetail</functionName> <opReq> <serialNo>1784497792740229120</serialNo> <reqTime>20240428162002</reqTime> <ReqParam> <ZHHA>7xxxxxxxxxxxxxxx4</ZHHA> <ZZH></ZZH> <CXRQ>20240415</CXRQ> </ReqParam> </opReq> <signData>MIIF9*****************1eykMrfxAw==</signData> </NBCBEBankData> 2024-04-28 16:20:07.740 INFO [NBCB_DC,,1779902501579915264] 10596 --- [pool-3-thread-13] c.k.bos.bank.nbcb.dc.job.NbcbDcFetchJob : 宁波银行——客户回单信息查询(srv193_accountReceiptQuery)响应:<?xml version="1.0" encoding="UTF-8"?> <NBCBEBankData> <serialNo>1784497792740229120</serialNo> <sessionId>GQCUIJHIHXJPBTJEDJERCPDMGCDIFODKIIEICCBT</sessionId> <retCode>0000</retCode> <errorMsg/> <opRep> <opResult> <YDDM>0000</YDDM> <SBYY>调用成功</SBYY> <SHMU>4</SHMU> <JYXH>DL0296539060</JYXH> </opResult> </opRep> </NBCBEBankData> 2024-04-28 16:20:07.741 INFO [NBCB_DC,,1779902501579915264] 10596 --- [pool-3-thread-13] c.k.bos.bank.nbcb.dc.job.NbcbDcFetchJob : 等待一分钟银行生成生成回单文件 2024-04-28 16:21:07.743 INFO [NBCB_DC,,1779902501579915264] 10596 --- [pool-3-thread-13] c.k.bos.bank.nbcb.dc.utils.SignUtil : 宁波银行——签名请求:<?xml version="1.0" encoding="GBK"?> <msg> <msg_head> <msg_type>0</msg_type> <msg_id>1005</msg_id> <msg_sn>0</msg_sn> <version>1</version> </msg_head> <msg_body> <origin_data_len>141</origin_data_len> <origin_data> <opReq> <serialNo>1784498065080582144</serialNo> <reqTime>20240428162107</reqTime> <ReqParam> <JYXH>1784497792740229120</JYXH> </ReqParam> </opReq> </origin_data> </msg_body> </msg> 2024-04-28 16:21:10.247 INFO [NBCB_DC,,1779902501579915264] 10596 --- [pool-3-thread-13] c.k.bos.bank.nbcb.dc.utils.SignUtil : 宁波银行——签名响应:<?xml version="1.0" encoding="UTF-8"?> <msg> <msg_head> <msg_type>1</msg_type> <msg_id>1005</msg_id> <msg_sn>0</msg_sn> <version>1</version> </msg_head> <msg_body> <signed_data>MIIF***************1yXMxhAH1YPJVo</signed_data> </msg_body> </msg> 2024-04-28 16:21:10.247 INFO [NBCB_DC,,1779902501579915264] 10596 --- [pool-3-thread-13] c.k.bos.bank.nbcb.dc.job.NbcbDcFetchJob : 宁波银行——回单生成状态查询(srv194_queryReceiptOrder)第1次请求:<?xml version="1.0" encoding="UTF-8"?> <NBCBEBankData> <sessionId>GQCUIJHIHXJPBTJEDJERCPDMGCDIFODKIIEICCBT</sessionId> <serviceId>srv194_queryReceiptOrder</serviceId> <customerId>9xxxxxxxx8</customerId> <softwareId>002</softwareId> <functionId>02</functionId> <functionName>receiptDownload</functionName> <opReq> <serialNo>1784498065080582144</serialNo> <reqTime>20240428162107</reqTime> <ReqParam> <JYXH>1784497792740229120</JYXH> </ReqParam> </opReq> <signData>MIIF3**********hAH1YPJVo</signData> </NBCBEBankData> 2024-04-28 16:21:10.704 INFO [NBCB_DC,,1779902501579915264] 10596 --- [pool-3-thread-13] c.k.bos.bank.nbcb.dc.job.NbcbDcFetchJob : 宁波银行——回单生成状态查询(srv194_queryReceiptOrder)第1次响应:<?xml version="1.0" encoding="UTF-8"?> <NBCBEBankData> <serialNo>1784498065080582144</serialNo> <sessionId>GQCUIJHIHXJPBTJEDJERCPDMGCDIFODKIIEICCBT</sessionId> <retCode>0000</retCode> <errorMsg/> <opRep> <opResult> <ZLZT>1</ZLZT> <WJDZ>file/20240428/dlReceipt/9xxxxxxxxx8xxxxxxxxxxxxxxx4/xxxxxxxxxxxxxx_20240415.zip</WJDZ> <SCSJ>20240428162006</SCSJ> </opResult> </opRep> </NBCBEBankData> 获取到文件地址WJDZ(命名规则:file/请求日期/dlReceipt/网银客户号+银行账号/xxxxxxxxxxxxxx_交易日期.zip)后,通过URL连接(生产环境是 https://mybank.nbcb.com.cn/file/请求日期/dlReceipt/网银客户号+银行账号/xxxxxxxxxxxxxx_交易日期.zip )将zip压缩包下载到\tempPath\NBCB_DC目录下并进行解压zip,获取pdf回单文件和概要文件。 然后读取到概要文件中的电子回单号、交易金额等信息,拼接成回单文件名,文件名规则为“账号_日期_电子回单号_交易金额”,并对pdf回单文件进行重命名。
下载到的zip压缩文件类似下面这样:
回单概要文件的内容说明如下(4.25号晚上升级之后才会返回receuot_v2.txt):
3. 下载调度
在下载调度阶段,将下载到\tempPath\NBCB_DC\的pdf回单移动到扫描工作路径\scanPath\NBCB_DC下。至此,下载调度结束。
4. 扫描调度
对下载到scanPath\NBCB_DC\目录的文件进行扫描,解析出结构化数据保存到回单库的表中同时将文件保存到bakPath\NBCB_DC\目录下。扫描调度结束后,可点击回单任务的【结果】查看回单的结构化数据。如下图所示:
三、常见问题
1、任务失败,异常信息提示“获取参数异常”
此时查看回单日志,可以看到如下日志:
2024-04-26 06:02:54.080 INFO [NBCB_DC,,1783163992982683648] 13248 --- [pool-3-thread-36] c.k.bos.bank.nbcb.dc.job.NbcbDcFetchJob : 宁波银行——客户回单信息查询(srv193_accountReceiptQuery)响应:
<?xml version="1.0" encoding="UTF-8"?>
<NBCBEBankData>
<serialNo>1783617669832900608</serialNo>
<sessionId>-1</sessionId>
<retCode>mc.entfinbank.account-management.accounts.0054</retCode>
<errorMsg>获取参数异常</errorMsg>
<opRep>
<opResult>
<YDDM></YDDM>
<SBYY></SBYY>
<JYXH></JYXH>
<SHMU></SHMU>
</opResult>
</opRep>
</NBCBEBankData>
分析解答:
咨询银行老师,答复当没有回单时会提示这个信息,后续银行方应该会优化该提示。
2、任务失败,异常信息提示“该回单当天查询次数过多”
此时查看回单日志,可以看到如下日志:
2024-04-24 00:03:07.459 INFO [NBCB_DC,,1782439217142431744] 13248 --- [pool-3-thread-52] c.k.bos.bank.nbcb.dc.job.NbcbDcFetchJob : 宁波银行——客户回单信息查询(srv193_accountReceiptQuery)响应:
<?xml version="1.0" encoding="UTF-8"?>
<NBCBEBankData>
<serialNo>1782802359684956160</serialNo>
<sessionId>-1</sessionId>
<retCode>mc.entfinbank.account-management.accounts.0055</retCode>
<errorMsg>该回单当天查询次数过多</errorMsg>
<opRep>
<opResult>
<YDDM></YDDM>
<SBYY></SBYY>
<JYXH></JYXH>
<SHMU></SHMU>
</opResult>
</opRep>
</NBCBEBankData>
分析解答:
咨询银行老师,答复银行方的要求是:每天调用次数不超过总次数100次,频次不要超过5分钟2次。
如果客户对回单的实时性要求非常高,那么“是否获取当日回单”需要配置为“是”,“[当日回单创建]任务调度配置”的调度周期最小也要设置为5分钟;调度方式使用【自定义】调度,“[预处理]任务调度配置”的调度周期也至少要设置为5分钟,且开始时间从早上9:00~下午5:00(早九晚五,5分钟一次,每小时12次,每天96次)。
如果客户对回单的实时性要求没那么高的话,调度方式配置为【正式使用】就可以。
【电子回单】宁波银行直连版(NBCB_DC)回单配置指南
本文2024-09-22 18:11:37发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-99215.html