ali-spring-boot-starter
阿里开放平台工具
百度开放平台工具
探索本项目的文档 »
查看Demo
·
报告Bug
·
提出新特性
日志
8.19 增加支付宝Api操作
8.21 增加阿里Oss存储Api调用
目录
安装步骤
引入项目依赖
<dependency>
<groupId>io.github.lunasaw</groupId>
<artifactId>ali-spring-boot-starter-ali</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
在配置文件application.properties加入可选配置
# API
luna:
ali:
# 阿里云oss
bucketName: xxx
host: xxx
ossId: xxx
ossKey: xxx
alipay:
# 应用ID
appId: xxx
# 异步数据返回地址
notifyUrl: xxx
# 私钥
privateKey: xxx
# 公钥
publicKey: xxx
# 同步返回地址
returnUrl: xxx
引用示例
若采用SpringBoot构建项目可通过将第三方包中的BaiduProperties,BaiduKeyGenerate通过Spring配置文件注入Spring管理
@SpringBootTest
@RunWith(SpringRunner.class)
public class BaiduApiTest {
@Autowired
private AlipayConfigValue alipayConfigValue;
@Test
public void atest() throws Exception {
alipayConfigValue.getAppId();
}
}
文档
文件目录说明
eg:
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── luna
│ │ │ └── ali
│ │ │ ├── alipay
│ │ │ │ ├── container
│ │ │ │ │ ├── PayCheckFactoryContainer.java
│ │ │ │ │ ├── PayClientConstant.java
│ │ │ │ │ └── PayParamConstant.java
│ │ │ │ ├── factory
│ │ │ │ │ ├── PayCheckFactory.java
│ │ │ │ │ └── PayRootChainFactory.java
│ │ │ │ └── pay
│ │ │ │ ├── AppPayChain.java
│ │ │ │ ├── DefaultPayChain.java
│ │ │ │ ├── PagePayChain.java
│ │ │ │ ├── WapPayChain.java
│ │ │ │ ├── close
│ │ │ │ │ ├── PayCloseChain.java
│ │ │ │ │ └── param
│ │ │ │ │ └── PayCloseParamChain.java
│ │ │ │ ├── download
│ │ │ │ │ ├── PayDownloadQueryChain.java
│ │ │ │ │ └── param
│ │ │ │ │ └── PayDownloadQueryParamChain.java
│ │ │ │ ├── param
│ │ │ │ │ ├── AppPayParamChain.java
│ │ │ │ │ ├── PagePayParamChain.java
│ │ │ │ │ └── WapPayParamChain.java
│ │ │ │ ├── query
│ │ │ │ │ ├── PayQueryChain.java
│ │ │ │ │ └── param
│ │ │ │ │ └── PayQueryParamChain.java
│ │ │ │ └── refund
│ │ │ │ ├── PayRefundChain.java
│ │ │ │ ├── param
│ │ │ │ │ └── PayRefundParamChain.java
│ │ │ │ └── query
│ │ │ │ ├── PayRefundQueryChain.java
│ │ │ │ └── param
│ │ │ │ └── PayRefundQueryParamChain.java
│ │ │ ├── api
│ │ │ │ └── AlipayApi.java
│ │ │ ├── config
│ │ │ │ ├── AliOssAutoConfiguration.java
│ │ │ │ ├── AliOssConfigProperties.java
│ │ │ │ ├── AliPayAutoConfiguration.java
│ │ │ │ └── AlipayConfigProperties.java
│ │ │ ├── controller
│ │ │ │ └── AliPayController.java
│ │ │ ├── dto
│ │ │ │ ├── AliPayGoodsDetailDTO.java
│ │ │ │ ├── AlipayOrderDTO.java
│ │ │ │ ├── CloseOrderDTO.java
│ │ │ │ ├── OssUploadDTO.java
│ │ │ │ ├── QueryBillDTO.java
│ │ │ │ ├── QueryOrderDTO.java
│ │ │ │ ├── QueryOrderResultDTO.java
│ │ │ │ ├── RefundAmountDTO.java
│ │ │ │ └── RefundQueryDTO.java
│ │ │ ├── oss
│ │ │ │ ├── AliOssBucketApi.java
│ │ │ │ ├── AliOssDownloadApi.java
│ │ │ │ ├── AliOssUploadApi.java
│ │ │ │ ├── AliOssUploadGoOnApi.java
│ │ │ │ ├── AliOssUtil.java
│ │ │ │ └── PostObjectSample.java
│ │ │ └── service
│ │ │ └── AlipayService.java
│ │ └── resources
│ │ ├── META-INF
│ │ │ └── spring.factories
│ │ └── log
│ │ └── logback.xml
│ └── test
│ └── java
静态Api调用
/**
* 支付宝支付接口
*
* @author Luna@win10
* @date 2020/4/26 15:40
*/
public class AlipayApi {
/**
* 网页支付
*
* @param alipayConfigValue
* @param alipayOrderDTO
* @return
* @throws AlipayApiException
*/
public static String pagePay(AlipayConfigValue alipayConfigValue, AlipayOrderDTO alipayOrderDTO)
throws AlipayApiException {
return PayRootChainFactory
.createdDevPayChain(alipayConfigValue.getAppId(), alipayConfigValue.getPrivateKey(),
alipayConfigValue.getPublicKey())
.pagePay(alipayOrderDTO.getSubject(), alipayOrderDTO.getOutTradeNo(), alipayOrderDTO.getTotalAmount())
.builder()
.pay(alipayConfigValue.getReturnUrl(), alipayConfigValue.getNotifyUrl());
}
/**
* 交易查询
*
* @param alipayConfigValue
* @param queryOrderDTO
* @return
* @throws AlipayApiException
*/
public static String payQuery(AlipayConfigValue alipayConfigValue, QueryOrderDTO queryOrderDTO)
throws AlipayApiException {
AlipayTradeQueryModel queryModel = new AlipayTradeQueryModel();
queryModel.setOutTradeNo(queryOrderDTO.getOutTradeNo());
queryModel.setTradeNo(queryOrderDTO.getTradeNo());
queryModel.setQueryOptions(queryOrderDTO.getQueryOptions());
return PayRootChainFactory
.createdDevPayChain(alipayConfigValue.getAppId(), alipayConfigValue.getPrivateKey(),
alipayConfigValue.getPublicKey())
.queryPay(queryModel)
.builder()
.query();
}
/**
* 关闭交易
*
* @param alipayConfigValue
* @param closeOrderDTO
* @return
* @throws AlipayApiException
*/
public static String payClose(AlipayConfigValue alipayConfigValue, CloseOrderDTO closeOrderDTO)
throws AlipayApiException {
AlipayTradeCloseModel closeModel = new AlipayTradeCloseModel();
closeModel.setOutTradeNo(closeOrderDTO.getOutTradeNo());
closeModel.setTradeNo(closeOrderDTO.getTradeNo());
closeModel.setOperatorId(closeOrderDTO.getTradeNo());
return PayRootChainFactory
.createdDevPayChain(alipayConfigValue.getAppId(), alipayConfigValue.getPrivateKey(),
alipayConfigValue.getPublicKey())
.closePay(closeModel)
.builder()
.close();
}
/**
* 交易退款
*
* @param alipayConfigValue
* @param refundAmountDTO
* @return
* @throws AlipayApiException
*/
public static String payRefund(AlipayConfigValue alipayConfigValue, RefundAmountDTO refundAmountDTO)
throws AlipayApiException {
return PayRootChainFactory
.createdDevPayChain(alipayConfigValue.getAppId(), alipayConfigValue.getPrivateKey(),
alipayConfigValue.getPublicKey())
.refundPay(refundAmountDTO.getOutTradeNo(), refundAmountDTO.getTradeNo(), refundAmountDTO.getRefundAmount(),
refundAmountDTO.getRefundReason(), refundAmountDTO.getOutRequestNo())
.builder()
.refund();
}
/**
* 退款查询
*
* @param alipayConfigValue
* @param refundQueryDTO
* @return
* @throws AlipayApiException
*/
public static String payRefundQuery(AlipayConfigValue alipayConfigValue, RefundQueryDTO refundQueryDTO)
throws AlipayApiException {
return PayRootChainFactory
.createdDevPayChain(alipayConfigValue.getAppId(), alipayConfigValue.getPrivateKey(),
alipayConfigValue.getPublicKey())
.refundQueryPay(refundQueryDTO.getOutTradeNo(), refundQueryDTO.getTradeNo(),
refundQueryDTO.getOutRequestNo())
.builder()
.refundQuery();
}
/**
* 查询账单下载地址
*
* @return
* @throws AlipayApiException
*/
public static String payDownloadQuery(AlipayConfigValue alipayConfigValue, QueryBillDTO queryBillDTO)
throws AlipayApiException {
return PayRootChainFactory
.createdDevPayChain(alipayConfigValue.getAppId(), alipayConfigValue.getPrivateKey(),
alipayConfigValue.getPublicKey())
.downloadQueryPay(queryBillDTO.getBillType(), queryBillDTO.getBillDate())
.builder()
.downloadQuery();
}
/**
* 支付验证
* @param alipayConfigValue
* @param request
* @return
* @throws AlipayApiException
*/
public static boolean payCheck(AlipayConfigValue alipayConfigValue, HttpServletRequest request) throws AlipayApiException {
Map<String, String[]> parameterMap = request.getParameterMap();
Map<String, String> reload = PayCheckFactory.reload(parameterMap);
return PayCheckFactory.check(reload, alipayConfigValue.getPublicKey());
}
}