!20 支付模块

Merge pull request !20 from William Hu/7.0.4-develop
pull/20/MERGE
stylefeng 2021-06-01 22:19:06 +08:00 committed by Gitee
commit 1f3a58c356
16 changed files with 980 additions and 0 deletions

151
kernel-d-pay/README.md Normal file
View File

@ -0,0 +1,151 @@
# 支付模块
## 接入支付宝支付
### application.yml添加支付宝支付appid等信息
```yml
alipay:
appId: 2021000117660206
gatewayHost: openapi.alipaydev.com
notifyUrl: http://101.132.1.2:8001/pay/notify_url
merchantPrivateKey: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC+g1/v3Z968
alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
```
openapi.alipaydev.com 是沙盒环境 ,正式环境需要更换网关
gatewayHost必须是外网穿透host否则阿里无法回调成功
### 使用Demo
```java
package com.alipay.controller;
import cn.hutool.core.lang.UUID;
import cn.stylefeng.roses.kernel.pay.api.PayApi;
import cn.stylefeng.roses.kernel.pay.api.pojo.TradeRefundResponse;
import com.alipay.easysdk.factory.Factory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
/**
* 支付模块测试
*
* @author huziyang
* @date 2021/05/29 21:38
*/
@RestController
@RequestMapping("/test")
@Slf4j
public class AlipayTest {
@Resource
private PayApi payApi;
/**
* PC支付
*
* @return 支付页面
* @author huziyang
* @date 2021/04/20 20:43
*/
@GetMapping("/page")
public String page(){
return payApi.page("xx全屋定制", "eb58cd5c-7613-41ce-93ef-fcf0ad4284f9","12.5",null);
}
/**
* 手机支付
*
* @return 支付页面
* @author huziyang
* @date 2021/04/20 20:43
*/
@GetMapping("/wap")
public String wap(){
return payApi.wap("xx全屋定制", "eb58cd5c-7613-41ce-93ef-fcf0ad4284f8","12.5",null,null);
}
/**
* 退款
*
* @return 退款实体
* @author huziyang
* @date 2021/04/20 20:43
*/
@PostMapping("/refund")
public TradeRefundResponse refund() {
return payApi.refund("eb58cd5c-7613-41ce-93ef-fcf0ad4284f8", "12.5");
}
/**
* 支付宝回调
*
* @param request
* @throws Exception
* @author huziyang
* @date 2021/04/20 20:43
*/
@PostMapping("/notify_url")
public void notify(HttpServletRequest request) throws Exception {
if (request.getParameter("trade_status").equals("TRADE_SUCCESS")) {
Map<String, String> params = new HashMap<>();
Map<String, String[]> requestParams = request.getParameterMap();
for (String name : requestParams.keySet()) {
params.put(name, request.getParameter(name));
}
if (Factory.Payment.Common().verifyNotify(params)) {
log.info("支付宝异步回调成功");
log.info("订单名称: " + params.get("subject"));
log.info("交易状态: " + params.get("trade_status"));
log.info("支付宝交易凭证号: " + params.get("trade_no"));
log.info("商家订单号: " + params.get("out_trade_no"));
log.info("交易金额: " + params.get("total_amount"));
log.info("支付宝唯一id: " + params.get("buyer_id"));
log.info("付款时间: " + params.get("gmt_payment"));
log.info("付款金额: " + params.get("buyer_pay_amount"));
}
}
}
}
```
### pom中引用支付依赖
```xml
<dependency>
<groupId>cn.stylefeng.roses</groupId>
<artifactId>pay-spring-boot-starter</artifactId>
<version>7.0.4</version>
</dependency>
```
至此支付宝支付就接入成功啦!
如果需要配置应用公钥证书文件路径等信息参照如下yml具体配置参数可以查看支付宝支付官方文档
```yml
alipay:
appId:
gatewayHost:
notifyUrl:
merchantPrivateKey:
alipayPublicKey:
encryptKey:
merchantCertPath:
alipayCertPath:
alipayRootCertPath:
```

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>kernel-d-pay</artifactId>
<groupId>cn.stylefeng.roses</groupId>
<version>7.0.4</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>pay-api</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
</project>

View File

@ -0,0 +1,79 @@
/*
* Copyright [2020-2030] [https://www.stylefeng.cn]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* GunsAPACHE LICENSE 2.0使
*
* 1.LICENSE
* 2.Guns
* 3.
* 4. https://gitee.com/stylefeng/guns
* 5. https://gitee.com/stylefeng/guns
* 6.
*/
package cn.stylefeng.roses.kernel.pay.api;
import cn.stylefeng.roses.kernel.pay.api.pojo.TradeRefundResponse;
/**
* api
*
* @author huziyang
* @date 2021/04/20 20:43
*/
public interface PayApi {
/**
* PC
*
* @param orderName
* @param outTradeNo
* @param total
* @param returnUrl
* @return
* @author huziyang
* @date 2021/04/20 20:43
*/
String page(String orderName, String outTradeNo, String total, String returnUrl);
/**
*
*
* @param orderName
* @param outTradeNo
* @param total
* @param quitUrl 退
* @param returnUrl
* @return
* @author huziyang
* @date 2021/04/20 20:43
*/
String wap(String orderName, String outTradeNo, String total, String quitUrl, String returnUrl);
/**
* 退
*
* @param outTradeNo
* @param refundAmount 退
* @return 退
* @author huziyang
* @date 2021/04/20 20:43
*/
TradeRefundResponse refund(String outTradeNo, String refundAmount);
}

View File

@ -0,0 +1,56 @@
/*
* Copyright [2020-2030] [https://www.stylefeng.cn]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* GunsAPACHE LICENSE 2.0使
*
* 1.LICENSE
* 2.Guns
* 3.
* 4. https://gitee.com/stylefeng/guns
* 5. https://gitee.com/stylefeng/guns
* 6.
*/
package cn.stylefeng.roses.kernel.pay.api.constants;
/**
*
*
* @author huziyang
* @date 2021/04/20 20:43
*/
public interface PayConstants {
/**
* mongodb
*/
String PAY_MODULE_NAME = "kernel-d-pay";
/**
*
*/
String PAY_EXCEPTION_STEP_CODE = "80";
/**
* 退
*/
String REFUND_SUCCESS_CODE = "10000";
/**
* 退
*/
String REFUND_ERROR_CODE = "40000";
}

View File

@ -0,0 +1,43 @@
/*
* Copyright [2020-2030] [https://www.stylefeng.cn]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* GunsAPACHE LICENSE 2.0使
*
* 1.LICENSE
* 2.Guns
* 3.
* 4. https://gitee.com/stylefeng/guns
* 5. https://gitee.com/stylefeng/guns
* 6.
*/
package cn.stylefeng.roses.kernel.pay.api.exception;
import cn.stylefeng.roses.kernel.pay.api.constants.PayConstants;
import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum;
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
/**
*
*
* @author huziyang
* @date 2021/04/20 20:43
*/
public class PayException extends ServiceException {
public PayException(AbstractExceptionEnum exception) {
super(PayConstants.PAY_MODULE_NAME, exception);
}
}

View File

@ -0,0 +1,129 @@
/*
* Copyright [2020-2030] [https://www.stylefeng.cn]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* GunsAPACHE LICENSE 2.0使
*
* 1.LICENSE
* 2.Guns
* 3.
* 4. https://gitee.com/stylefeng/guns
* 5. https://gitee.com/stylefeng/guns
* 6.
*/
package cn.stylefeng.roses.kernel.pay.api.pojo;
import cn.stylefeng.roses.kernel.pay.api.constants.PayConstants;
import lombok.*;
/**
* 退
*
* @author huziyang
* @date 2021/04/20 20:43
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class TradeRefundResponse{
/**
* 退
*/
private String code;
/**
*
*/
private String msg;
/**
*
*/
private String outTradeNo;
/**
* 退
*/
private String refundFee;
/**
*
*/
private String tradeNo;
/**
* 退
*/
private String gmtRefundPay;
/**
*
*/
private String buyerLogonId;
/**
* id
*/
private String buyerUserId;
/**
*
*/
private Object data;
/**
* TradeRefundResponse
*
* @param code
* @param msg
* @param data
* @author huziyang
* @date 2021/04/20 20:43
*/
public TradeRefundResponse(String code, String msg, Object data){
this.code = code;
this.msg = msg;
this.data = data;
}
/**
*
*
* @param msg
* @param data
* @return TradeRefundResponse
* @author huziyang
* @date 2021/04/20 20:43
*/
public static TradeRefundResponse error(String msg, Object data){
return new TradeRefundResponse(PayConstants.REFUND_ERROR_CODE,msg,data);
}
/**
*
*
* @param msg
* @return TradeRefundResponse
* @author huziyang
* @date 2021/04/20 20:43
*/
public static TradeRefundResponse error(String msg){
return error(msg,null);
}
}

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>kernel-d-pay</artifactId>
<groupId>cn.stylefeng.roses</groupId>
<version>7.0.4</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>pay-sdk-alipay</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<!--支付模块的api-->
<dependency>
<groupId>cn.stylefeng.roses</groupId>
<artifactId>pay-api</artifactId>
<version>7.0.4</version>
</dependency>
<!--阿里支付sdk-->
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-easysdk</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,136 @@
/*
* Copyright [2020-2030] [https://www.stylefeng.cn]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* GunsAPACHE LICENSE 2.0使
*
* 1.LICENSE
* 2.Guns
* 3.
* 4. https://gitee.com/stylefeng/guns
* 5. https://gitee.com/stylefeng/guns
* 6.
*/
package cn.stylefeng.roses.kernel.pay.alipay.config;
import com.alipay.easysdk.factory.Factory;
import com.alipay.easysdk.kernel.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
/**
*
*
* @author huziyang
* @date 2021/04/20 20:43
*/
@Component
public class AlipayConfig implements ApplicationRunner {
/**
* id
*/
@Value("${alipay.appId}")
private String appId;
/**
*
*/
@Value("${alipay.merchantPrivateKey}")
private String merchantPrivateKey;
/**
*
*/
@Value("${alipay.alipayPublicKey}")
private String alipayPublicKey;
/**
*
*/
@Value("${alipay.gatewayHost}")
private String gatewayHost;
/**
*
*/
@Value("${alipay.notifyUrl:#{null}}")
private String notifyUrl;
/**
* AES
*/
@Value("${alipay.encryptKey:#{null}}")
private String encryptKey;
/**
*
*/
@Value("${alipay.merchantCertPath:#{null}}")
private String merchantCertPath;
/**
*
*/
@Value("${alipay.alipayCertPath:#{null}}")
private String alipayCertPath;
/**
*
*/
@Value("${alipay.alipayRootCertPath:#{null}}")
private String alipayRootCertPath;
/**
*
*
* @author huziyang
* @date 2021/04/20 20:43
*/
@Override
public void run(ApplicationArguments args) throws Exception {
Factory.setOptions(getOptions());
}
/**
*
*
* @return
* @author huziyang
* @date 2021/04/20 20:43
*/
private Config getOptions() {
Config config = new Config();
config.protocol = "https";
config.gatewayHost = this.gatewayHost;
config.signType = "RSA2";
config.appId = this.appId;
config.merchantPrivateKey = this.merchantPrivateKey;
// 证书文件路径支持设置为文件系统中的路径或CLASS_PATH中的路径优先从文件系统中加载加载失败后会继续尝试从CLASS_PATH中加载
config.merchantCertPath = this.merchantCertPath;
config.alipayCertPath = this.alipayCertPath;
config.alipayRootCertPath = this.alipayRootCertPath;
// 如果采用非证书模式,则无需赋值上面的三个证书路径,改为赋值如下的支付宝公钥字符串即可
config.alipayPublicKey = this.alipayPublicKey;
// 可设置异步通知接收服务地址(可选)
config.notifyUrl = notifyUrl;
// 可设置AES密钥调用AES加解密相关接口时需要可选
config.encryptKey = this.encryptKey;
return config;
}
}

View File

@ -0,0 +1,36 @@
/*
* Copyright [2020-2030] [https://www.stylefeng.cn]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* GunsAPACHE LICENSE 2.0使
*
* 1.LICENSE
* 2.Guns
* 3.
* 4. https://gitee.com/stylefeng/guns
* 5. https://gitee.com/stylefeng/guns
* 6.
*/
package cn.stylefeng.roses.kernel.pay.alipay.constants;
/**
*
*
* @author huziyang
* @date 2021/04/20 20:43
*/
public interface AlipayConstants {
String ALIPAY_REFUND_SUCCESS_CODE = "10000";
}

View File

@ -0,0 +1,79 @@
/*
* Copyright [2020-2030] [https://www.stylefeng.cn]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* GunsAPACHE LICENSE 2.0使
*
* 1.LICENSE
* 2.Guns
* 3.
* 4. https://gitee.com/stylefeng/guns
* 5. https://gitee.com/stylefeng/guns
* 6.
*/
package cn.stylefeng.roses.kernel.pay.alipay.service;
import cn.stylefeng.roses.kernel.pay.api.pojo.TradeRefundResponse;
/**
*
*
* @author huziyang
* @date 2021/04/20 20:43
*/
public interface AlipayService {
/**
* PC
*
* @param orderName
* @param outTradeNo
* @param total
* @param returnUrl
* @return
* @author huziyang
* @date 2021/04/20 20:43
*/
String page(String orderName, String outTradeNo, String total, String returnUrl);
/**
*
*
* @param orderName
* @param outTradeNo
* @param total
* @param quitUrl 退
* @param returnUrl
* @return
* @author huziyang
* @date 2021/04/20 20:43
*/
String wap(String orderName, String outTradeNo, String total, String quitUrl, String returnUrl);
/**
* 退
*
* @param outTradeNo
* @param refundAmount 退
* @return 退
* @author huziyang
* @date 2021/04/20 20:43
*/
TradeRefundResponse refund(String outTradeNo, String refundAmount);
}

View File

@ -0,0 +1,91 @@
/*
* Copyright [2020-2030] [https://www.stylefeng.cn]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* GunsAPACHE LICENSE 2.0使
*
* 1.LICENSE
* 2.Guns
* 3.
* 4. https://gitee.com/stylefeng/guns
* 5. https://gitee.com/stylefeng/guns
* 6.
*/
package cn.stylefeng.roses.kernel.pay.alipay.service.impl;
import cn.stylefeng.roses.kernel.pay.alipay.constants.AlipayConstants;
import cn.stylefeng.roses.kernel.pay.alipay.service.AlipayService;
import cn.stylefeng.roses.kernel.pay.api.PayApi;
import cn.stylefeng.roses.kernel.pay.api.constants.PayConstants;
import cn.stylefeng.roses.kernel.pay.api.pojo.TradeRefundResponse;
import com.alipay.easysdk.factory.Factory;
import com.alipay.easysdk.payment.common.models.AlipayTradeRefundResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
*
*
* @author huziyang
* @date 2021/04/20 20:43
*/
@Service
@Slf4j
public class AlipayServiceImpl implements AlipayService, PayApi {
@Override
public String page(String orderName, String outTradeNo, String total, String returnUrl) {
try {
return Factory.Payment.Page().pay(orderName, outTradeNo, total, returnUrl).body;
} catch (Exception e) {
log.error(e.getMessage());
return e.getMessage();
}
}
@Override
public String wap(String orderName, String outTradeNo, String total, String quitUrl, String returnUrl) {
try {
return Factory.Payment.Wap().pay(orderName, outTradeNo, total, quitUrl, returnUrl).body;
} catch (Exception e) {
log.error(e.getMessage());
return e.getMessage();
}
}
@Override
public TradeRefundResponse refund(String outTradeNo, String refundAmount) {
try {
AlipayTradeRefundResponse response = Factory.Payment.Common().refund(outTradeNo, refundAmount);
if (AlipayConstants.ALIPAY_REFUND_SUCCESS_CODE.equals(response.getCode())){
return TradeRefundResponse.builder()
.code(PayConstants.REFUND_SUCCESS_CODE)
.msg(response.getMsg())
.outTradeNo(response.getOutTradeNo())
.refundFee(response.getRefundFee())
.tradeNo(response.getTradeNo())
.gmtRefundPay(response.getGmtRefundPay())
.buyerLogonId(response.buyerLogonId)
.buyerUserId(response.buyerUserId)
.data(response)
.build();
}
return TradeRefundResponse.error(response.msg,response);
} catch (Exception e) {
log.error(e.getMessage());
return TradeRefundResponse.error(e.getMessage());
}
}
}

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>kernel-d-pay</artifactId>
<groupId>cn.stylefeng.roses</groupId>
<version>7.0.4</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>pay-spring-boot-starter</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<!--alipay api模块的sdk-->
<dependency>
<groupId>cn.stylefeng.roses</groupId>
<artifactId>pay-sdk-alipay</artifactId>
<version>7.0.4</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,54 @@
/*
* Copyright [2020-2030] [https://www.stylefeng.cn]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* GunsAPACHE LICENSE 2.0使
*
* 1.LICENSE
* 2.Guns
* 3.
* 4. https://gitee.com/stylefeng/guns
* 5. https://gitee.com/stylefeng/guns
* 6.
*/
package cn.stylefeng.roses.kernel.pay.starter;
import cn.stylefeng.roses.kernel.pay.alipay.service.impl.AlipayServiceImpl;
import cn.stylefeng.roses.kernel.pay.api.PayApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
*
*
* @author huziyang
* @date 2021/05/29 21:38
*/
@Configuration
public class GunsPayAutoConfiguration {
/**
*
*
* @author huziyang
* @date 2021/05/29 21:38
*/
@Bean
public PayApi payApi() {
return new AlipayServiceImpl();
}
}

View File

@ -0,0 +1,3 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cn.stylefeng.roses.kernel.pay.starter.GunsPayAutoConfiguration,\
cn.stylefeng.roses.kernel.pay.alipay.config.AlipayConfig

35
kernel-d-pay/pom.xml Normal file
View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>roses-kernel</artifactId>
<groupId>cn.stylefeng.roses</groupId>
<version>7.0.4</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>kernel-d-pay</artifactId>
<packaging>pom</packaging>
<modules>
<module>pay-api</module>
<module>pay-sdk-alipay</module>
<module>pay-spring-boot-starter</module>
</modules>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<!-- 开发规则 -->
<dependency>
<groupId>cn.stylefeng.roses</groupId>
<artifactId>kernel-a-rule</artifactId>
<version>7.0.4</version>
</dependency>
</dependencies>
</project>

View File

@ -94,6 +94,9 @@
<!--mongodb模块-->
<module>kernel-d-mongodb</module>
<!-- 支付模块 -->
<module>kernel-d-pay</module>
<!--系统管理基础业务-->
<module>kernel-s-system</module>