本文档记录了银企直联过程中,中国建设银行密钥交互的问题解决过程。包括问题描述(下载客户公钥失败,应答内容长度不正确)、原因分析(可能因日期不符或加密方式不一致导致)、解决方法(调整前置机代理程序时间为银行测试环境日期,重启并生成公钥,获取银行密钥)及应用小结(注意测试环境日期非自然日,加密方式需匹配,前置机代理程序需重启)。
关键词:银企直联、中国建设银行、密钥交互
参考文档:
无
更新日志:
20230207V1.0.0:初稿
20230831V1.1.0:更新银行后台系统查看当前日期的拍照截图、更新相关帖子到总结中。
前提,确认自己做的前置机代理程序客户公钥交互可以正常访问到。
1.问题描述
问题现象、报错信息
提示:下载客户公钥失败。100002001应答内容长度不正确。
2.原因分析
分析问题出现的可能原因(视情况而定)
结合日志查看,银行端IP为124.127.94.34,符合银企端的IP。
有正常返回给银行端服务。
而key组合,结合金蝶银企前置机代理程序看,key编码规则为0000000+电子银行合约号+密钥生成日期
结合银行总行提醒,目前接入的测试环境为PL2,PL2环境属于环境非自然日,使用日期需要与建行测试环境日期。
具体PL2环境时间见文档如:
附件2:2023年2月测试环境批处理及任务安排
查看对应日期对应银行系统日期。
或者让银行老师拍照下他们的界面下,如下图所示:
3.解决方法
解决思路/操作步骤
建设银行总行提醒,目前PL2环境非自然日,使用的日期需要与建行测试环境日期一致。
(1)将前置机代理程序的时间调整得跟银行服务器的时间,然后重启前置机代理程序,启动生成公钥
(2)银行交互获取客户方公钥,生成密钥。
(3)银企平台获取银行密钥,启动建行现金管理前置机代理服务。
在指定文件夹会生成sm4密钥
4.应用小结
注意事项;补充说明(视情况而定)
银行测试环境的日期不一定就是当前日期,比如建行现金管理版本,刚好密钥交互就是跟交互的日期有关。
和建设银行进行密钥交互,密钥的主要组成部分为
(1)一串字符串:000000+客户号+当日日期yymmdd格式
(2)对应的加密方式;des、sm4
上述其中一个出现问题,就是会出现密钥交互提示:下载客户公钥失败。10002001应答内容长度不正确。
(1)当日日期不对的话:就是遇到情况如下,就是我端的服务器日期和银行端服务器日期不一致,就会导致报错。
#常见问题#【熊说银企云】中国建设银行-现金管理国密版-银企测试阶段-公钥交互异常(100002001应答长度不正确)
(2)加密方式不同:
我选的是sm国密版的加密方式,对方却选择des非国密版的加密方式,如下帖子:
#常见问题#【熊说银企云】中国建设银行-现金管理国密版-银企投产阶段-公钥交互异常(100002001应答长度不正确)
(3)金蝶前置机代理程序未重启
#常见问题#【熊说银企云】中国建设银行-现金管理国密版-银企测试阶段-公钥交互异常(100002001应答长度不正确)2
因为金蝶前置机代理程序中,建设银行现金管理版本默认是des版本,当修改为sm4时,需要重启前置机代理程序才能解决,否则就会出现报空指针的情况。
推荐阅读