因为公司已经支持了支付宝支付和微信支付,所以需要加上一个银联的云闪付,主要是二维码支付。
银联商务的官方文档其实已经很清楚了,但是因为之前对接支付宝和微信,有一个保存商户信息的表,表结构已经确定了,再更改的话会比较麻烦,但是银联的商户信息和支付宝微信又不太相同,支付宝的签名验签主要依靠公钥和秘钥,微信主要有证书,银联却是证书和公钥,而且银联的不同版本会出现不同的验签,5.1.0需要多个证书,demo里的逻辑是证书保存在本地的文件夹,验签时从本地读取,事实上我们需要的是证书保存在数据库,这样就需要进行部分改造对接,这一期的主要对接版本是5.0.0,就是需要一个证书,一个公钥的版本
就拿下单来说,组装参数调用util的地方基本一样,只是有些值的获取变成了从数据库读取
Map<String, String> contentData = new HashMap();
/***银联全渠道系统,产品参数,除了encoding自行选择外其他不需修改***/
contentData.put("version", payAccountInfoDO.getVersion()); //版本号 全渠道默认值
contentData.put("encoding", UnionPayConfig.encoding); //字符集编码 可以使用UTF-8,GBK两种方式
contentData.put("signMethod", UnionPayConfig.signMethod); //签名方法
contentData.put("txnType", "01"); //交易类型 01:消费
contentData.put("txnSubType", "07"); //交易子类 07:申请消费二维码
contentData.put("bizType", UnionPayConfig.bizType); //填写000000
contentData.put("channelType", UnionPayConfig.channelType); //渠道类型 08手机
/***商户接入参数***/