本文介绍了银行与企业平台间数据交互的方式,特别是通过文件推送来处理大数据量的交易明细查询和批量代发。文中提及金蝶银企新版代理程序的下载链接及相关支持的银行版本。详细说明了通过代理程序获取交易明细、提交代发付款请求及同步付款状态的过程。同时,分析了查询明细和提交代发单时可能出现的错误及原因,如代理程序端口不可达、文件路径配置错误等,并给出了解决方案。
背景:部分银行查询交易明细或者批量代发接口考虑到请求和响应数据较大,会采用文件推送的形式来实现数据交互
银企新版代理程序下载(包含代理程序压缩包和配置指导文档,该链接由于云社区原因无法直接访问到实际地址,请复制到新页签访问): https://vip.kingdee.com/article/95932679937684992
目前银企平台已对接银行插件版本中支持代理程序的有:
中国农业银行公网版
中国农业银行专线版
中国建设银行现金管理直连版
中国建行银行外联版
浙商银行直连版
渣打银行H2H版
汇丰银行直连版
花旗银行直连版
恒生银行直连版
光大、南京、郑州、齐鲁、长沙、江苏、九江银行直连版
1、查询交易明细:银行将查询到交易明细数据保存在一个文件中存放在前置机程序安装路径某一文件夹下(XX银行交易明细文件下载目录,银行告知),银企平台通过银企代理程序获取明细文件中的报文,然后解析明细数据;
注:获取交易明细文件的方式其实有两种:通过在银企平台配置前置机明细文件共享路径的方式 和 通过安装代理程序配置来获取前置机明细文件数据,后者可兼容不同系统的文件传输和字符集统一接收数据(不会乱码),所以我们现在一般强烈推荐使用代理程序的方式
2、提交批量代发付款:银企平台将代发请求的报文存在一个文件,通过银企代理程序上传到前置机程序安装路径某一文件夹下(XX银行代发(付款)文件上传目录,银行告知),上传成功之后,银企平台再发送付款请求(其中告知付款文件名)给银行前置机程序,前置机程序收到请求之后通过文件名到 代发(付款)文件上传目录 下去读取付款数据再上送银行服务器处理。
同步代发付款状态:银企平台同步付款状态,代理程序会与前置机交互查询付款状态,银行会将代发付款结果数据放在前置机程序安装路径某一文件夹下(XX银行代发(付款)结果文件下载目录,银行告知),银企平台通过代理程序拿到该文件中的报文,再更新付款状态。
举例:金蝶银企新版代理程序-农业银行公网版代理程序配置页面
问题现象:查询余额,普通付款都正常,仅仅查询明细报错,或者提交代发单报错
1、交易明细查询报错:
银企平台报错日志类型1:
查询当日明细时,发生了异常
com.kingdee.bos.ebgateway.exception.BankServiceException: Connection refused
......
原因:对应银行的代理程序端口不可达,请确认对应银行的代理程序是否成功启动,且对应端口是否启动监听。(比如:银企平台上执行命令: telnet 代理程序(同前置机服务器)ip 代理程序端口,检测是否连通,否则请自行排查环境网络问题)
银企平台报错日志类型2:
Caused by: java.io.FileNotFoundException: C:\Program Files (x86)\CMS\CZBTransmitter\Temp\2021041619561622 (系统找不到指定的文件。)
......
根本原因:配置的交易明细路径 下没有该明细文件
此处要分情况:
情况1: 直接在银企平台-前置机配置-配置了对应银行的交易明细返回目录
原因:银企平台前置机配置处配置的交易明细下载目录 不正确
例如中国农业银行公网版前置机配置:交易明细为文件时的返回目录,例如 c:/,当使用金蝶前置机代理程序时无需配置
如果有些同学一定想用共享路径的配置方式,那就请参考:【银企平台】查询交易明细的共享路径配置方式
情况2: 安装配置了代理程序,选择走代理程序获取交易明细
原因:代理程序对应银行配置页面的XX银行交易明细文件下载目录 不正确
2、提交代发单(批量代发)报错:
银企平台报错:
com.kingdee.bos.ebgateway.exception.BankServiceException: 向金蝶前置机代理程序上传文件发生异常。
[cause by] [不是xml格式 :]
<cause by> Error on line -1: Premature end of file.
......
原因:对应银行的代理程序没有启动
推荐阅读