标签:
最近在做一个项目,里面涉及到了支付功能,使用的是银联的在线支付功能(网关跳转支付)。银联给的例子很坑爹,简单的代码只是了一大堆,关键的部分一点儿注释都没有,很多工具类还没有源码。所以学习起来比较吃力。而网上这方面的资料有相对比较少,仅有的一些资料也比较陈旧。所以我打算记录一下我的学习记录,说不定会对别人也有一些帮助。
我使用的是银联的网关跳转支付功能,需要完成在线支付,支付完跳转,并接受银联的通知更新自己数据库的功能。
银联技术服务的首页地址是https://open.unionpay.com/ajweb/index 很多资料可以在这里找到。
我下载的Demo在这里https://open.unionpay.com/ajweb/help/file/techFile?cateLog=Sample_code 这里有很多资料都可以选择。但是其实很多是重复的,很多是用不到的(对于我做的功能来说)。所以选择自己需要的就可以了。我选择的是 下载资源类别里的开发包菜单(左侧菜单) 下面的 跳转网关支付产品技术开发包。
我写这个项目的时候银联版本是2015-07-29的1.11版本(够新了吧(⊙﹏⊙))
里面乱糟糟的一大堆东西。。。。。PHP啊Java啊ASP啊啥都有。。。。
我选择Java版本的。
然后把示例代码下面的src目录下面的东西全部导入到自己建的web项目下。(是全部导入,所以除了.java以外还要导入acp_sdk.properties)
然后把依赖包下面的jar和upacp_sdk-1.0.0-20150703140550.jar导入到lib目录下(我没有导入json可选包)
给张图说明一切问题
然后项目就搭建好了。。是不是超级容易呀。。然后我会将如何配置项目。。
然后我来说下如何配置properties文件。
properties文件打开注释全部是unicode编码。。。简直坑爹。。看不懂可以去网上把unicode转成中文看看注释。。其实也没有必要。后面我会介绍比较有用的几个配置项。。其他没啥用处。
acp_sdk.properties这个文件大家不要重命名。
因为这个文件名是银联写死在配置类中的。改了名字会读取不到。
前面各种Url配置大家不需要去改动,下载下来都是配好的测试地址。只有到了正式上线了才需要去配置成正式的地址(但是我的项目也没上线。。所以我也不知道正式地址是啥。。但是银联官网上我看到是有资料写的。大家可以去自己搜搜看)
后面的配置是和证书相关的,另外插一句。properties里少了几行配置。。。坑了我几天时间。。
把证书Cert文件夹里的入网测试环境的3个文件夹全部拷到桌面上。因为会用到。(我放桌面上是为了方便配置)
修改properties里的acpsdk.signCert.path的值为C:\\Users\\Administrator\\desktop\\入网测试环境\\商户私钥证书(签名)PM_700000000000001_acp.pfx
大家对照路径可以自己改,注意这里700000000000001这个数字。后面会用到(又被坑了几天。。。)
这个证书在正式上线以后需要改为正式的证书,这个证书是测试使用。
acpsdk.signCert.pwd并不需要改,因为测试证书的密码就是6个0。
同理,正式上线之后要修改成自己的密码
acpsdk.signCert.type不需要修改,就是PKCS12
acpsdk.validateCert.dir的值修改为C:\\Users\\Administrator\\desktop\\入网测试环境\\银联公钥证书(验签)
validateCert是用在银联给你发消息的时候判断真伪用的(别人可能会伪造银联的信息,所以需要用这个证书验证信息真伪),所以对于创建订单付款来说没有什么用处。但是后面查询银联付款信息要用到,所以也一起配置了。
增加acpsdk.encryptCert.path这个key,value为C:\\Users\\Administrator\\desktop\\入网测试环境\\加密证书 (根据业务需求选用)\\encrypt.cer
银联居然默认没有这个配置。。坑爹啊。。。这个是你给银联发消息的时候银联要判断这个订单是不是指定商户(你)发过来的。也是验证真伪用的(加密)
完成这些配置就可以愉快(剁手)的和银联做交易了。
(待续。。。)
标签:
原文地址:http://www.cnblogs.com/abcwt112/p/4768390.html