feat(cashier): 实现收银台支付功能

- 新增收银台支付参数和结果对象
- 实现收银台聚合支付配置查询
- 添加收银台支付逻辑,支持多种支付方式
- 优化支付服务,增加重复支付检查
- 调整支付同步服务,增加待支付状态检查
This commit is contained in:
DaxPay
2024-11-29 16:44:27 +08:00
parent ae0e954f51
commit 250a50c87a
14 changed files with 174 additions and 52 deletions

View File

@@ -22,10 +22,10 @@ import java.util.Objects;
@AllArgsConstructor
public enum CheckoutCallTypeEnum {
SCAN("scan", "扫码支付"),
BAR_CODE("barCode", "条码支付"),
QR_CODE("qr_code", "扫码支付"),
BAR_CODE("bar_code", "条码支付"),
LINK("link", "跳转链接"),
MINI_APP("miniApp", "小程序支付"),
MINI_APP("mini_app", "小程序支付"),
AGGREGATE("aggregate", "聚合支付"),
APP("app", "APP支付"),
;

View File

@@ -0,0 +1,27 @@
package org.dromara.daxpay.core.param.checkout;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 收银台聚合支付参数
* @author xxm
* @since 2024/11/26
*/
@Data
@Accessors(chain = true)
@Schema(title = "收银台支付参数")
public class CheckoutAggregatePayParam {
@Schema(description = "要支付的订单号")
private String orderNo;
@Schema(description = "聚合支付类型")
private String aggregateType;
@Schema(description = "唯一标识")
private String openId;
}

View File

@@ -1,4 +1,4 @@
package org.dromara.daxpay.core.param.cashier;
package org.dromara.daxpay.core.param.checkout;
import cn.hutool.core.date.DatePattern;
import com.fasterxml.jackson.annotation.JsonFormat;

View File

@@ -1,4 +1,4 @@
package org.dromara.daxpay.core.param.cashier;
package org.dromara.daxpay.core.param.checkout;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

View File

@@ -5,14 +5,14 @@ import lombok.Data;
import lombok.experimental.Accessors;
/**
* 收银台聚合支付配置
* 收银台聚合支付配置和订单信息
* @author xxm
* @since 2024/11/27
*/
@Data
@Accessors(chain = true)
@Schema(title = "收银台聚合支付配置")
public class CheckoutAggregateResult {
public class CheckoutAggregateOrderAndConfigResult {
/** 订单信息 */
@Schema(description = "订单信息")

View File

@@ -0,0 +1,27 @@
package org.dromara.daxpay.core.result.checkout;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
import org.dromara.daxpay.core.enums.PayStatusEnum;
/**
* 收银台支付结果
* @author xxm
* @since 2024/11/29
*/
@Data
@Accessors(chain = true)
@Schema(title = "收银台支付结果")
public class CheckoutPayResult {
/** 链接 */
private String url;
/**
* 支付状态
* @see PayStatusEnum
*/
@Schema(description = "支付结果")
private String payStatus;
}