本文档提供了中国银行银企对接过程中常见错误码、报错内容及解决办法的详细汇总。内容涵盖与后台通信问题、前置机未签到、TOKEN错误、USBKEY调用失败、XML解析失败、接收网银服务器应答失败等多种错误场景,并提供了针对性的解决步骤和配置调整方法。此外,还讨论了常见问题如USBKEY调用失败和call http server error的多种可能原因及解决方案,以及调用中国银行快捷代发接口时未签约的解决办法。
关键词:银企直联、中国银行、公网、投产正式环境、微前置一键部署包
参考文档:中国银行银企对接-微前置-郑照、【银企平台】常见银行返回报错汇总-中国银行直连版 (汪伟康老师整理)
更新日志:
20230115V1.0.0:初稿,针对银行返回码及对应返回信息解析
大家如有遇到新的问题及相关解决办法,金蝶同事可云之家搜索47543找到福分小熊沟通交流哈
在实际过程中,可结合错误码及报错内容,判断对应解决办法,可联系银行老师沟通解决。
1.总表
错误码 | 报错内容 | 解决办法 |
---|---|---|
与后台通信出现问题,暂无法执行此功能。 | 如果出现该问题,请检测测试界面中主机,端口,项目,主程序的设置是否正确。 | |
前置机未向服务器签到 | 由于未执行登录b2e0001交易。 | |
TOKEN错误或未登录 | 是在已经登录的前提下,当出现多个操作员同时访问一个前置机的情况时就会出现。 | |
1011 | usbkey调用失败 | 见如下专题说明(需要结合日志分析) |
1012 | XML解析失败 | 情况01:出现类似与此类错误:'???????7159446%' is not facet-valid: 由于报文中有非法字符(一般都在收款人名称、收款行行名、汇款附言中),报文中一般不允许出现以下非法字符:^'!"#$%*+,-./:;<=>?@[\]^_`{|}~ 情况02:出现类似此类错误:Invalid content was found starting with element 'trn-b2e0050-rq' 由于b2e0050这个交易在前置机配置文件/B2EC/src/main/resources/datagramc.xsd中没有定义,应更新前置机版本。 情况03:测试阶段出现的话,出现该问题的原因一般就是上送的报文格式不符合前置机的格式要求,请仔细检查上送的报文是否正确。 具体接口响应:b2e0191交易- 接口中定义笔明细不能超过1000条,请注意这一点。 |
1014 | 接收网银服务器应答失败call http server error | 见如下专题说明(需要结合日志分析) |
1024 | 前置机处理失败 | 日志为:java.lang.IllegalArgumentException: host parameter is null 此类错误为配置文件/B2EC/src/main/resources/configure.properties中银企对接平台的地址有错误,修改该Internet准生产环境-内网:url=http://22.188.24.36:9082/B2EP/XmlServlet(U3环境),如还有问题,请联系相关人员确认地址。 |
1050 | 交易间隔时间太短 | 由于前置机交易间隔的时间控制在5秒(缺省情况下),提交交易时间间隔过于频繁小于5秒时就会出现此类错误。可以在前置机配置文件中调整。在配置文件中加入:span1=0;span2=0;span3=0;span4=0。同时可在配置文件中增加:maxcall=20。 |
B006 | 用户名或密码无效 | |
B056 | 数字签名失败 | 原因有两种:1、客户的CA证书已过期,2、在测试环境中,前置机的日期与服务器日期不一致。针对这两种情况的解决方法如下:1、通过与相关银行人员沟通,重新制作客户证书,2、根据签到报文中返回的服务器日期(serverdt)调整前置机系统日期。 |
B074 | 操作员对付款账号无此功能权限,请修改 | b2e0079交易查询返回:需检查是否维护了快捷代发(对接)服务下的“快捷代发(对接)-委托”功能。 |
B076 | 操作员对该账号无此功能权限,请修改 | 由于在BNMS中未针对操作员,账号维护操作员的权限 在测试中发现,做历史交易(b2e0035)查询时,当客户未签约相应的服务时,返回的错误为什么是B076,而不是B077的错误? 这是由于在对接端存在一些企业网银通用权限的交易,如b2e0001,b2e0035等,此类交易默认为开通,但是操作员的权限仍需要在操作员权限中进行相应的维护。 |
B077 | 操作员未开通此功能权限,请修改 | 1) 客户未开通该服务,如需要增加服务,请联系相关银行人员维护服务权限。 2) 操作员权限中,该客户下所有账号都没有维护该服务下对应的该功能权限。 3) 客户对应的服务列表是在登录时加载进来的,如果在登录以后修改,新增相应服务,请签退后重新登录。 |
B112 | 服务器忙 | 由于对接平台交易间隔的时间控制在5秒(缺省情况下,为了防止系统压力导致的异常,故对交易提交频率进行了控制。交易提交频率不小于5秒即可。),如果有需要可以联系银行相关人员调整交易间隔时间。 对应银企平台银行参数控制中的参数:接口调用是否有5s间隔 |
B098 | 账号未在网银系统维护,请修改 | |
B102 | 终端号有误,请修改 | 跟银行确认该客户终端号,如需修改就维护到银企平台的中行前置机配置处 |
B103 | 客户号或者操作员有误,请修改 | 客户号对应操作员找不到,或者客户号填错 |
B190 | 联行号格式非法,请修改 | 查询正确的中行地区码维护到 银企平台-业务管理-帐号管理-中国银行XXXXXX-帐号附加属性的地区码中, |
B207 | 该批次代收代发业务尚未成功 | b2e0079交易查询响应解决办法:业务正在银行处理中,请客户稍后再进行查询。 |
B998 | 旧账号查询余额时,提示数据格式错误 | 由于该旧线账户已销户,且在新旧账号对照表中找不到新账号。可以联系银行人员,确定账户信息。 |
B999 | role.opr.functions.is.empty | 前置机环境通讯层面通,报错需要联系客户经理处理,一是可能客户号给错,另一是可能银行后台权限没维护清楚 |
BANCS.0266 | 报账户余额不足 | b2e0019响应解决办法:对于该类问题,一方面要查询该账号余额是否充足,另一方面也要查询此类交易是否收手续费。 |
validation.certificate_failed | 客户绑定证书CN值无值或有误,CFCA系统CN值与证书中CN值不符。 | |
host parameter is null | 请检查configure.properties文件里边对接平台URL地址是否配置,前面可能有#号。 | |
无法为交易找到审批流程设置 | 目前对接支持b2e0009,b2e0061,b2e0078支持跨渠道授权的交易,如出现上述错误,请检查维护的是否维护了授权工作流或者维护的是否正确:授权工作流的获取主要依据的是客户号、服务码、账号; 1、 客户号:发起支付交易的客户号与维护授权工作流时使用的客户号是否一致 2、 服务码:b2e0009交易使用web的转账汇划功能;b2e0061交易使用web的对私转账汇款;b2e0078交易中的摘要如果为工资,使用web的实时代发;摘要为非“工资”,则使用web的实时其他代发。 3、 账号为发起交易的付款账号。 |
2.常见问题01:1011UKEY调用失败
答:前置机报1011错误的原因有很多种,可以根据前置机的日志来判断是什么原因:
2.1客户证书过期或未生效或损坏
日志:
(1)Caused by: java.security.GeneralSecurityException: None certificate for 1 in this keystore(原因:客户证书过期或未生效)
(2)Caused by: java.security.KeyStoreException: PKCS11 not found(原因:USB KEY损坏)
这两种情况下可以通过与相关银行人员沟通,重新制作客户证书。
2.2UKEY密码错误
日志:
Caused by: CKR_PIN_INCORRECT
由于USB KEY密码错误,修改配置文件/B2EC/src/main/resources/configure.properties中USB KEY密码keyStorePassword(一般为123456,如有问题请咨询相关银行人员)。
2.3UKEY密码错误被锁
日志:
Caused by: CKR_PIN_LOCKED
由于USB KEY密码被锁,可以利用工具修改密码,或通过与相关银行人员沟通,重新制作客户证书
2.4配置文件中providert填写错误
日志:
Caused by:java.lang.ClassNotFoundException: com.bocsoft.security.ssl.SunPKCS11SSLContextProvider
在配置文件/B2EC/src/main/resources/configure.properties中,将原有的provider=com.bocsoft.security.ssl.SunPKCS11SSLContextProvider改为provider=a.a.c.a.a.a。
2.5服务器证书有问题
日志:
Caused by:Invalid keystore format
由于服务器证书有问题,请联系相关人员协助下发正确的证书。
2.6UKEY客户证书为空
日志:
Caused by: java.security.ProviderException: slotListIndex is 0 but token only has 0 slots
由于客户证书为空,请联系相关人员协助下发正确的证书。
2.7UKEY被锁
日志:
Caused by: SunPKCS11SSLContextProvider: SunPKCS11-Watchdata_BOC_v3.2;java.io.IOException: load failed at sun.security.pkcs11.P11KeyStore.engineLoad(P11KeyStore.java:749)
由于USB key被锁,请联系相关人员进行解锁。
2.8未识别到USBKEY,可能装有其他银行的USBKEY
日志
Caused by:java.security.ProviderException: Initialization failed.2)sun.security.pkcs11.wrapper.PKCS11Exception: CKR_TOKEN_NOT_RECOGNIZED
由于USB key不识别,机器上装有其他银行的USBkey,请更换为中行的USBkey。
遇到类似情况,中国银行USBKEY和兴业银行USBKEY均为飞天诚信出品,此时两个KEY同时插入中国银行KEY无法识别到
2.9私钥为空
日志
Caused by:java.security.InvalidKeyException: Private keys must be instance of RSAPrivate(Crt)Key or have PKCS#8 encoding
由于私钥为空,请联系相关人员进行配置。
2.10USBKEY驱动错误安装
日志
Causedby:java.security.ProviderException:librar:C:\Windows\System32\WD_NDP11_BOC.dll does not exist
at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:109)
at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:76)
... 23 more
1请查看C:\Windows\System32\WD_NDP11_BOC.dll是否存在。
2请确认USBKEY正确插入前置服务器,并正确安装驱动。
3请查看configure.properties文件里面#私钥证书库keyStorePath=,飞天为feitian.cfg,握奇为watch.cfg。
3.常见问题02:1014call http server error
前置机报1014错误的原因有很多种,可以根据前置机的日志来判断是什么原因:
3.1现有服务器证书有问题日志:
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found(原因:服务器证书错误)
Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: bad_certificate(原因:服务器证书有问题)
Caused by:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: Certificate chaining error(原因:服务器证书有问题,服务器证书链与加速器上的证书莲不匹配,was的匹配要求高,证书链的顺序都严格匹配。tomcat的要求低一点。)
Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: unknown_ca(原因:服务器证书有问题)
这四种情况都是由于现有服务器证书有问题造成的,应下发正确的服务器证书。
3.2客户端证书有问题
日志:
Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
由于现有客户端证书有问题,可以通过中国银行USB key管理工具检查USB key,得到正确的客户端证书。
3.3网络问题或网络不通
日志:
Caused by: java.net.SocketTimeoutException: Read timed out
由于网络问题或网络不通,可以通过与企业及分行信科网络管理沟通,协助解决此问题。
3.4安全配置有问题
日志:
Caused by:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: Certificate signature validation failed
Caused by:sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
这两种情况都是由于安全配置有问题,应将配置文件/B2EC/src/main/resources/configure.properties中的security改为true,或provider改为a.a.c.a.a.a。
4.调用中国银行快捷代发接口b2e0078走工资代发提示未签约的解决办法
银行返回:B053 交易失败被银行退回/商户[A000XXXX]业务[C1]没有签约!
解决办法:该账户未开通同行代发业务,如测试环境测试请联系银行开通,如生产环境测试请确认是否有开通同行代发业务
银行返回:B053 交易失败被银行退回/商户[A000XXXX]业务[C2]没有签约!
解决办法:该账户未开通跨行代发业务,如测试环境测试请联系银行开通,如生产环境测试请确认是否有开通跨行代发业务
推荐阅读