工行B2C对接问题

来源:互联网 发布:新闻数据库设计 编辑:程序博客网 时间:2024/05/01 18:12

该博客是我对接工行支付接口时遇到的所有问题

一、支付接口

xml格式数据中的orderDate要用工行的测试系统时间,网上有工具网址是:http://vdisk.weibo.com/s/yVHp4pLeKcs1L

提交数据报以下错误就是时间不对,当然也有可能是提示信息中所说的,(用浏览器的时候会提示证书错误,点跳过,跳过后会报接口数据错误什么的,不用管返回再提交就好了)
这里写图片描述

当你提交正确会进入如下界面,选择其他支付
这里写图片描述

在这里点下一步的时候如果报什么98001478交易失败的错误,不用管,是工行的问题,等到可以正常跳转的时候继续。

如果正确会进入如下界面,点击付款
这里写图片描述

就会进入如下界面
这里写图片描述

这里我遇到了几个很奇葩的问题,第一工行给我的信息中是没有口令卡密码,我到处找资料最后得出是6个1,第二网银密码给的是错的,给我的是888999其实真实的密码是a888999

点提交就ok了。
这里写图片描述

在这里支付就ok了,因为是浏览器访问的证书就用到了rp03.crt和rp03.key。

二、查询接口

这个我是隔了几个星期之后又开始测的,因为当时我继续测查询的时候,各种证书错误,跟工行对了十几封邮件,然后他们发了封,请总部的人帮忙看看的邮件,然后就没有反应了。几个星期后,公司又想起这个了,还去了趟工行分部,工行的跟我们来了趟我们公司,测试支付时一直报上面说的98001478的错误,上面也说了,这个是工行的问题,他好像也忘了这个错,最后就走了 。

不过当时得到了一个讯息和一个惊喜

惊喜就是几个星期没动的查询接口,再测的时候竟然没有证书错误了,而是错误代码xxx,就是说查询接口接通了。

而错误代码的原因,就是和这个讯息有关了,就是查询订单信息的时候tranDate这个字段,第一是八位即年月日,第二是这个时间要填当前时间,就是你提交这个订单时的网络时间(真实时间),并不是你测试支付的时候交易成功后上面的订单信息中的订单时间(那个是测试系统的时间)

查询我是用的java代码查的,用浏览器一直报错,应该是需要证书了,所以我直接用的工行提供java版测试代码改了一下参数。

解析返回的xml的时候用的dom4j解析的xml字符串

关于证书的话,如下:

查看证书库中的信息:
keytool -list -keystore my.jks -v

将证书导入证书库(其中rootca为别名,当当前路径中没有my.jks时会直接生成jks文件):
keytool -import -alias “rootca” -file rootca.cer -keystore my.jks

删除证书库中的证书(test4为别名,按别名删除):
keytool -delete -alias test4 -keystore my.jks

将pfx证书导入jks证书库(按自己的情况替换路径,其中per为别名):
“D:\Program Files\Java\jdk1.7.0_79\bin\java.exe” -classpath D:\ICBCPay\pkcs12import.jar; com.sun.xml.wss.tools.PKCS12Import -file D:\ICBCPay\rp03.pfx -alias “per” -keystore D:\ICBCPay\my.jks

最后我只想说,有什么错找工行,有什么不会找工行,不管什么问题你找工行就行了,因为有可能真不是你的问题。

demo下载地址:http://download.csdn.net/detail/qq_26144007/9620843

0 0
原创粉丝点击