引入依赖包
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>4.6.0.ALL</version>
</dependency>
实现代码
public AlipayTradePayResponse alipayTradePay(String tradeNo, String subject, String storeId, BigDecimal totalAmount) {
final CertAlipayRequest certAlipayRequest = certAlipayRequest();
final AlipayTradePayResponse alipayTradePayResponse;
try {
final AlipayTradePayRequest request = new AlipayTradePayRequest();
AlipayTradePayModel alipayTradePayModel = new AlipayTradePayModel();
//商户订单号
alipayTradePayModel.setOutTradeNo(tradeNo);
//商品标题/交易标题/订单标题/订单关键字
alipayTradePayModel.setSubject(subject);
//门店
alipayTradePayModel.setStoreId(storeId);
//订单总金额
alipayTradePayModel.setTotalAmount(String.format("%.2f", totalAmount.doubleValue()));
//该笔订单允许的最晚付款时间,逾期将关闭交易
alipayTradePayModel.setTimeoutExpress("10m");
request.setBizModel(alipayTradePayModel);
final AlipayClient alipayClient = new DefaultAlipayClient(certAlipayRequest);
alipayTradePayResponse = alipayClient.certificateExecute(request);
log.info("支付宝支付结果:" + JsonUtils.toJson(alipayTradePayResponse));
} catch (AlipayApiException e) {
e.printStackTrace();
throw new BaseResultException(ResultEnum.UNKNOWN_ERROR);
}
}
//获得初始化的AlipayClient
private CertAlipayRequest certAlipayRequest() {
final CertAlipayRequest certAlipayRequest = new CertAlipayRequest();
certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do");
certAlipayRequest.setAppId(aliAppId);
//商户的私钥
certAlipayRequest.setPrivateKey(aliPayAppPrivateKey);
certAlipayRequest.setFormat("JSON");
certAlipayRequest.setCharset(AlipayConstants.CHARSET_UTF8);
//支付宝的公钥
certAlipayRequest.setSignType(AlipayConstants.SIGN_TYPE_RSA2);
//设置支付宝公钥证书路径
certAlipayRequest.setAlipayPublicCertPath(aliPayPublicCertPath);
//设置支付宝根证书路径
certAlipayRequest.setRootCertPath(aliPayRootCertPath);
//设置应用公钥证书路径
certAlipayRequest.setCertPath(aliAppPublicCertPath);
return certAlipayRequest;
}