本文描述了发现并解决对接兴业银行测试环境数据下载电子回单时遇到的报错问题。报错原因是电子回单代理程序的SFTP服务未启动。通过启动服务后,问题得到解决。文章还总结了银企平台报错排查的经验,强调了电子回单代理程序SFTP服务在文件下载和调用中的重要作用,并解释了兴业银行电子回单的下载流程。
1.发现问题
具体报错见如下截图:
(图为对接兴业银行测试环境数据,非客户真实生产环境数据,特此说明)
操作:【网上银行】-【电子回单】-下载电子回单,选择下载2021-10-25到2021-11-01回单数据
报错信息:
回单文件服务器无法访问:System.Net.Sockets.SocketException(0x80004005):由于目标计算机积极拒绝,无法连接。
在Renci.SshNet.Abstractions.SocketAbstraction.Connect(IPEndPoint remoteEndpoint,TimeSpan connecTimeout)
……
2.解决问题
结果:经检查发现,问题为金蝶电子回单代理程序SFTP服务未启动导致的。点击启动电子回单代理程序SFTP服务,重新导星空中测试发现无问题。
后有遇到其它问题再做补充说明。
大家上班比较忙,后面有需要就自取,没需要看到这就结束了哈
结合本次问题,总结下个人心得与收获:
知识点01银企中如何排查报错个人心得
沿着网络简易拓扑图找问题
业务系统(如星空中报错),先排除非星空本身星空报错。如是星空本身报错,不清楚原因请提单找总部老师。
1.排查银企平台日志,可以看到这边是能正常查询到回单无报错
2.排查电子回单代理程序服务器
首先我会先确认回单是否下载请求成功了,具体可见下图,可以看出电子回单向银行端请求也是正常的。
其实看到问题里面的“文件服务器无法访问”,涉及到的文件服务器有两个,一个是电子回单代理程序的服务器、一个是银行的SFTP,而涉及到不同的银行,银行SFTP这一块和文件的下载与调用又是有些区别的,对于兴业银行来说是没有所谓的SFTP的,兴业银行支持推送文件流的方式(具体技术上如何实现,不太清楚,不过看兴业银行的前置机技术文档,是支持银行推送文件流和接收文件流的,但是,接收文件流这个的前提是银企平台接口中有对接兴业银行的附件的,截止目前均未对接附件接口)
个人理解总结:电子回单代理程序SFTP就是供银企平台下载文件调用的,在兴业这边我发现从银行那边下载到的是文件压缩包(一天的回单在一个压缩包里面),电子回单代理程序SFTP就是把这个压缩包“解压”回来,变成一个个回单文件。供业务系统那边调用。
所以,文件服务器问题落脚在电子回单代理程序的SFTP上。一般其监听端口为22。
本处情况:电子回单代理程序和银企平台装在同一台设备上,检查下电子回单代理程序上的端口开启情况。
打开CMD,输入:netstat -a
发现并未22端口开启,这时候我就有些疑惑了?正常应该是已经开启了的。
这时候我才恍然大悟,原来是电子回单代理程序SFTP服务未启动。
真真是一顿分析猛如虎,原来自己才是二百五
知识点02
兴业银行的电子回单,通过电子回单代理程序生成任务(生产环境中设置电子回单定时调度下载任务)后主动向银行前置机发起调用,申请下载电子回单。
电子回单代理程序将文件下载到设置电子回单银行配置中对应的文件夹中。
如下图所示的文件夹中:
实际业务系统那边调用电子回单文件不是在此文件夹中获取的,而是通过电子回单代理程序提供的SFTP服务到对应文件夹中下载的,如下图:
推荐阅读