mirror of
https://gitee.com/dromara/dax-pay.git
synced 2025-09-03 11:06:46 +00:00
refactor(sdk): 重构 SDK 参数和响应模型
- 更新了多个 SDK 参数和响应模型类的结构 - 优化了字段注解和数据校验 -统一了代码风格,提高了可读性和可维护性
This commit is contained in:
@@ -48,7 +48,7 @@ public class AliPayAuthService {
|
||||
|
||||
// 授权地址
|
||||
String serverUrl = platformConfig.getGatewayMobileUrl();
|
||||
String authUrl = StrUtil.format("{}/alipay/auth/{}/{}/{}/{}",
|
||||
String authUrl = StrUtil.format("{}/auth/alipay/{}/{}/{}/{}",
|
||||
serverUrl, param.getAppId(),param.getChannel(),queryCode,aliPayConfig.getAliAppId());
|
||||
|
||||
return new AuthUrlResult().setAuthUrl(authUrl).setQueryCode(queryCode);
|
||||
|
@@ -55,7 +55,7 @@ public class WechatAuthService {
|
||||
}
|
||||
// 生产链接, 授权成功后重定向h5段用于获取授权码的页面, 获取成功后页面自动关闭
|
||||
String queryCode = RandomUtil.randomString(10);
|
||||
String redirectUrl = StrUtil.format("{}/wechat/auth/{}/{}/{}", serverUrl, param.getAppId(), param.getChannel(), queryCode);
|
||||
String redirectUrl = StrUtil.format("{}/auth/wechat/{}/{}/{}", serverUrl, param.getAppId(), param.getChannel(), queryCode);
|
||||
String authUrl = wxMpService.getOAuth2Service().buildAuthorizationUrl(redirectUrl, WxConsts.OAuth2Scope.SNSAPI_BASE, "");
|
||||
return new AuthUrlResult().setAuthUrl(authUrl).setQueryCode(queryCode);
|
||||
}
|
||||
|
@@ -0,0 +1,24 @@
|
||||
package org.dromara.daxpay.single.sdk.code;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 通道认证状态
|
||||
* @author xxm
|
||||
* @since 2024/9/24
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum ChannelAuthStatusEnum {
|
||||
|
||||
/** 获取中 */
|
||||
WAITING("waiting"),
|
||||
/** 获取成功 */
|
||||
SUCCESS("success"),
|
||||
/** 数据不存在 */
|
||||
NOT_EXIST("not_exist");
|
||||
|
||||
private final String code;
|
||||
|
||||
}
|
@@ -0,0 +1,34 @@
|
||||
package org.dromara.daxpay.single.sdk.code;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 收银台类型
|
||||
* @author xxm
|
||||
* @since 2024/11/26
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum CheckoutTypeEnum {
|
||||
|
||||
H5("h5", "H5"),
|
||||
PC("pc", "PC"),
|
||||
MINI_APP("mini_app", "小程序"),
|
||||
AGGREGATE("aggregate", "聚合扫码"),
|
||||
;
|
||||
|
||||
private final String code;
|
||||
private final String name;
|
||||
|
||||
public static CheckoutTypeEnum findBuyCode(String code){
|
||||
return Arrays.stream(values())
|
||||
.filter(value -> Objects.equals(value.getCode(), code))
|
||||
.findFirst()
|
||||
.orElseThrow(() -> new IllegalStateException("不支持的收银台类型"));
|
||||
|
||||
}
|
||||
}
|
@@ -0,0 +1,36 @@
|
||||
package org.dromara.daxpay.single.sdk.model.assist;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.dromara.daxpay.single.sdk.code.ChannelAuthStatusEnum;
|
||||
|
||||
/**
|
||||
* 认证结果
|
||||
* @author xxm
|
||||
* @since 2024/12/3
|
||||
*/
|
||||
@Data
|
||||
public class AuthModel {
|
||||
|
||||
@Schema(description = "OpenId")
|
||||
private String openId;
|
||||
|
||||
/**
|
||||
* 支付宝存量商户部分返回的是用户ID
|
||||
*/
|
||||
@Schema(description = "用户ID")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 微信会返回accessToken,用于获取用户信息
|
||||
*/
|
||||
@Schema(description = "AccessToken")
|
||||
private String accessToken;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
* @see ChannelAuthStatusEnum
|
||||
*/
|
||||
@Schema(description = "状态")
|
||||
private String status;
|
||||
}
|
@@ -0,0 +1,22 @@
|
||||
package org.dromara.daxpay.single.sdk.model.assist;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 获取OpenId授权链接和查询标识返回类
|
||||
* @author xxm
|
||||
* @since 2024/12/3
|
||||
*/
|
||||
@Data
|
||||
public class AuthUrlModel {
|
||||
|
||||
|
||||
/** 授权访问链接 */
|
||||
@Schema(description = "授权访问链接")
|
||||
private String authUrl;
|
||||
|
||||
/** 查询标识码, 用于查询是否获取到了OpenId */
|
||||
@Schema(description = "查询标识码")
|
||||
private String queryCode;
|
||||
}
|
@@ -1,18 +0,0 @@
|
||||
package org.dromara.daxpay.single.sdk.model.assist;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 微信AccessToken
|
||||
* @author xxm
|
||||
* @since 2024/2/10
|
||||
*/
|
||||
@Data
|
||||
public class WxAccessTokenModel{
|
||||
|
||||
/** 微信AccessToken, 目前无返回 */
|
||||
private String accessToken;
|
||||
|
||||
/** 微信用户唯一标识 */
|
||||
private String openId;
|
||||
}
|
@@ -1,15 +0,0 @@
|
||||
package org.dromara.daxpay.single.sdk.model.assist;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 微信oauth2授权的url连接
|
||||
* @author xxm
|
||||
* @since 2024/2/10
|
||||
*/
|
||||
@Data
|
||||
public class WxAuthUrlModel{
|
||||
|
||||
/** 微信oauth2授权的url连接 */
|
||||
private String url;
|
||||
}
|
@@ -0,0 +1,16 @@
|
||||
package org.dromara.daxpay.single.sdk.model.trade.pay;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 收银台响应参数
|
||||
* @author xxm
|
||||
* @since 2024/12/3
|
||||
*/
|
||||
@Data
|
||||
public class CheckoutUrlModel {
|
||||
@Schema(description = "收银台链接")
|
||||
private String url;
|
||||
|
||||
}
|
@@ -1,8 +1,7 @@
|
||||
package org.dromara.daxpay.single.sdk.net;
|
||||
|
||||
import lombok.Data;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@@ -11,8 +10,7 @@ import java.time.LocalDateTime;
|
||||
* @author xxm
|
||||
* @since 2024/2/2
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@Data
|
||||
public abstract class DaxPayRequest<T> {
|
||||
|
||||
/** 应用号 */
|
||||
|
@@ -1,16 +1,16 @@
|
||||
package org.dromara.daxpay.single.sdk.param.allocation;
|
||||
|
||||
import org.dromara.daxpay.single.sdk.code.AllocReceiverTypeEnum;
|
||||
import org.dromara.daxpay.single.sdk.code.AllocRelationTypeEnum;
|
||||
import org.dromara.daxpay.single.sdk.code.ChannelEnum;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayRequest;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import org.dromara.daxpay.single.sdk.model.allocation.AllocReceiverAddModel;
|
||||
import org.dromara.daxpay.single.sdk.util.JsonUtil;
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.single.sdk.code.AllocReceiverTypeEnum;
|
||||
import org.dromara.daxpay.single.sdk.code.AllocRelationTypeEnum;
|
||||
import org.dromara.daxpay.single.sdk.code.ChannelEnum;
|
||||
import org.dromara.daxpay.single.sdk.model.allocation.AllocReceiverAddModel;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayRequest;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import org.dromara.daxpay.single.sdk.util.JsonUtil;
|
||||
|
||||
/**
|
||||
* 分账接收者添加参数
|
||||
|
@@ -1,20 +1,22 @@
|
||||
package org.dromara.daxpay.single.sdk.param.allocation;
|
||||
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.single.sdk.model.allocation.AllocReceiverModel;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayRequest;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import org.dromara.daxpay.single.sdk.util.JsonUtil;
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* 分账接收方列表参数
|
||||
* @author xxm
|
||||
* @since 2024/5/21
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class QueryAllocReceiverParam extends DaxPayRequest<AllocReceiverModel> {
|
||||
|
||||
/** 分账通道 */
|
||||
|
@@ -0,0 +1,52 @@
|
||||
package org.dromara.daxpay.single.sdk.param.assist;
|
||||
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayRequest;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import org.dromara.daxpay.single.sdk.util.JsonUtil;
|
||||
|
||||
/**
|
||||
* 设置认证信息请求参数, 次参数不需要进行签名验证, 通过查询码进行认证信息的查询, 主要拥有内部系统使用的场景
|
||||
* @author xxm
|
||||
* @since 2024/12/3
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class AuthAndSetParam extends DaxPayRequest<Void> {
|
||||
|
||||
@Schema(description = "支付通道")
|
||||
private String channel;
|
||||
|
||||
@Schema(description = "认证标识码")
|
||||
private String authCode;
|
||||
|
||||
/** 用于查询Code值, 不可为空 */
|
||||
@Schema(description = "查询码")
|
||||
private String queryCode;
|
||||
|
||||
/**
|
||||
* 方法请求路径
|
||||
*
|
||||
* @return 请求路径
|
||||
*/
|
||||
@Override
|
||||
public String path() {
|
||||
return "/assist/channel/auth/authAndSet";
|
||||
}
|
||||
|
||||
/**
|
||||
* 将请求返回结果反序列化为实体类
|
||||
*
|
||||
* @param json json字符串
|
||||
* @return 反序列后的对象
|
||||
*/
|
||||
@Override
|
||||
public DaxPayResult<Void> toModel(String json) {
|
||||
return JsonUtil.toBean(json, new TypeReference<DaxPayResult<Void>>() {});
|
||||
}
|
||||
}
|
@@ -0,0 +1,54 @@
|
||||
package org.dromara.daxpay.single.sdk.param.assist;
|
||||
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.single.sdk.model.assist.AuthModel;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayRequest;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import org.dromara.daxpay.single.sdk.util.JsonUtil;
|
||||
|
||||
/**
|
||||
* 获取认证信息请求参数
|
||||
* @author xxm
|
||||
* @since 2024/12/3
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class AuthCodeParam extends DaxPayRequest<AuthModel> {
|
||||
|
||||
|
||||
@Schema(description = "支付通道")
|
||||
private String channel;
|
||||
|
||||
@Schema(description = "认证标识码")
|
||||
private String authCode;
|
||||
|
||||
/** 用于查询Code值, 可以为空 */
|
||||
@Schema(description = "查询码")
|
||||
private String queryCode;
|
||||
|
||||
/**
|
||||
* 方法请求路径
|
||||
*
|
||||
* @return 请求路径
|
||||
*/
|
||||
@Override
|
||||
public String path() {
|
||||
return "/assist/channel/auth/auth";
|
||||
}
|
||||
|
||||
/**
|
||||
* 将请求返回结果反序列化为实体类
|
||||
*
|
||||
* @param json json字符串
|
||||
* @return 反序列后的对象
|
||||
*/
|
||||
@Override
|
||||
public DaxPayResult<AuthModel> toModel(String json) {
|
||||
return JsonUtil.toBean(json, new TypeReference<DaxPayResult<AuthModel>>() {});
|
||||
}
|
||||
}
|
@@ -0,0 +1,55 @@
|
||||
package org.dromara.daxpay.single.sdk.param.assist;
|
||||
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.single.sdk.model.assist.AuthUrlModel;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayRequest;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import org.dromara.daxpay.single.sdk.util.JsonUtil;
|
||||
|
||||
/**
|
||||
* 生成授权链接参数
|
||||
* @author xxm
|
||||
* @since 2024/12/3
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class GenerateAuthUrlParam extends DaxPayRequest<AuthUrlModel> {
|
||||
|
||||
/**
|
||||
* 支付通道
|
||||
*/
|
||||
@Schema(description = "支付通道")
|
||||
private String channel;
|
||||
|
||||
/**
|
||||
* 自定义授权重定向地址, 如果不传, 使用系统提供的默认地址
|
||||
*/
|
||||
@Schema(description = "授权重定向地址")
|
||||
private String authRedirectUrl;
|
||||
|
||||
/**
|
||||
* 方法请求路径
|
||||
*
|
||||
* @return 请求路径
|
||||
*/
|
||||
@Override
|
||||
public String path() {
|
||||
return "/assist/channel/auth/generateAuthUrl";
|
||||
}
|
||||
|
||||
/**
|
||||
* 将请求返回结果反序列化为实体类
|
||||
*
|
||||
* @param json json字符串
|
||||
* @return 反序列后的对象
|
||||
*/
|
||||
@Override
|
||||
public DaxPayResult<AuthUrlModel> toModel(String json) {
|
||||
return JsonUtil.toBean(json, new TypeReference<DaxPayResult<AuthUrlModel>>() {});
|
||||
}
|
||||
}
|
@@ -1,16 +1,16 @@
|
||||
package org.dromara.daxpay.single.sdk.param.channel;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.single.sdk.param.ChannelParam;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* 支付宝支付参数
|
||||
* @author xxm
|
||||
* @since 2021/2/27
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class AlipayParam implements ChannelParam {
|
||||
|
||||
/**
|
||||
|
@@ -1,16 +1,16 @@
|
||||
package org.dromara.daxpay.single.sdk.param.channel;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.single.sdk.param.ChannelParam;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* 云闪付参数
|
||||
* @author xxm
|
||||
* @since 2024/3/13
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class UnionPayParam implements ChannelParam {
|
||||
|
||||
/** 授权码(主动扫描用户的付款码) */
|
||||
|
@@ -1,16 +1,16 @@
|
||||
package org.dromara.daxpay.single.sdk.param.channel;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.single.sdk.param.ChannelParam;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* 微信支付参数
|
||||
* @author xxm
|
||||
* @since 2021/6/21
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class WechatPayParam implements ChannelParam {
|
||||
|
||||
/** 微信openId */
|
||||
|
@@ -1,5 +1,6 @@
|
||||
package org.dromara.daxpay.single.sdk.param.reconcile;
|
||||
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayRequest;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import org.dromara.daxpay.single.sdk.model.reconcile.ReconcileDownModel;
|
||||
@@ -18,7 +19,7 @@ import java.time.LocalDate;
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Schema(title = "对账下载参数")
|
||||
@Accessors(chain = true)
|
||||
public class ChannelReconcileDownParam extends DaxPayRequest<ReconcileDownModel> {
|
||||
@Schema(description = "通道")
|
||||
private String channel;
|
||||
|
@@ -1,5 +1,8 @@
|
||||
package org.dromara.daxpay.single.sdk.param.reconcile;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayRequest;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import org.dromara.daxpay.single.sdk.model.reconcile.ReconcileDownModel;
|
||||
@@ -14,6 +17,9 @@ import java.time.LocalDate;
|
||||
* @author xxm
|
||||
* @since 2024/8/21
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class PlatformReconcileDownParam extends DaxPayRequest<ReconcileDownModel> {
|
||||
@Schema(description = "通道")
|
||||
private String channel;
|
||||
|
@@ -0,0 +1,101 @@
|
||||
package org.dromara.daxpay.single.sdk.param.trade.pay;
|
||||
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.single.sdk.code.CheckoutTypeEnum;
|
||||
import org.dromara.daxpay.single.sdk.model.trade.pay.CheckoutUrlModel;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayRequest;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import org.dromara.daxpay.single.sdk.util.JsonUtil;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 收银台创建参数
|
||||
* @author xxm
|
||||
* @since 2024/12/3
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class CheckoutCreatParam extends DaxPayRequest<CheckoutUrlModel> {
|
||||
|
||||
/**
|
||||
* 收银台类型
|
||||
* @see CheckoutTypeEnum
|
||||
*/
|
||||
@Size(max = 100, message = "收银台类型不可超过32位")
|
||||
private String checkoutType;
|
||||
|
||||
/** 商户订单号 */
|
||||
@Schema(description = "商户订单号")
|
||||
private String bizOrderNo;
|
||||
|
||||
/** 支付标题 */
|
||||
@Schema(description = "支付标题")
|
||||
private String title;
|
||||
|
||||
/** 支付描述 */
|
||||
@Schema(description = "支付描述")
|
||||
private String description;
|
||||
|
||||
/** 是否开启分账 */
|
||||
@Schema(description = "是否开启分账")
|
||||
private Boolean allocation;
|
||||
|
||||
/** 自动分账 */
|
||||
@Schema(description = "自动分账")
|
||||
private Boolean autoAllocation;
|
||||
|
||||
/** 过期时间 */
|
||||
@Schema(description = "过期时间")
|
||||
private LocalDateTime expiredTime;
|
||||
|
||||
/** 支付金额 */
|
||||
@Schema(description = "支付金额")
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 支付扩展参数
|
||||
*/
|
||||
@Schema(description = "支付扩展参数")
|
||||
private String extraParam;
|
||||
|
||||
/** 商户扩展参数,回调时会原样返回 */
|
||||
@Schema(description = "商户扩展参数")
|
||||
private String attach;
|
||||
|
||||
/** 同步跳转地址, 支付完毕后用户浏览器返回到该地址, 不传输跳转到默认地址 */
|
||||
@Schema(description = "同步通知URL")
|
||||
private String returnUrl;
|
||||
|
||||
/** 异步通知地址 */
|
||||
@Schema(description = "异步通知地址")
|
||||
private String notifyUrl;
|
||||
|
||||
/**
|
||||
* 方法请求路径
|
||||
*
|
||||
* @return 请求路径
|
||||
*/
|
||||
@Override
|
||||
public String path() {
|
||||
return "/unipay/checkout/creat";
|
||||
}
|
||||
|
||||
/**
|
||||
* 将请求返回结果反序列化为实体类
|
||||
*
|
||||
* @param json json字符串
|
||||
* @return 反序列后的对象
|
||||
*/
|
||||
@Override
|
||||
public DaxPayResult<CheckoutUrlModel> toModel(String json) {
|
||||
return JsonUtil.toBean(json, new TypeReference<DaxPayResult<CheckoutUrlModel>>() {});
|
||||
}
|
||||
}
|
@@ -1,19 +1,21 @@
|
||||
package org.dromara.daxpay.single.sdk.param.trade.pay;
|
||||
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayRequest;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import org.dromara.daxpay.single.sdk.util.JsonUtil;
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* 支付关闭参数
|
||||
* @author xxm
|
||||
* @since 2023/12/17
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class PayCloseParam extends DaxPayRequest<Void> {
|
||||
|
||||
/**
|
||||
|
@@ -1,16 +1,17 @@
|
||||
package org.dromara.daxpay.single.sdk.param.trade.pay;
|
||||
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.single.sdk.code.ChannelEnum;
|
||||
import org.dromara.daxpay.single.sdk.code.PayMethodEnum;
|
||||
import org.dromara.daxpay.single.sdk.model.trade.pay.PayResultModel;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayRequest;
|
||||
import org.dromara.daxpay.single.sdk.param.channel.AlipayParam;
|
||||
import org.dromara.daxpay.single.sdk.param.channel.WechatPayParam;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import org.dromara.daxpay.single.sdk.model.trade.pay.PayResultModel;
|
||||
import org.dromara.daxpay.single.sdk.util.JsonUtil;
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
@@ -20,8 +21,9 @@ import java.time.LocalDateTime;
|
||||
* @author xxm
|
||||
* @since 2024/2/2
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class PayParam extends DaxPayRequest<PayResultModel> {
|
||||
|
||||
/** 商户订单号 */
|
||||
|
@@ -1,5 +1,6 @@
|
||||
package org.dromara.daxpay.single.sdk.param.trade.pay;
|
||||
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayRequest;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import org.dromara.daxpay.single.sdk.model.trade.pay.PayOrderModel;
|
||||
@@ -15,6 +16,7 @@ import lombok.EqualsAndHashCode;
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class PayQueryParam extends DaxPayRequest<PayOrderModel> {
|
||||
|
||||
/** 订单号 */
|
||||
|
@@ -1,20 +1,22 @@
|
||||
package org.dromara.daxpay.single.sdk.param.trade.pay;
|
||||
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.single.sdk.model.trade.pay.PaySyncModel;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayRequest;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import org.dromara.daxpay.single.sdk.model.trade.pay.PaySyncModel;
|
||||
import org.dromara.daxpay.single.sdk.util.JsonUtil;
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
*支付同步参数
|
||||
* @author xxm
|
||||
* @since 2024/2/5
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class PaySyncParam extends DaxPayRequest<PaySyncModel> {
|
||||
|
||||
/** 订单号 */
|
||||
|
@@ -1,17 +1,17 @@
|
||||
package org.dromara.daxpay.single.sdk.param.trade.refund;
|
||||
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.single.sdk.model.trade.refund.RefundModel;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayRequest;
|
||||
import org.dromara.daxpay.single.sdk.param.ChannelParam;
|
||||
import org.dromara.daxpay.single.sdk.param.channel.AlipayParam;
|
||||
import org.dromara.daxpay.single.sdk.param.channel.UnionPayParam;
|
||||
import org.dromara.daxpay.single.sdk.param.channel.WechatPayParam;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import org.dromara.daxpay.single.sdk.model.trade.refund.RefundModel;
|
||||
import org.dromara.daxpay.single.sdk.util.JsonUtil;
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@@ -20,9 +20,9 @@ import java.math.BigDecimal;
|
||||
* @author xxm
|
||||
* @since 2023/12/18
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString(callSuper = true)
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class RefundParam extends DaxPayRequest<RefundModel> {
|
||||
|
||||
|
||||
|
@@ -1,5 +1,6 @@
|
||||
package org.dromara.daxpay.single.sdk.param.trade.refund;
|
||||
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayRequest;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import org.dromara.daxpay.single.sdk.model.trade.refund.RefundOrderModel;
|
||||
@@ -15,6 +16,7 @@ import lombok.EqualsAndHashCode;
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class RefundQueryParam extends DaxPayRequest<RefundOrderModel> {
|
||||
|
||||
|
||||
|
@@ -1,20 +1,22 @@
|
||||
package org.dromara.daxpay.single.sdk.param.trade.refund;
|
||||
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.single.sdk.model.trade.refund.RefundSyncModel;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayRequest;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import org.dromara.daxpay.single.sdk.model.trade.refund.RefundSyncModel;
|
||||
import org.dromara.daxpay.single.sdk.util.JsonUtil;
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* 退款同步参数
|
||||
* @author xxm
|
||||
* @since 2024/2/7
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class RefundSyncParam extends DaxPayRequest<RefundSyncModel> {
|
||||
|
||||
/** 退款号 */
|
||||
|
@@ -1,15 +1,15 @@
|
||||
package org.dromara.daxpay.single.sdk.param.trade.transfer;
|
||||
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.single.sdk.code.ChannelEnum;
|
||||
import org.dromara.daxpay.single.sdk.code.TransferPayeeTypeEnum;
|
||||
import org.dromara.daxpay.single.sdk.model.trade.transfer.TransferModel;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayRequest;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import org.dromara.daxpay.single.sdk.model.trade.transfer.TransferModel;
|
||||
import org.dromara.daxpay.single.sdk.util.JsonUtil;
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@@ -18,9 +18,9 @@ import java.math.BigDecimal;
|
||||
* @author xxm
|
||||
* @since 2024/6/19
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString(callSuper = true)
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class TransferParam extends DaxPayRequest<TransferModel> {
|
||||
|
||||
/** 商户转账号 */
|
||||
|
@@ -1,22 +1,22 @@
|
||||
package org.dromara.daxpay.single.sdk.param.trade.transfer;
|
||||
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.single.sdk.model.trade.transfer.TransferOrderModel;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayRequest;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import org.dromara.daxpay.single.sdk.model.trade.transfer.TransferOrderModel;
|
||||
import org.dromara.daxpay.single.sdk.util.JsonUtil;
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author xxm
|
||||
* @since 2024/6/20
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString(callSuper = true)
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class TransferQueryParam extends DaxPayRequest<TransferOrderModel> {
|
||||
|
||||
/** 商户转账号 */
|
||||
|
@@ -1,20 +1,22 @@
|
||||
package org.dromara.daxpay.single.sdk.param.trade.transfer;
|
||||
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.single.sdk.model.trade.refund.RefundSyncModel;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayRequest;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import org.dromara.daxpay.single.sdk.util.JsonUtil;
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* 转账订单同步参数
|
||||
* @author xxm
|
||||
* @since 2024/2/7
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class TransferSyncParam extends DaxPayRequest<RefundSyncModel> {
|
||||
|
||||
/** 商户转账号 */
|
||||
|
@@ -1,9 +1,7 @@
|
||||
package org.dromara.daxpay.single.sdk.response;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@@ -12,9 +10,7 @@ import java.time.LocalDateTime;
|
||||
* @author xxm
|
||||
* @since 2024/2/2
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@Data
|
||||
public class DaxPayResult<T> {
|
||||
|
||||
/** 状态码 */
|
||||
|
@@ -0,0 +1,75 @@
|
||||
package org.dromara.daxpay.single.sdk.test.assist;
|
||||
|
||||
import org.dromara.daxpay.single.sdk.code.ChannelEnum;
|
||||
import org.dromara.daxpay.single.sdk.code.SignTypeEnum;
|
||||
import org.dromara.daxpay.single.sdk.model.assist.AuthModel;
|
||||
import org.dromara.daxpay.single.sdk.model.assist.AuthUrlModel;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayConfig;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayKit;
|
||||
import org.dromara.daxpay.single.sdk.param.assist.AuthAndSetParam;
|
||||
import org.dromara.daxpay.single.sdk.param.assist.AuthCodeParam;
|
||||
import org.dromara.daxpay.single.sdk.param.assist.GenerateAuthUrlParam;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import org.dromara.daxpay.single.sdk.util.JsonUtil;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* 认证服务测试类
|
||||
* @author xxm
|
||||
* @since 2024/12/3
|
||||
*/
|
||||
public class AuthAssistTest {
|
||||
@Before
|
||||
public void init() {
|
||||
// 初始化支付配置
|
||||
DaxPayConfig config = DaxPayConfig.builder()
|
||||
.serviceUrl("http://127.0.0.1:9999")
|
||||
.signSecret("123456")
|
||||
.appId("M7934041241299655")
|
||||
.signType(SignTypeEnum.HMAC_SHA256)
|
||||
.build();
|
||||
DaxPayKit.initConfig(config);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取认证链接
|
||||
*/
|
||||
@Test
|
||||
public void generateAuthUrl(){
|
||||
GenerateAuthUrlParam param = new GenerateAuthUrlParam();
|
||||
param.setChannel(ChannelEnum.WECHAT.getCode());
|
||||
param.setClientIp("127.0.0.1");
|
||||
DaxPayResult<AuthUrlModel> execute = DaxPayKit.execute(param);
|
||||
System.out.println(JsonUtil.toJsonStr(execute));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取认证信息
|
||||
*/
|
||||
@Test
|
||||
public void auth(){
|
||||
AuthCodeParam param = new AuthCodeParam();
|
||||
param.setChannel(ChannelEnum.WECHAT.getCode());
|
||||
param.setAuthCode("auth");
|
||||
param.setClientIp("127.0.0.1");
|
||||
DaxPayResult<AuthModel> execute = DaxPayKit.execute(param);
|
||||
System.out.println(JsonUtil.toJsonStr(execute));
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置认证信息. 不需要签名
|
||||
*/
|
||||
@Test
|
||||
public void authAndSet(){
|
||||
AuthAndSetParam param = new AuthAndSetParam();
|
||||
param.setChannel(ChannelEnum.WECHAT.getCode());
|
||||
param.setAuthCode("auth");
|
||||
param.setQueryCode("query13585312378555");
|
||||
param.setClientIp("127.0.0.1");
|
||||
DaxPayResult<Void> execute = DaxPayKit.execute(param,false);
|
||||
System.out.println(JsonUtil.toJsonStr(execute));
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -0,0 +1,57 @@
|
||||
package org.dromara.daxpay.single.sdk.test.trade;
|
||||
|
||||
import org.dromara.daxpay.single.sdk.code.CheckoutTypeEnum;
|
||||
import org.dromara.daxpay.single.sdk.code.SignTypeEnum;
|
||||
import org.dromara.daxpay.single.sdk.model.trade.pay.CheckoutUrlModel;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayConfig;
|
||||
import org.dromara.daxpay.single.sdk.net.DaxPayKit;
|
||||
import org.dromara.daxpay.single.sdk.param.trade.pay.CheckoutCreatParam;
|
||||
import org.dromara.daxpay.single.sdk.response.DaxPayResult;
|
||||
import org.dromara.daxpay.single.sdk.util.JsonUtil;
|
||||
import org.dromara.daxpay.single.sdk.util.PaySignUtil;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 收银台测试类
|
||||
* @author xxm
|
||||
* @since 2024/12/3
|
||||
*/
|
||||
public class CheckoutPayTest {
|
||||
|
||||
@Before
|
||||
public void init() {
|
||||
// 初始化支付配置
|
||||
DaxPayConfig config = DaxPayConfig.builder()
|
||||
.serviceUrl("http://127.0.0.1:9999")
|
||||
.signSecret("123456")
|
||||
.appId("M7934041241299655")
|
||||
.signType(SignTypeEnum.HMAC_SHA256)
|
||||
.build();
|
||||
DaxPayKit.initConfig(config);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取收银台链接
|
||||
*/
|
||||
@Test
|
||||
public void creatCheck() {
|
||||
CheckoutCreatParam param = new CheckoutCreatParam();
|
||||
param.setClientIp("127.0.0.1");
|
||||
param.setBizOrderNo("SDK_"+ System.currentTimeMillis());
|
||||
param.setTitle("测试收银台支付");
|
||||
param.setDescription("这是支付备注");
|
||||
param.setCheckoutType(CheckoutTypeEnum.AGGREGATE.getCode());
|
||||
param.setAmount(BigDecimal.valueOf(1.00));
|
||||
param.setAttach("{回调参数}");
|
||||
param.setAllocation(false);
|
||||
param.setReturnUrl("https://abc.com/returnurl");
|
||||
param.setNotifyUrl("http://127.0.0.1:10880/test/callback/notify");
|
||||
|
||||
DaxPayResult<CheckoutUrlModel> execute = DaxPayKit.execute(param);
|
||||
System.out.println(JsonUtil.toJsonStr(execute));
|
||||
System.out.println(PaySignUtil.hmacSha256Sign(execute, "123456"));
|
||||
}
|
||||
}
|
@@ -17,7 +17,7 @@ import java.util.Objects;
|
||||
@AllArgsConstructor
|
||||
public enum CheckoutAggregateEnum {
|
||||
|
||||
WECHAT("wechat", "微信支付"),
|
||||
WECHAT("wechat_pay", "微信支付"),
|
||||
ALIPAY("alipay", "支付宝"),
|
||||
;
|
||||
|
||||
|
@@ -1,6 +1,8 @@
|
||||
package org.dromara.daxpay.core.param.checkout;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.core.enums.CheckoutAggregateEnum;
|
||||
@@ -15,17 +17,23 @@ import org.dromara.daxpay.core.enums.CheckoutAggregateEnum;
|
||||
@Schema(title = "收银台聚合支付参数")
|
||||
public class CheckoutAggregatePayParam {
|
||||
|
||||
@Schema(description = "要支付的订单号")
|
||||
/** 支付订单号 */
|
||||
@NotBlank(message = "支付订单号不可为空")
|
||||
@Size(max = 32, message = "支付订单号不可超过32位")
|
||||
@Schema(description = "支付订单号")
|
||||
private String orderNo;
|
||||
|
||||
/**
|
||||
* 聚合支付类型
|
||||
* @see CheckoutAggregateEnum
|
||||
*/
|
||||
@NotBlank(message = "聚合支付类型不可为空")
|
||||
@Schema(description = "聚合支付类型")
|
||||
private String aggregateType;
|
||||
|
||||
@Schema(description = "唯一标识")
|
||||
/** 用户唯一标识 */
|
||||
@Size(max = 1024, message = "唯一标识不可超过1024位")
|
||||
@Schema(description = "用户唯一标识")
|
||||
private String openId;
|
||||
|
||||
}
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package org.dromara.daxpay.core.param.checkout;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.core.enums.CheckoutAggregateEnum;
|
||||
@@ -15,8 +16,9 @@ import org.dromara.daxpay.core.enums.CheckoutAggregateEnum;
|
||||
@Schema(title = "获取收银台认证结果参数")
|
||||
public class CheckoutAuthCodeParam {
|
||||
|
||||
/** 要支付的订单号 */
|
||||
@Schema(description = "要支付的订单号")
|
||||
/** 支付订单号 */
|
||||
@NotBlank(message = "支付订单号不可为空")
|
||||
@Schema(description = "支付订单号")
|
||||
private String orderNo;
|
||||
|
||||
/**
|
||||
|
@@ -28,6 +28,7 @@ public class CheckoutCreatParam extends PaymentCommonParam {
|
||||
* 收银台类型
|
||||
* @see CheckoutTypeEnum
|
||||
*/
|
||||
@Size(max = 100, message = "收银台类型不可超过32位")
|
||||
@NotBlank(message = "收银台类型不可为空")
|
||||
private String checkoutType;
|
||||
|
||||
|
@@ -3,7 +3,9 @@ package org.dromara.daxpay.service.controller.unipay;
|
||||
import cn.bootx.platform.core.annotation.IgnoreAuth;
|
||||
import cn.bootx.platform.core.rest.Res;
|
||||
import cn.bootx.platform.core.rest.result.Result;
|
||||
import cn.bootx.platform.core.util.ValidationUtil;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.daxpay.core.param.assist.AuthCodeParam;
|
||||
import org.dromara.daxpay.core.param.assist.GenerateAuthUrlParam;
|
||||
import org.dromara.daxpay.core.result.DaxResult;
|
||||
@@ -13,9 +15,6 @@ import org.dromara.daxpay.core.util.DaxRes;
|
||||
import org.dromara.daxpay.service.common.anno.PaymentVerify;
|
||||
import org.dromara.daxpay.service.service.assist.ChannelAuthService;
|
||||
import org.dromara.daxpay.service.service.assist.PaymentAssistService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
@@ -37,10 +36,10 @@ public class ChannelUniAuthController {
|
||||
|
||||
private final PaymentAssistService paymentAssistService;
|
||||
|
||||
@PaymentVerify
|
||||
@Operation(summary = "获取授权链接")
|
||||
@PostMapping("/generateAuthUrl")
|
||||
public Result<AuthUrlResult> generateAuthUrl(@RequestBody GenerateAuthUrlParam param){
|
||||
ValidationUtil.validateParam(param);
|
||||
paymentAssistService.initMchApp(param.getAppId());
|
||||
return Res.ok(channelAuthService.generateAuthUrl(param));
|
||||
}
|
||||
|
@@ -7,16 +7,14 @@ import cn.bootx.platform.core.util.ValidationUtil;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.daxpay.core.param.checkout.CheckoutAuthCodeParam;
|
||||
import org.dromara.daxpay.core.param.checkout.CheckoutAuthUrlParam;
|
||||
import org.dromara.daxpay.core.param.checkout.CheckoutCreatParam;
|
||||
import org.dromara.daxpay.core.param.checkout.CheckoutPayParam;
|
||||
import org.dromara.daxpay.core.param.checkout.*;
|
||||
import org.dromara.daxpay.core.result.DaxResult;
|
||||
import org.dromara.daxpay.core.result.assist.AuthResult;
|
||||
import org.dromara.daxpay.core.result.checkout.CheckoutAggregateOrderAndConfigResult;
|
||||
import org.dromara.daxpay.core.result.checkout.CheckoutOrderAndConfigResult;
|
||||
import org.dromara.daxpay.core.result.checkout.CheckoutPayResult;
|
||||
import org.dromara.daxpay.core.result.checkout.CheckoutUrlResult;
|
||||
import org.dromara.daxpay.core.result.trade.pay.PayResult;
|
||||
import org.dromara.daxpay.core.util.DaxRes;
|
||||
import org.dromara.daxpay.service.common.anno.PaymentVerify;
|
||||
import org.dromara.daxpay.service.service.checkout.CheckoutQueryService;
|
||||
@@ -28,6 +26,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
* @author xxm
|
||||
* @since 2024/11/26
|
||||
*/
|
||||
@IgnoreAuth
|
||||
@Tag(name = "收银台服务")
|
||||
@RestController
|
||||
@RequestMapping("/unipay/checkout")
|
||||
@@ -43,21 +42,18 @@ public class CheckoutController {
|
||||
return DaxRes.ok(checkoutService.creat(checkoutParam));
|
||||
}
|
||||
|
||||
@IgnoreAuth
|
||||
@Operation(summary = "获取收银台订单和配置信息")
|
||||
@GetMapping("/getOrderAndConfig")
|
||||
public Result<CheckoutOrderAndConfigResult> getOrderAndConfig(String orderNo, String checkoutType){
|
||||
return Res.ok(checkoutQueryService.getOrderAndConfig(orderNo, checkoutType));
|
||||
}
|
||||
|
||||
@IgnoreAuth
|
||||
@Operation(summary = "获取聚合支付配置")
|
||||
@GetMapping("/getAggregateConfig")
|
||||
public Result<CheckoutAggregateOrderAndConfigResult> getAggregateConfig(String orderNo, String aggregateType){
|
||||
return Res.ok(checkoutQueryService.getAggregateConfig(orderNo, aggregateType));
|
||||
}
|
||||
|
||||
@IgnoreAuth
|
||||
@Operation(summary = "获取收银台所需授权链接, 用于获取OpenId一类的信息")
|
||||
@PostMapping("/generateAuthUrl")
|
||||
public Result<String> generateAuthUrl(@RequestBody CheckoutAuthUrlParam param){
|
||||
@@ -65,7 +61,6 @@ public class CheckoutController {
|
||||
return Res.ok(checkoutService.generateAuthUrl(param));
|
||||
}
|
||||
|
||||
@IgnoreAuth
|
||||
@Operation(summary = "获取授权结果")
|
||||
@PostMapping("/auth")
|
||||
public Result<AuthResult> auth(@RequestBody CheckoutAuthCodeParam param){
|
||||
@@ -74,11 +69,21 @@ public class CheckoutController {
|
||||
}
|
||||
|
||||
|
||||
@IgnoreAuth
|
||||
@Operation(summary = "发起支付")
|
||||
@Operation(summary = "发起支付(普通)")
|
||||
@PostMapping("/pay")
|
||||
public Result<CheckoutPayResult> pay(@RequestBody CheckoutPayParam checkoutParam){
|
||||
return Res.ok(checkoutService.pay(checkoutParam));
|
||||
public Result<CheckoutPayResult> pay(@RequestBody CheckoutPayParam param){
|
||||
ValidationUtil.validateParam(param);
|
||||
return Res.ok(checkoutService.pay(param));
|
||||
}
|
||||
|
||||
|
||||
@Operation(summary = "发起支付(聚合)")
|
||||
@PostMapping("/aggregatePay")
|
||||
public Result<PayResult> aggregatePay(@RequestBody CheckoutAggregatePayParam param){
|
||||
ValidationUtil.validateParam(param);
|
||||
return Res.ok(checkoutService.aggregatePay(param));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user