700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 支付宝支付-升级公钥证书

支付宝支付-升级公钥证书

时间:2024-05-11 17:46:12

相关推荐

支付宝支付-升级公钥证书

原因

项目需要实现自动提现到支付宝,涉及到资金类支出接口 ,所以需要升级密钥为公钥证书;

参考文档:支付宝密钥相关文档

准备证书

生成csr时保存下来的2个.txt(应用公钥没啥用,应用私钥需要妥善保存),支付宝平台下载 3个.csr(应用公钥证书、支付宝公钥证书、支付宝根证书);

代码修改
升级SDK版本,低版本SDK不支持证书模式

<dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>4.11.54.ALL</version></dependency>

升级初始化方式

private static final String URL = "/gateway.do";/*** 数据类型*/public static final String DATA_FORMAT = "json";public static final String CHARSET = CharsetUtil.UTF_8;/*** 签名类型*/public static final String SIGN_TYPE = "RSA2";@Beanpublic AlipayClient aplipayClient(AliPayProperties properties) {try {CertAlipayRequest certAlipayRequest = new CertAlipayRequest();certAlipayRequest.setServerUrl(URL);certAlipayRequest.setAppId(properties.getAppId());//应用私钥,生成csr文件时,保存到本地的私钥txt文件certAlipayRequest.setPrivateKey(readKey(properties.getMerchantPrivateKeyPath()));certAlipayRequest.setFormat(DATA_FORMAT);certAlipayRequest.setCharset(CHARSET);certAlipayRequest.setSignType(SIGN_TYPE);//应用公钥证书路径certAlipayRequest.setCertPath(properties.getMerchantCertPath());//支付宝公钥证书路径certAlipayRequest.setAlipayPublicCertPath(properties.getAlipayCertPath());//支付宝根证书路径certAlipayRequest.setRootCertPath(properties.getAlipayRootCertPath());return new DefaultAlipayClient(certAlipayRequest);} catch (AlipayApiException e) {AssertUtils.fail("AlipayClient初始化失败:"+e.getMessage());return null;}}private String readKey(String path) {if (FileUtil.exist(path)) {FileReader reader = new FileReader(path);return reader.readString();} else {AssertUtils.fail("缺少支付宝应用密钥文件");}return null;}

alipayClient.execute改成 alipayClient.certificateExecute回调验签方法 AlipaySignature.rsaCheckV1 升级为 AlipaySignature.rsaCertCheckV1

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。