(一)处理银企直联问题思路
首先检查NC与网银适配器是否是连接通过,如果测试失败,有两种原因
1)网银适配器没有启动。
2)NC服务器与前置机网络不通。
如果前两者没有问题,那么关掉前置机上面的防火墙。
其次,查看网银适配器是否启动正常,如果正常启动,一查询TOMCAT就报错。
第三就是要看前置机上面的日志,路径是UFBankVBlogs,这个路径下是按照每一天为一个文件夹,可以根据支付或查询的时间来找到对应的日志文档。(老版的网银适配器日志需要通过网银适配器日志分析器查看)
这个就是CA验签的日志,如果这里出现错误,就可以直接联系ca厂商帮忙确认问题了。
(二)如何修改网银补录界面
网银补录的文件都存在nchome esourcesebanksystem下,每个文件夹对应一个银行的所有功能补录模板。
补录窗口上方的(工行推广版icbcpb_zf)指出了是调用的哪个文件,此补录窗口调用的是nchome esourcesebanksystemicbcpbpay.xml文件,如果要想修改补录界面,则修改此文件(pay.xml)。
例如工行推广的代理支付功能会用到付方机构号字段,如果想改成可以编辑则修改nchome/resources/ebank/system/icbcpb/dlzf.xml文件。
将付方机构号行的editflag="Y"
editflag="Y"补录可编辑
editflag="N"补录不可编辑
其他字段说明
nullflag="Y"补录界面字段必输
nullflag="N"补录界面字段不必输
showflag="Y"补录界面显示
showflag="N"补录界面隐藏
length="30" 字段允许输入最大长度
showorder="18" 补录界面字段顺序,由小到大排列
调整补录界面顺序的话,选择showflag="Y"的字段,调整showorder。
如何给某个字段设置默认值,加一个defaultvalue=''
所有的xml修改需要重启nchome中间件才能生效。
部分内容修改还需要重新制单的单据生效。
(三)常见报错信息
1、overflow或java.lang.ArrayIndexOutOfBoundsException: 51
解决方案:
问题是数组越界或者int越界导致。问题一般会出现在报文格式是以“|”等特殊格式分割来区分字段的银行。当银行返回的报文最后出现空值时,如,01|安徽省路港工程有限责任公司|cash|工程款||||,就会导致数组长度不够。解决方法,一是检查最后几位是那些字段(最有可能是附言或备注),将里面的值不为空即可,二是交给开发来修改代码。
2、元素类型“data”必须用匹配的结束标记“</data>”终止。
解决方案:
xml不匹配,检查对应NC配置文件xml,是否符合xml格式,各个标签是否一一对应,<data></data>正确格式。
<data/>正确格式
<data/></data>错误格式
<data>错误格式
3、错误信息=[java.lang.Exception:2018此企业无此交易权限]
解决方案:
该问题产生原因由银行导致,请联系银行解决即可。
4、提示哪个字段为空
如提示下载失败[CMEN.clsCMEN.RetrunYE:[集团账号不能为空]
解决方案:
a.首先检查前台补录页面集团账号输入框是否有值。
b.其次检查对应NC配置文件xml里是否有集团账号的对应配置,并检查发送给网银的NC报文里,该字段是否有值,是否对应。显然单据上是015401020011432,而接收到的NC指令里jtaccount="0001651000000000367T"。不对应。说明是配置文件的问题。检查该行srcitemkey,知道jtaccount的值来自,单据编码为def1的输入框。所以,进入单据模板,查看集团账号输入框的编码是否为def1。<rowbulu="N"datatype="0"defaultshowname="集团账号"editflag="N" itemkey="jtaccount"nullflag="Y"resid=""showorder="14"source="account_num" srcitemkey="def1"></row>
c.检查发送银行的报文,对照银行文档,找到集团账号对应的编码,看里面是否有值,是否与NC前台的值对应。
5、UPP36120101-000022
解决方案:
UPP36120101-000022此类问题,可能是NC配置文件的报文头有问题, bank为空造成的。如<?xml version="1.0" eNCoding="GB2312"?><databank="bccb"bulu="N"formula1="NC.vo.obm.formula.FormulaParser" fuNC="ye" roottag="input" type="">另外,可能是banktype.xml里面没有配置相应的银行。
6、提示账号对应的商户无权限
解决方案:
账号不对,可以先在VBConfig的配置程序里输入该账号测试,直接联系银行沟通处理。
7、连接失败
解决方案:
确保银行前置机和网银适配器已经启动,前置机防火墙关掉。
8、没有生成日志,报解析包出错,可能是证书错误和编码格式错误
解决方案:
a.CA问题。
b.有可能NC没有设置安全认证,但在网页配置java页面里有,将ip控制和安全认证去掉。
c.检查NC指令里是否有特殊符号,如备注里是否有%,影响xml结构。
d.查看NC日志,对应的里面是否有验签失败,如果有,则联系ca厂商协助帮助一下。
9、VB提示文件未找到: NVCPApi.DLL或其他的.DLL文件
解决方案:
重新反注册注册DLL文件。
10、VB后台提示参数不正确,银行服务器或操作员有一个为空,或端口号不是合法的数字值。
解决方案:
检查UFbankConfig.xml文件里,对应的银行配置,是否正确,看看里面的配置是否缺少或被注释掉。
如果是新安装的ufbank,而又把之前的ufbank文件夹拷了过来,有可能出现这种情况,原因是两个网银适配器版本不一致导致。
11、网银补录信息模板在哪里设置的?
解决方案:
esourcesebanksystem银行pay.xml。
12、对账单下载,适配器报文正常返回有记录,但是NC显示无记录的问题?
解决方案:
确认适配器返回报文中币种转换是否正确,交易日期是否在查询期间范围内。币种转换配置文件(currencymapping.xml)是否有配置,NC5系列配置如下目录:resourcesebanksystemsjyh
NC6系列如下:
13、适配器日志,中文乱码的问题?
解决方案:
NC5系列的话,字符编码应该为GBK。修改文件:C:UFBankVBencode.properties
14、上收下拨单走不到jtgj接口,而走了zf接口的问题?委托付款单调用不到代理支付接口也是通用的道理。
解决方案:
修改banktype.xml文件相应银行的配置,将jtgj=”N”,改成jtgj=”Y”
修改banktype.xml文件相应银行的配置,将dlzf=”N”,改成dlzf=”Y”
15、下载对账单超时的问题?
解决方案:
修改NC基础设置->网上银行适配器设置,超时时间改大一些,单位秒。
16、为什么支付时,银行返回的状态为失败,而NC单据上却显示为不明?
解决方案:
这个是基于安全考虑,防止银行返回的状态不对,而导致客户二次支付,在NC端,支付状态为失败的都转换为不明了。需要用户去下载支付状态,或是走支付确认单线下判定此笔交易是否成功。
17、网银接口日志文件在哪里?
解决方案:
在C:UFBankVBlogs目录下可找到相应时刻的日志。
18、NC日志文件在哪里取?
解决方案:
63以后的版本,网银日志单独输出在tmobm-log.log这个文件里了。
19、支付指令状态下载时显示付款日期不能为空。