关于建行在线支付接口中数字签名验证部分的问题
关于建行在线支付接口中数字签名验证部分是要在JAVA环境下完成!我根据对方给的文档一步步都做好了,但就是测试失败,错误提示:
Java 异常 错误 '80004005'
java.lang.NoClassDefFoundError
/verify.asp,行 19 ,但我运行其它的java文件可以成功的
有谁知道的或做过的帮忙解决一下啊,他们给的配置文档如下;
Microsoft Java 虚拟机,以及jdk1.2.2版本的安装。
安装环境:
WINNT 4.0(SP4 or greater) 或 WINNT2000 或 WIN9X
IIS4.0 or PWS
软件:javareg.exe
jdk1_2_2-win.exe -- jdk1.2.2软件及库包(SUN COMPANY)
classes 目录 -- ccb sign base packets
RSASig.class -- ccb sign class
msjavax86.exe --microsoft vm(3316)
安装步骤:
1. 安装jdk1.2.2 software 到 $JDK目录x
a) 注意要全部安装,不能部分安装x
b) 安装后产生$JDK目录(安装过程中由用户设定),同时在Program files目录下面产生javasoft目录。x
c) 注意: 安装前请确定JDK的版本号,一定要是1.2.2 (目前尚未作过更高版本的兼容性测试)。安装文件名称为 jdk1_2_2-win.exex
2. 安装Microsoft JAVA VM环境,安装文件名为msjavx86.exe
a) 确认此环境是否安装,请查看$WINNTDIR\system32\msjava.dll存在否,在资源管理器中察看文件属性,版本号码为 5.00.3316
b) 如果发现没有msjava.dll文件或者版本不到5.00.3316,请按照3316版的JavaVM。安装时请确认安装文件的版本,方法同上,显示的版本号码应该是5.00.3316
c) 安装完成后系统要求重新启动,这时可以重新启动也可以等待安装完成后一次启动。
3. 拷贝classes目录下内容到 $WINNTDIR\java\classes
有两个目录需要复制一个是au,一个是javax,确认这两个目录复制到$WINNTDIR\java\classes,同时确认这两个目录下面的子目录以及所有文件都被复制过去。x
4. 复制RSASig.class文件到$WINNTDIR\java\trustlib下面x
a) 在$WINNNTDIR\java\trustlib下面建立ccb目录,再在ccb目录下面建立pub目录x
b) 将RSASig.class文件复制到$WINNNTDIR\java\trustlib\ccb\pub目录下面x
5. 设置环境变量CLASSPATH
a) 在控制面板中,打开系统对话框
b) 打开环境变量对话框
c) 点击"系统变量"区域的"新建"按钮
d) 在"变量名"中输入CLASSPATH,注意一定要用大写
e) 在"变量值"中输入$WINNTDIR\java\classes; $Program files\javasoft\jre\1.3\lib\rt.jarx
6. 注册RSASig对象
a) 确认javareg.exe文件存在否,在$WINNTDIR\system32下面查找此文件,如不存在,则copy javareg.exe $WINNTDIR\system32x
b) 运行 javareg /register /class:ccb.pub.RSASig /progid:ccb.pub.RSASig,注意运行结果的提示对话框,是否按照成功
7. 重新启动计算机
使用方法:
在ASP中,使用方法
1. 创建对象
Set Obj = Server.CreateObject("ccb.pub.RSAsig")
2. 设置公钥
Obj.setPublicKey(pubkey)
Pubkey为公钥的字符串,下载自网银的商户设置区域
3. 验证签名
Obj.verifySigature(sign, sourcestr)
Sign是数字签名的字串,来自于建行返回的参数
Sourcestr 是依据建行标准中要求的需要验证的字串
返回值是True, 或者 False
返回true和false表示什么?
参考样例:
见附件之中的verify.asp文档引用说明:
l 文中出现的 $WINNTDIR 指您系统上的WINNT目录,操作中最好由您的实际数值替换如c:\winnt 或 d:\winnt代替
l 文中出现的 $Program files指您系统上Program files目录,要确定是和WINNT在同一个盘上的目录,操作中最好由您的实际数值替换如c:\program files 或 d:\program files代替