在项目中也是第一次用到,测试的流程都好了,后来我问客户要相应的支付宝参数
结果给我的是证书文件,不是我之前测试用的公钥和私钥(一脸懵...)
..........
对接支付宝接口也可以用证书文件(不只是公钥和私钥)
其实改动的地方不太多
在原来的支付的方法里改动一下
AlipayConfig alipayConfig = new AlipayConfig();
//构造client
CertAlipayRequest certAlipayRequest = new CertAlipayRequest();
//支付宝网关
certAlipayRequest.setServerUrl(AlipayConfig.gatewayUrl);
// 应用ID,您的APPID
certAlipayRequest.setAppId(AlipayConfig.app_id);
//商户私钥
certAlipayRequest.setPrivateKey(AlipayConfig.merchant_private_key);
certAlipayRequest.setFormat("json");
// 字符编码格式
certAlipayRequest.setCharset(AlipayConfig.charset);
// 签名方式
certAlipayRequest.setSignType(AlipayConfig.sign_type);
//应用公钥证书路径
certAlipayRequest.setCertPath(alipayConfig.getApp_cert_path());
//支付宝公钥证书文件路径
certAlipayRequest.setAlipayPublicCertPath(alipayConfig.getAlipay_cert_path());
//支付宝CA根证书文件路径
certAlipayRequest.setRootCertPath(alipayConfig.getAlipay_root_cert_path());
DefaultAlipayClient alipayClient = new DefaultAlipayClient(certAlipayRequest);
//获得初始化的AlipayClient
//AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, "json", AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type);
//设置请求参数
AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
// 同步通知路径
alipayRequest.setReturnUrl(alipayConfig.getReturn_url_service());
// 异步通知路径
alipayRequest.setNotifyUrl(alipayConfig.getNotify_url_service());
主要的区别就是之前的 支付宝公钥 换成 支付宝证书文件
其他的配置依旧和支付宝官方的demo一样就可以
之前有写过沙箱测试对接支付宝接口的文章,入口