对接银联支付接口,通过一个例子向商家支付金额。
1.首先在银联开放平台下载支付Demo,点击链接
或者直接拿我修改好的demo,链接: https://pan.baidu.com/s/1FywgOf5j_EYj5NQYHPeGqg 提取码: d2hp
建议拿我的现成版demo(修改了一些问题),解压后按照下面配置即可使用。
2.下载好后,选择Java版导入到Eclipse或者IDEA。
因为项目并不是Maven项目,除了JDK外,还需要导入以下的依赖包,
直接去网盘拿,链接: https://pan.baidu.com/s/1YJNY-_9PqUFtQAxBNrHuug 提取码: b5zs
导入依赖后需要配置项目为Web应用,IDEA配置为Web应用有许多坑,需要细心。
参考:https://blog.csdn.net/u014042066/article/details/75299002
https://www.cnblogs.com/Miracle-Maker/articles/6476687.html
3.到银联商户中心创建一个测试商户,注意,访问银联商户中心需要用IE浏览器,chrome会一直提示你安装安全插件。
网址:银联商户中心
填写信息注册一个商户:
注册完后去下载证书,需要先开启测试集成,在我的产品中的未测试下选择在线网关支付,点击开启测试(因为我已经开启了测试,所以截图看不到这个选项)
开启成功后选择已测试可以看到:
然后下载测试证书(正式环境需要替换成正式的证书),选择我的测试下的测试参数,下载下面的文件放到D盘下的certs目录下
4.设置代码中的测试环境acp_sdk.properties配置文件为以下值(如果是下载我的demo不用修改):
##############SDK配置文件(证书方式签名)################
# 说明:
# 1. 使用时请将此文件复制到src文件夹下替换原来的acp_sdk.properties。
# 2. 具体配置项请根据注释修改。
#
##########################################################################入网测试环境交易发送地址(线上测试需要使用生产环境交易请求地址)###############################交易请求地址
acpsdk.frontTransUrl=https://gateway.test.95516.com/gateway/api/frontTransReq.do
acpsdk.backTransUrl=https://gateway.test.95516.com/gateway/api/backTransReq.do
acpsdk.singleQueryUrl=https://gateway.test.95516.com/gateway/api/queryTrans.do
acpsdk.batchTransUrl=https://gateway.test.95516.com/gateway/api/batchTrans.do
acpsdk.fileTransUrl=https://filedownload.test.95516.com/
acpsdk.appTransUrl=https://gateway.test.95516.com/gateway/api/appTransReq.do
acpsdk.cardTransUrl=https://gateway.test.95516.com/gateway/api/cardTransReq.do#以下缴费产品使用,其余产品用不到
acpsdk.jfFrontTransUrl=https://gateway.test.95516.com/jiaofei/api/frontTransReq.do
acpsdk.jfBackTransUrl=https://gateway.test.95516.com/jiaofei/api/backTransReq.do
acpsdk.jfSingleQueryUrl=https://gateway.test.95516.com/jiaofei/api/queryTrans.do
acpsdk.jfCardTransUrl=https://gateway.test.95516.com/jiaofei/api/cardTransReq.do
acpsdk.jfAppTransUrl=https://gateway.test.95516.com/jiaofei/api/appTransReq.do######################################################################### 报文版本号,固定5.1.0,请勿改动
acpsdk.version=5.1.0# 签名方式,证书方式固定01,请勿改动
acpsdk.signMethod=01# 是否验证验签证书的CN,测试环境请设置false,生产环境请设置true。非false的值默认都当true处理。
acpsdk.ifValidateCNName=false# 是否验证https证书,测试环境请设置false,生产环境建议优先尝试true,不行再false。非true的值默认都当false处理。
acpsdk.ifValidateRemoteCert=false#后台通知地址,填写接收银联后台通知的地址,必须外网能访问
acpsdk.backUrl=http://222.222.222.222:8080/ACPSample_B2C/backRcvResponse#前台通知地址,填写处理银联前台通知的地址,必须外网能访问
acpsdk.frontUrl=http://localhost:8080/ACPSample_B2C/frontRcvResponse#########################入网测试环境签名证书配置 ################################
# 多证书的情况证书路径为代码指定,可不对此块做配置。
# 签名证书路径,必须使用绝对路径,如果不想使用绝对路径,可以自行实现相对路径获取证书的方法;测试证书所有商户共用开发包中的测试签名证书,生产环境请从cfca下载得到。
# windows样例:
acpsdk.signCert.path=D:/certs/acp_test_sign.pfx
# linux样例(注意:在linux下读取证书需要保证证书有被应用读的权限)(后续其他路径配置也同此条说明)
#acpsdk.signCert.path=/SERVICE01/usr/ac_frnas/conf/ACPtest/acp_test_sign.pfx# 签名证书密码,测试环境固定000000,生产环境请修改为从cfca下载的正式证书的密码,正式环境证书密码位数需小于等于6位,否则上传到商户服务网站会失败
acpsdk.signCert.pwd=000000
# 签名证书类型,固定不需要修改
acpsdk.signCert.type=PKCS12##########################加密证书配置################################
# 敏感信息加密证书路径(商户号开通了商户对敏感信息加密的权限,需要对 卡号accNo,pin和phoneNo,cvn2,expired加密(如果这些上送的话),对敏感信息加密使用)
acpsdk.encryptCert.path=d:/certs/acp_test_enc.cer##########################验签证书配置################################
# 验签中级证书路径(银联提供)
acpsdk.middleCert.path=D:/certs/acp_test_middle.cer
# 验签根证书路径(银联提供)
acpsdk.rootCert.path=D:/certs/acp_test_root.cer
5.修改完后启动tomcat,访问首页,如下图所示:
点击消费样例,选择消费,将商户号修改为你的测试商户号(使用页面默认会报错):
点击提交后显示跳转显示页面如下:
根据这一栏输入卡号:
记得要先点击获取验证码,最后显示付款成功:
至此,支付完成,正式环境换成正式环境的参数及证书即可。