【银企平台】招商银行无前置机版本常见问题原创
金蝶云社区-汪伟康
汪伟康
12人赞赏了该文章 4,332次浏览 未经作者许可,禁止转载编辑于2022年06月22日 10:30:57

招行无前置机版本配置指导见https://vip.kingdee.com/article/305397909754323712?productLineId=8


以下为测试环境常见问题

1、交互失败,签名失败,读取私钥失败(招行支持国密之后不再有该问题)

报错样例:[签名失败读取私钥失败java.security.InvalidKeyException: IOException : algid parse error, not a sequence]

原因:银企安装路径下 ebservice705/ebservice/configs/banks/CMB_CMP/下的rsa.txt文件内容格式存在问题

解决:要么自行与银行确认该rsa私钥内容,要么取附件中的rsa私钥文件直接替换(测试环境的几个密钥文件是固定的)


3、XXXXXXXXXX‘业务模式编号’为空或者有多个,请联系银企处理

原因:没有维护银行账户附加属性中的某种支付接口的业务模式编号,就去银行查,银行返回了空或者多个,银企平台就报了该错

解决:将银企平台-业务管理-帐号管理-招商银行 -无前置机版本 - 附加属性 - 所有的业务模式编号 维护正确,测试环境可都维护成 00002,正式环境需与银行确认之后维护。


日志举例:

image.png

image.png


4、如何才能调用招行查询账户业务模式编号接口DCLISMOD

解决:将银企平台-业务管理-帐号管理-招商银行 -无前置机版本 - 附加属性 - 所有的业务模式编号都维护成空。这样再发起付款就会调银行查询业务模式编号接口查


5、查询余额失败(招行支持国密之后不再有该问题)

报错1:报错堆栈中出现  lllegal key size or default parameters;

报错2:

java.lang.NoClassDefFoundError: Could not initialize class javax.crypto.SunJCE_b

at javax.crypto.Cipher.getInstance(DashoA13*..)

at javax.crypto.Cipher.getInstance(DashoA13*..)

at com.kingdee.ebservice.cmb.cmp.service.util.SignWithAES.encryptAES256(SignWithAES.java:45)

at com.kingdee.ebservice.cmb.cmp.service.util.SignWithAES.encryptAES256Str(SignWithAES.java:34)

均可参考解决方案1:

可能会存在环境问题,重新更换这两个文件(见附件jce_policy/jce_policy-6.zip/中的两个文件),同样的文件位置位银企安装路径下\jdk\jre\lib\security


方案1没解决的话再尝试下方案2:

解决方案2(更换银企平台jdk为1.8):

1)、关闭银企平台服务

2)、下载jdk1.8(此处为windows系统的jdk,如果客户是linux系统需要另外下载,云之家云盘获取:https://pan.yunzhijia.com/s/MTI1NjMxMSwwNDYy#/ )

3)、将jdk1.8的压缩包解压到银企平台安装路径ebservice705/下,将原来的jdk目录重命名(如:jdk_1.6bak),然后将jdk1.8的根目录名重命名成jdk

4)、下载jdk1.8版本的local_policy.jar和US_export_policy.jar,见附件jce_policy/jce_policy-8.zip/中的两个文件里面。将这两个jar包放到ebservice705/jdk/jre/lib/security/下

5)、重启银企服务



6、业务做  对私,普通支付,走到代发其他NTAGCAPY 接口,银行返回报错: 未找到合作方协议

原因:银行反馈 我们传的交易代码为BYSA 代表 代发工资,未签该协议,需要改成代发其他交易代码 BYBK。

解决:在银行业务配置-招行无前置机版本-代发其他NTAGCAPY交易代码编号处修改为BYBK 即可


7、银行返回:FBCNO26-字符串类型字段bbknbr长度不合法

该帐号的地区码不正确,查询地址:http://web20.kingdee.com/eb_cloud_cnaps/cmbcode


8、银行返回:DCKY016-解密失败,如您之前交易正常,请确认密钥是否有变更。

这里看起来像是我们和银行两边密钥不匹配导致解密失败,实际原因不一定,当前该报错多次最后原因是银行提供的UID与客户在银企前置机配置的UID不一致导致,修改一致之后交互成功。

image.png


9、银行返回:-查询帐号对应的币种不能为空

检查招行查询余额NTQACINF接口,没有币种字段需要传,最后找银行确认,是由于该账号是个人帐号不能查余额。


10、查询余额银行返回报错:字符串类型字段bbknbr长度不合法

招行账户地区码不对,查询参考:http://web20.kingdee.com/eb_cloud_cnaps/cmbcode


11、查询余额银行返回报错:您的IP未定义在白名单中

银企平台服务器出口ip未定义在银行服务器的白名单中,找银行技术咨询解决


---------------下面开始是常见的该版本银行插件的业务问题---------------

招行无前置机版的 付款接口选择配置

默认情况下:

1、业务做  对公 ,普通支付: 走 企银支付单笔经办(BB1PAYOP)接口,该接口中不用传收款方城市或地区码之类的字段

2、业务做  对私,普通支付:走 代发其他经办NTAGCAPY 接口,该接口中在跨行的时候需要传收款方银行名称和城市

3、业务做  代发工资:走 代发工资经办NTAGCSAL接口,该接口中在跨行的时候需要传收款方银行名称和城市


星空付款单截图举例:



赞 12