TRX 1 jaar geleden
commit
bd53ab787b
100 gewijzigde bestanden met toevoegingen van 3628 en 0 verwijderingen
  1. 16 0
      .gitignore
  2. 81 0
      SecretKeyClient/pom.xml
  3. 28 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/annotation/PayAnnotationService.java
  4. 12 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/config/PaymentClientConfiguration.java
  5. 8 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/config/PaymentServerConfiguration.java
  6. 24 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/PrePayModel.java
  7. 65 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/RechargeRecordModel.java
  8. 16 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/TotalStatisticsModel.java
  9. 20 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/TransferModel.java
  10. 30 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/WalletFlowModel.java
  11. 46 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/WalletModel.java
  12. 15 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/WalletOrderModel.java
  13. 27 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/WxNotifyResourceModel.java
  14. 35 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/AmountUpdateParam.java
  15. 15 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/ExamineParam.java
  16. 22 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/GetWalletParam.java
  17. 22 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/OrderParam.java
  18. 21 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/QueryWalletParam.java
  19. 40 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/RechargeParam.java
  20. 46 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/RecordSearchParam.java
  21. 31 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/WalletQueryParam.java
  22. 18 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/WxAmount.java
  23. 32 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/WxNotifyParam.java
  24. 37 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/WxPayConfigParam.java
  25. 13 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/WxPayer.java
  26. 63 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/WxPrepayParam.java
  27. 11 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/WxTransferBatchParam.java
  28. 35 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/payChannel/SuperPayChannel.java
  29. 24 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/payChannel/UnionFrictionlessPayChannel.java
  30. 24 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/payChannel/WxPayChannel.java
  31. 45 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/pay/service/BasePayService.java
  32. 34 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/pay/service/OrderPayFeignService.java
  33. 77 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/pay/service/WalletFeignService.java
  34. 10 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/pay/service/impl/DirectPayService.java
  35. 6 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/pay/service/impl/FrictionlessPay.java
  36. 10 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/pay/service/impl/WalletPayService.java
  37. 6 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/pay/service/impl/impl/AliPayDirectPayService.java
  38. 7 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/pay/service/impl/impl/UnionFrictionlessPayService.java
  39. 9 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/pay/service/impl/impl/WeChatDirectPayService.java
  40. 10 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/pay/service/impl/impl/WeChatWalletPayService.java
  41. 27 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/balance/BalanceModel.java
  42. 29 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/balance/BalanceQueryParam.java
  43. 21 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/commn/ClosePayOrderParam.java
  44. 52 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/commn/CreateOrderParam.java
  45. 18 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/commn/PayNotifyParam.java
  46. 15 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/commn/PayOrderParam.java
  47. 50 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/CooperatorParam.java
  48. 19 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/ShopIdParam.java
  49. 28 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/ShopProcessWithdrawParam.java
  50. 18 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/WithDrawOpenParam.java
  51. 20 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/WithQueryParam.java
  52. 16 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/CooperatorSuperParam.java
  53. 25 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/OpenWithdrawParam.java
  54. 72 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/OpenWithdrawResponse.java
  55. 57 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/ProcessWithdrawParam.java
  56. 30 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/ProcessWithdrawResponse.java
  57. 31 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/QueryOrderStatusParam.java
  58. 85 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/QueryOrderStatusResponse.java
  59. 25 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/QueryWithdrawAuthstatusParam.java
  60. 53 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/QueryWithdrawAuthstatusResponse.java
  61. 27 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/QueryWithdrawBalanceParam.java
  62. 33 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/QueryWithdrawBalanceResponse.java
  63. 4 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/package-info.java
  64. 24 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/platmatModel/ShopBalanceModel.java
  65. 95 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/platmatModel/ShopOpenWithDrawModel.java
  66. 87 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/platmatModel/ShopWithDrawRecordModel.java
  67. 52 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/platmatModel/ShopWithDrawRecordSearch.java
  68. 26 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/ApiConfParam.java
  69. 33 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/CardListModel.java
  70. 37 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/CardListQueryParam.java
  71. 40 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/CardListQueryResponse.java
  72. 34 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/GoodsModel.java
  73. 40 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/GoodsParam.java
  74. 37 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/NetPayQueryParam.java
  75. 120 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/NetPayQueryResponse.java
  76. 38 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/OrderQueryParam.java
  77. 104 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/OrderQueryResponse.java
  78. 103 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/PayNotifyResponse.java
  79. 24 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/PayResponseModel.java
  80. 57 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/PromotionModel.java
  81. 26 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/RescissionParam.java
  82. 34 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/SenselessPayAndOpenParam.java
  83. 23 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/SenselessPayAndOpenResponse.java
  84. 62 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/SenselessPayParam.java
  85. 71 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/SenselessPayResponse.java
  86. 55 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/SignNotifyModel.java
  87. 42 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/SignNotifyParam.java
  88. 44 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/SignParam.java
  89. 30 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/SignQueryParam.java
  90. 44 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/SignQueryResponse.java
  91. 26 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/SignResponse.java
  92. 44 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/UacRefundParam.java
  93. 35 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/UacRefundQueryParam.java
  94. 91 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/UacRefundResponse.java
  95. 22 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/UnionPayApi.java
  96. 27 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/UnionSuperParam.java
  97. 72 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/UnionUserOpenInfoModel.java
  98. 31 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/UnionUserOpenInfoSearch.java
  99. 28 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/paymentModel/SignInParam.java
  100. 24 0
      SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/paymentModel/UserRescissionParam.java

+ 16 - 0
.gitignore

@@ -0,0 +1,16 @@
+# IDE specific files
+/.idea/
+*.iml
+*.log
+*.gz
+
+# log
+/logs/
+
+# Compiler generated files
+target/
+
+
+# jrebel
+rebel.xml
+

+ 81 - 0
SecretKeyClient/pom.xml

@@ -0,0 +1,81 @@
+<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>com.github.microservice</groupId>
+		<artifactId>MSModule</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+		<relativePath>../../../super/MSModule</relativePath>
+	</parent>
+
+	<groupId>com.github.microservice.secretKey</groupId>
+	<artifactId>SecretKeyClient</artifactId>
+	<name>SecretKeyClient</name>
+	<properties>
+		<java.version>17</java.version>
+	</properties>
+	<dependencies>
+
+		<dependency>
+			<groupId>com.github.microservice</groupId>
+			<artifactId>PCore</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+
+		<!--应用中心客户端-->
+		<dependency>
+			<groupId>com.github.microservice.components</groupId>
+			<artifactId>ApplicationClient</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+
+		<!-- 文档 -->
+		<dependency>
+			<groupId>com.github.microservice.components</groupId>
+			<artifactId>Swagger2</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+
+		<!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all -->
+		<dependency>
+			<groupId>cn.hutool</groupId>
+			<artifactId>hutool-all</artifactId>
+			<version>5.8.20</version>
+		</dependency>
+
+		<dependency>
+			<groupId>com.github.wechatpay-apiv3</groupId>
+			<artifactId>wechatpay-java</artifactId>
+			<version>0.2.12</version>
+		</dependency>
+
+		<dependency>
+			<groupId>com.github.microservice.auth</groupId>
+			<artifactId>AuthClient</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+
+		<dependency>
+			<groupId>cn.afterturn</groupId>
+			<artifactId>easypoi-base</artifactId>
+			<version>4.1.0</version>
+		</dependency>
+
+		<!--   配置工程	 -->
+		<dependency>
+			<groupId>com.zswl</groupId>
+			<artifactId>ConfigModel</artifactId>
+			<version>1.0.0-SNAPSHOT</version>
+		</dependency>
+
+		<!--    全卡业务    -->
+		<dependency>
+			<groupId>com.github.microservice.card</groupId>
+			<artifactId>FullCardClient</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+
+	</dependencies>
+
+</project>

+ 28 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/annotation/PayAnnotationService.java

@@ -0,0 +1,28 @@
+package com.zhongshu.secretKey.client.annotation;
+
+import com.github.microservice.types.payment.PaymentType;
+
+import java.lang.annotation.*;
+
+@Target({ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+@Inherited
+public @interface PayAnnotationService {
+
+    /**
+     * @return
+     */
+    String remark() default "";
+
+    /**
+     * 对应支付方式
+     *
+     * @return
+     */
+    PaymentType paymentType();
+
+    /**
+     * @return
+     */
+    Class<?> serviceName() default Void.class;
+}

+ 12 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/config/PaymentClientConfiguration.java

@@ -0,0 +1,12 @@
+package com.zhongshu.secretKey.client.config;
+
+
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@EnableFeignClients("com.zhongshu.secretKey.client")
+@ComponentScan({"com.zhongshu.secretKey.client"})
+public class PaymentClientConfiguration {
+}

+ 8 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/config/PaymentServerConfiguration.java

@@ -0,0 +1,8 @@
+package com.zhongshu.secretKey.client.config;
+
+
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class PaymentServerConfiguration {
+}

+ 24 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/PrePayModel.java

@@ -0,0 +1,24 @@
+package com.zhongshu.secretKey.client.model;
+
+import lombok.Data;
+
+/**
+ * 用户下单后返回给前端调用支付所属参数
+ * @author wjf
+ * @date 2024/7/24
+ */
+@Data
+public class PrePayModel {
+
+    private String timeStamp;
+
+    private String nonceStr;
+
+    private String packAge;
+
+    private String signType;
+
+    private String paySign;
+
+    private String prepayId;
+}

+ 65 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/RechargeRecordModel.java

@@ -0,0 +1,65 @@
+package com.zhongshu.secretKey.client.model;
+
+
+import com.github.microservice.types.payment.PaymentType;
+import com.github.microservice.types.OrderState;
+import com.zhongshu.secretKey.client.types.TradeType;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author wjf
+ * @date 2024/7/25
+ */
+@Data
+public class RechargeRecordModel {
+
+    private String id;
+
+    private Long createTime;
+
+    private Long updateTime;
+
+    @Schema(name = "oid", description = "项目id")
+    private String oid;
+
+    @Schema(name = "userId", description = "用户id")
+    private String userId;
+
+    @Schema(name = "paymentType", description = "支付方式")
+    private PaymentType paymentType;
+
+    @Schema(name = "description", description = "商品描述(必填)")
+    private String description;
+
+    @Schema(name = "amount", description = "订单金额")
+    private Integer total;
+
+    @Schema(name = "outTradeNo", description = "商户订单号(必填)")
+    private String outTradeNo;
+
+    @Schema(name = "rechargeState", description = "订单状态")
+    private OrderState rechargeState;
+
+    @Schema(name = "tradeTime", description = "交易时间")
+    private Long tradeTime;
+
+    @Schema(name = "prePayModel", description = "调用微信支付参数")
+    private PrePayModel prePayModel;
+
+    @Schema(name = "tradeType", description = "交易类型")
+    private TradeType tradeType;
+
+    @Schema(name = "failReason", description = "失败原因")
+    private String failReason;
+
+    private Object userInfo;
+
+    private TransferModel transferModel;
+
+    private String remark;
+
+    private WalletModel walletModel;
+
+
+}

+ 16 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/TotalStatisticsModel.java

@@ -0,0 +1,16 @@
+package com.zhongshu.secretKey.client.model;
+
+import lombok.Data;
+
+/**
+ * @author wjf
+ * @date 2024/7/31
+ */
+
+@Data
+public class TotalStatisticsModel {
+
+    private String id;
+
+    private Integer totalAmount;
+}

+ 20 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/TransferModel.java

@@ -0,0 +1,20 @@
+package com.zhongshu.secretKey.client.model;
+
+import lombok.Data;
+
+/**
+ * @author wjf
+ * @date 2024/7/30
+ */
+@Data
+public class TransferModel {
+
+
+    private String outBatchNo;
+
+    private String batchId;
+
+    private String createTime;
+
+    private String batchStatus;
+}

+ 30 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/WalletFlowModel.java

@@ -0,0 +1,30 @@
+package com.zhongshu.secretKey.client.model;
+
+import com.zhongshu.secretKey.client.types.TradeType;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author wjf
+ * @date 2024/7/26
+ */
+@Data
+public class WalletFlowModel {
+
+    @Schema(description = "钱包id")
+    private WalletModel walletModel;
+
+    @Schema(description = "订单号")
+    private String outTradeNo;
+
+    @Schema(description = "金额")
+    private BigDecimal total;
+
+    @Schema(description = "流水类型:充值/消费/提现")
+    private TradeType tradeType;
+
+    @Schema(description = "附加数据")
+    private String attach;
+}

+ 46 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/WalletModel.java

@@ -0,0 +1,46 @@
+package com.zhongshu.secretKey.client.model;
+
+import com.zhongshu.secretKey.client.types.WalletState;
+import com.zhongshu.secretKey.client.types.WalletType;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author wjf
+ * @date 2024/7/26
+ */
+@Data
+public class WalletModel {
+
+    @Schema(description = "数据ID")
+    private String id;
+
+    @Schema(description = "创建时间")
+    private Long createTime;
+
+    @Schema(description = "更新时间")
+    private Long updateTime;
+
+    @Schema(description = "项目id")
+    private String oid;
+
+    @Schema(description = "用户userId")
+    private String userId;
+
+    @Schema(description = "可用金额,单位:分")
+    private BigDecimal amount = BigDecimal.ZERO;
+
+    @Schema(description = "账户金额,单位:分")
+    private BigDecimal totalAmount = BigDecimal.ZERO;
+
+    @Schema(description = "钱包状态:是否可用")
+    private WalletState dataState = WalletState.Enable;
+
+    @Schema(description = "钱包类型")
+    private WalletType walletType;
+
+    @Schema(description = "openid")
+    private String openid;
+}

+ 15 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/WalletOrderModel.java

@@ -0,0 +1,15 @@
+package com.zhongshu.secretKey.client.model;
+
+import lombok.Data;
+
+/**
+ * @author wjf
+ * @date 2024/7/31
+ */
+@Data
+public class WalletOrderModel {
+
+    private Integer orderSize;
+
+    private Integer total;
+}

+ 27 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/WxNotifyResourceModel.java

@@ -0,0 +1,27 @@
+package com.zhongshu.secretKey.client.model;
+
+import lombok.Data;
+
+/**
+ * @author wjf
+ * @date 2024/7/23
+ */
+@Data
+public class WxNotifyResourceModel {
+
+    //加密算法
+    private String algorithm;
+
+    //Base64编码后的开启/停用结果数据密文
+    private String ciphertext;
+
+    //附加数据
+    private String associated_data;
+
+    //原始回调类型
+    private String original_type;
+
+    //加密使用的随机串
+    private String nonce;
+
+}

+ 35 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/AmountUpdateParam.java

@@ -0,0 +1,35 @@
+package com.zhongshu.secretKey.client.model.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author wjf
+ * @date 2024/7/29
+ */
+@Data
+public class AmountUpdateParam {
+
+    @Schema(description = "oid")
+    private String oid;
+
+    @Schema(description = "用户id")
+    private String userId;
+
+    @Schema(description = "商户id")
+    private String shopId;
+
+    @Schema(description = "学校id")
+    private String schoolId;
+
+    @Schema(description = "交易金额")
+    private BigDecimal total = BigDecimal.ZERO;
+
+    @Schema(description = "订单号")
+    private String outTradeNo;
+
+    @Schema(description = "附加信息")
+    private Object attach;
+}

+ 15 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/ExamineParam.java

@@ -0,0 +1,15 @@
+package com.zhongshu.secretKey.client.model.param;
+
+import lombok.Data;
+
+/**
+ * @author wjf
+ * @date 2024/7/31
+ */
+@Data
+public class ExamineParam {
+
+    private String outTradeNo;
+
+    private String remark;
+}

+ 22 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/GetWalletParam.java

@@ -0,0 +1,22 @@
+package com.zhongshu.secretKey.client.model.param;
+
+import com.zhongshu.secretKey.client.types.WalletType;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author wjf
+ * @date 2024/7/29
+ */
+@Data
+public class GetWalletParam {
+
+    @Schema(name = "appid", description = "小程序appid")
+    private String appid;
+
+    @Schema(name = "walletType", description = "钱包类型:Shop, User", example = "User")
+    private WalletType walletType;
+
+    @Schema(name = "shopId", description = "商户oid")
+    private String shopId;
+}

+ 22 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/OrderParam.java

@@ -0,0 +1,22 @@
+package com.zhongshu.secretKey.client.model.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * 充值下单参数
+ * @author wjf
+ * @date 2024/7/25
+ */
+@Data
+public class OrderParam {
+
+    @Schema(name = "outTradeNo", description = "商户订单号(必填)")
+    private String outTradeNo;
+
+    @Schema(name = "openid", description = "微信用户openid", example = "123456")
+    private String openid;
+
+    @Schema(name = "appid", description = "appid", example = "123456")
+    private String appid;
+}

+ 21 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/QueryWalletParam.java

@@ -0,0 +1,21 @@
+package com.zhongshu.secretKey.client.model.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author wjf
+ * @date 2024/7/29
+ */
+@Data
+public class QueryWalletParam {
+
+    @Schema(name = "walletId", description = "钱包id")
+    private String walletId;
+
+    @Schema(name = "year", description = "年")
+    private Integer year;
+
+    @Schema(name = "month", description = "月")
+    private Integer month;
+}

+ 40 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/RechargeParam.java

@@ -0,0 +1,40 @@
+package com.zhongshu.secretKey.client.model.param;
+
+import com.github.microservice.types.payment.PaymentType;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author wjf
+ * @date 2024/7/25
+ */
+@Data
+public class RechargeParam {
+
+    @Schema(name = "oid", description = "项目id", example = "")
+    private String oid;
+
+    @Schema(name = "schoolId", description = "学校id", example = "")
+    private String schoolId;
+
+    @Schema(name = "appid", description = "appid")
+    private String appid;
+
+    @Schema(name = "walletId", description = "钱包id", example = "")
+    private String walletId;
+
+    @Schema(name = "paymentType", description = "支付方式", example = "WeChat")
+    private PaymentType paymentType = PaymentType.WeChat;
+
+    // 商品描述(必填)
+    @Schema(name = "description", description = "商品描述(必填)", example = "充值服务")
+    private String description;
+
+    // 订单金额(必填)
+    @Schema(name = "total", description = "订单金额", example = "")
+    private Integer total;
+
+    @Schema(name = "openid", description = "微信用户openid", example = "123456")
+    private String openid;
+
+}

+ 46 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/RecordSearchParam.java

@@ -0,0 +1,46 @@
+package com.zhongshu.secretKey.client.model.param;
+
+import com.github.microservice.types.payment.PaymentType;
+import com.github.microservice.types.OrderState;
+import com.zhongshu.secretKey.client.types.TradeType;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author wjf
+ * @date 2024/7/31
+ */
+@Data
+public class RecordSearchParam {
+
+    @Schema(description = "项目oid")
+    private String projectOid;
+
+    @Schema(description = "部门id")
+    private String departmentId;
+
+    @Schema(description = "用户id")
+    private String userId;
+
+    @Schema(description = "商户oid")
+    private String shopId;
+
+    @Schema(description = "学校oid")
+    private String schoolId;
+
+    @Schema(description = "支付方式")
+    private PaymentType paymentType;
+
+    @Schema(description = "支付状态")
+    private OrderState rechargeState;
+
+    @Schema(description = "交易类型")
+    private TradeType tradeType;
+
+    @Schema(description = "订单号")
+    private String outTradeNo;
+
+    @Schema(description = "人员编号")
+    private String userCode;
+
+}

+ 31 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/WalletQueryParam.java

@@ -0,0 +1,31 @@
+package com.zhongshu.secretKey.client.model.param;
+
+import com.zhongshu.secretKey.client.types.WalletType;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author TRX
+ * @date 2024/8/22
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class WalletQueryParam {
+
+    @Schema(description = "项目Oid")
+    private String projectOid;
+
+    @Schema(description = "钱包类型")
+    private WalletType walletType;
+
+    @Schema(description = "商户oid")
+    private String shopId;
+
+    @Schema(description = "用户userId")
+    private String userId;
+}

+ 18 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/WxAmount.java

@@ -0,0 +1,18 @@
+package com.zhongshu.secretKey.client.model.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author wjf
+ * @date 2024/7/23
+ */
+@Data
+public class WxAmount {
+
+    @Schema(name = "金额(分)", required = true, example = "100")
+    private Integer total;
+
+    @Schema(name = "货币种类:境内支持人民币(CNY)", required = false, example = "CNY")
+    private String currency = "CNY";
+}

+ 32 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/WxNotifyParam.java

@@ -0,0 +1,32 @@
+package com.zhongshu.secretKey.client.model.param;
+
+import com.zhongshu.secretKey.client.model.WxNotifyResourceModel;
+import lombok.Data;
+
+/**
+ * 用于接受微信通知的参数
+ * @author wjf
+ * @date 2024/7/23
+ */
+@Data
+public class WxNotifyParam {
+
+    private String id;
+
+    //通知创建的时间
+    private String create_time;
+
+    //通知的类型
+    private String event_type;
+
+    //通知的资源数据类型
+    private String resource_type;
+
+    //通知资源数据
+    private WxNotifyResourceModel resource;
+
+    //回调摘要
+    private String summary;
+
+
+}

+ 37 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/WxPayConfigParam.java

@@ -0,0 +1,37 @@
+package com.zhongshu.secretKey.client.model.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * 项目绑定微信支付参数
+ * @author wjf
+ * @date 2024/7/25
+ */
+@Data
+public class WxPayConfigParam {
+
+    @Schema(description = "项目id")
+    private String oid;
+
+    @Schema(description = "appid")
+    private String appid;
+
+    @Schema(description = "商户证书序列号")
+    public String mchSerialNo;
+
+    @Schema(description = "商户id")
+    public String mchId;
+
+    @Schema(description = "API V3密钥")
+    public String apiV3Key;
+
+    @Schema(description = "认证类型")
+    public String AuthenticationType;
+
+    @Schema(description = "私钥地址")
+    public String privateKeyPath;
+
+    @Schema(description = "回调地址")
+    private String notifyUrl;
+}

+ 13 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/WxPayer.java

@@ -0,0 +1,13 @@
+package com.zhongshu.secretKey.client.model.param;
+
+import lombok.Data;
+
+/**
+ * @author wjf
+ * @date 2024/7/23
+ */
+@Data
+public class WxPayer {
+
+    private String openid;
+}

+ 63 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/WxPrepayParam.java

@@ -0,0 +1,63 @@
+package com.zhongshu.secretKey.client.model.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 微信支付下单参数
+ * @author wjf
+ * @date 2024/7/23
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class WxPrepayParam {
+
+//    // 公众号ID(必填)
+//    private String appid;
+//
+//    // 直连商户号(必填)
+//    private String mchid;
+
+    // 项目id
+    @Schema(name = "oid", description = "项目id", required = true, example = "123456")
+    private String oid;
+
+    @Schema(name = "jscode", description = "微信授权code", required = true, example = "123456")
+    private String jscode;
+
+    // 商品描述(必填)
+    @Schema(name = "description", description = "商品描述(必填)", required = true, example = "充值服务")
+    private String description;
+
+//    // 商户订单号(必填)
+//    private String outTradeNo;
+
+//    // 交易结束时间 yyyy-MM-DDTHH:mm:ss+TIMEZONE
+//    private String timeExpire;
+
+    // 附加数据
+    @Schema(name = "attach", description = "附加数据", required = false, example = "附加数据")
+    private String attach;
+
+//    // 通知地址(必填)
+//    private String notifyUrl;
+
+    // 订单金额(必填)
+    @Schema(name = "amount", description = "订单金额",required = true, example = "{\"total\":100,\"currency\":\"CNY\"}")
+    private WxAmount amount;
+
+//    // 支付者信息:openid(必填)
+//    private WxPayer payer;
+
+    // 交易地点
+    @Schema(name = "sceneInfo", description = "交易地点",required = true, example = "云芯客--钱包--微信充值")
+    private String sceneInfo;
+
+//    //下单类型
+//    private WxPayType wxPayType;
+
+
+}

+ 11 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/param/WxTransferBatchParam.java

@@ -0,0 +1,11 @@
+package com.zhongshu.secretKey.client.model.param;
+
+import lombok.Data;
+
+/**
+ * @author wjf
+ * @date 2024/7/24
+ */
+@Data
+public class WxTransferBatchParam {
+}

+ 35 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/payChannel/SuperPayChannel.java

@@ -0,0 +1,35 @@
+package com.zhongshu.secretKey.client.model.payChannel;
+
+
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.zhongshu.secretKey.client.types.PayChannelType;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Map;
+
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "_type")
+@JsonSubTypes({
+        @JsonSubTypes.Type(value = WxPayChannel.class, name = "WxPayChannel"),  // 微信
+        @JsonSubTypes.Type(value = UnionFrictionlessPayChannel.class, name = "UnionFrictionlessPayChannel"), // 银联无感支付
+})
+public abstract class SuperPayChannel {
+
+    //扩展字段
+    @Getter
+    @Setter
+    private Map<String, Object> _other;
+
+    // 支付过期时间 毫秒
+    @Getter
+    private Long payExpireTime = 15 * 60 * 1000L;
+
+    /**
+     * 类型
+     *
+     * @return
+     */
+    public abstract PayChannelType payType();
+
+}

+ 24 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/payChannel/UnionFrictionlessPayChannel.java

@@ -0,0 +1,24 @@
+package com.zhongshu.secretKey.client.model.payChannel;
+
+import com.zhongshu.secretKey.client.types.PayChannelType;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+
+/**
+ * 银联无感支付渠道
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class UnionFrictionlessPayChannel extends SuperPayChannel {
+
+    @Getter
+    private Long payExpireTime = 10 * 60 * 1000L;
+
+    @Override
+    public PayChannelType payType() {
+        return PayChannelType.UnionFrictionlessPay;
+    }
+}

+ 24 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/model/payChannel/WxPayChannel.java

@@ -0,0 +1,24 @@
+package com.zhongshu.secretKey.client.model.payChannel;
+
+import com.zhongshu.secretKey.client.types.PayChannelType;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+
+/**
+ * 微信支付渠道
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class WxPayChannel extends SuperPayChannel {
+
+    @Getter
+    private Long payExpireTime = 15 * 60 * 1000L;
+
+    @Override
+    public PayChannelType payType() {
+        return PayChannelType.WeChat;
+    }
+}

+ 45 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/pay/service/BasePayService.java

@@ -0,0 +1,45 @@
+package com.zhongshu.secretKey.client.pay.service;
+
+import com.github.microservice.net.ResultContent;
+import com.zhongshu.secretKey.client.model.WalletModel;
+import com.zhongshu.secretKey.client.model.param.OrderParam;
+import com.zhongshu.secretKey.client.model.param.WalletQueryParam;
+import com.zhongshu.secretKey.client.payModel.balance.BalanceModel;
+import com.zhongshu.secretKey.client.payModel.balance.BalanceQueryParam;
+import com.zhongshu.secretKey.client.payModel.commn.ClosePayOrderParam;
+import com.zhongshu.secretKey.client.payModel.commn.CreateOrderParam;
+import com.zhongshu.secretKey.client.payModel.commn.PayNotifyParam;
+import com.zhongshu.secretKey.client.payModel.commn.PayOrderParam;
+import jakarta.servlet.http.HttpServletRequest;
+
+public abstract class BasePayService {
+
+    // 创建并支付订单
+    public abstract ResultContent createAndPayOrder(CreateOrderParam param);
+
+    // 查询付款账户信息
+    public abstract ResultContent<WalletModel> getWallet(WalletQueryParam param);
+
+    /**
+     * 查询渠道余额
+     *
+     * @param param
+     * @return
+     */
+    public ResultContent<BalanceModel> queryBalance(BalanceQueryParam param) {
+        return ResultContent.buildFail("当前渠道不支持");
+    }
+
+    // 根据本地 创建渠道支付订单
+    public abstract ResultContent createChannelOrder(OrderParam param);
+
+    // 支付订单
+    public abstract ResultContent payOrder(PayOrderParam param);
+
+    // 支付回调
+    public abstract ResultContent payNotify(HttpServletRequest request, PayNotifyParam param);
+
+    // 关闭支付订单
+    public abstract ResultContent closePayOrder(ClosePayOrderParam param);
+
+}

+ 34 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/pay/service/OrderPayFeignService.java

@@ -0,0 +1,34 @@
+package com.zhongshu.secretKey.client.pay.service;
+
+import com.github.microservice.net.ResultContent;
+import com.zhongshu.secretKey.client.payModel.balance.BalanceModel;
+import com.zhongshu.secretKey.client.payModel.balance.BalanceQueryParam;
+import com.zhongshu.secretKey.client.payModel.commn.CreateOrderParam;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import javax.validation.Valid;
+
+/**
+ * @author
+ */
+@FeignClient("paymentserver/manager/orderPay")
+public interface OrderPayFeignService {
+
+    /**
+     * 创建订单和支付
+     */
+    @RequestMapping(value = "createAndPay", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
+    ResultContent createAndPay(@RequestBody @Valid CreateOrderParam param);
+
+
+    /**
+     * 查询余额
+     */
+    @RequestMapping(value = "queryBalance", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
+    ResultContent<BalanceModel> queryBalance(@RequestBody @Valid BalanceQueryParam param);
+
+}

+ 77 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/pay/service/WalletFeignService.java

@@ -0,0 +1,77 @@
+package com.zhongshu.secretKey.client.pay.service;
+
+import com.github.microservice.net.ResultContent;
+import com.zhongshu.secretKey.client.model.WalletModel;
+import com.zhongshu.secretKey.client.model.param.AmountUpdateParam;
+import com.zhongshu.secretKey.client.types.WalletType;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * @author wjf
+ * @date 2024/7/26
+ */
+@FeignClient("paymentserver/manager/wallet")
+public interface WalletFeignService {
+
+    /** 获取钱包信息 */
+    @RequestMapping(value = "getWallet", method = RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
+    ResultContent<WalletModel> getWallet(
+            @RequestParam("oid") String oid,
+            @RequestParam("walletType") WalletType walletType,
+            @RequestParam("shopId") String shopId,
+            @RequestParam ("userId")String userId);
+
+
+
+
+    /** 充值 */
+    @RequestMapping(value = "recharge", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
+    ResultContent recharge(@RequestBody AmountUpdateParam param);
+
+    /** 消费 */
+    @RequestMapping(value = "consume", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
+    ResultContent consume(@RequestBody AmountUpdateParam param);
+
+
+
+//    /** 用户发起退款 */
+//    @RequestMapping(value = "frozen", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
+//    ResultContent frozen(@RequestBody AmountUpdateParam param);
+//
+//    /** 退款(审批失败/取消) */
+//    @RequestMapping(value = "cancelFrozen", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
+//    ResultContent cancelFrozen(@RequestBody AmountUpdateParam param);
+
+    /** 退款 */
+    @RequestMapping(value = "refund", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
+    ResultContent refund(@RequestBody AmountUpdateParam param);
+
+
+//    /** 消费/退款 */
+//    @RequestMapping(value = "tradeWallet", method = RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
+//    ResultContent tradeWallet(@RequestBody WalletFlowModel param);
+
+//    /** 增加可用余额 */
+//    @RequestMapping(value = "addAmount", method = RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
+//    ResultContent addAmount(@RequestParam("walletId")String walletId, @RequestParam("total") BigDecimal total, @RequestParam("outTradeNo") String outTradeNo, @RequestParam("type") TradeType type, @RequestParam("attach")String attach);
+//
+//    /** 增加总金额 */
+//    @RequestMapping(value = "addTotalAmount", method = RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
+//    ResultContent addTotalAmount(@RequestParam("walletId")String walletId, @RequestParam("total") BigDecimal total, @RequestParam("outTradeNo") String outTradeNo, @RequestParam("type") TradeType type, @RequestParam("attach")String attach);
+//
+//    /** 减少可用余额 */
+//    @RequestMapping(value = "subtractAmount", method = RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
+//    ResultContent subtractAmount(@RequestParam("walletId")String walletId, @RequestParam("total") BigDecimal total, @RequestParam("outTradeNo") String outTradeNo, @RequestParam("type") TradeType type, @RequestParam("attach")String attach);
+//
+//    /** 减少总金额 */
+//    @RequestMapping(value = "subtractTotalAmount", method = RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
+//    ResultContent subtractTotalAmount(@RequestParam("walletId")String walletId, @RequestParam("total") BigDecimal total, @RequestParam("outTradeNo") String outTradeNo, @RequestParam("type") TradeType type, @RequestParam("attach")String attach);
+
+    /** 查询钱包流水 */
+//    List<WalletFlowModel> queryWalletFlow(String walletId);
+}

+ 10 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/pay/service/impl/DirectPayService.java

@@ -0,0 +1,10 @@
+package com.zhongshu.secretKey.client.pay.service.impl;
+
+
+import com.zhongshu.secretKey.client.pay.service.BasePayService;
+
+/**
+ * 通用自营支付
+ */
+public abstract class DirectPayService extends BasePayService {
+}

+ 6 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/pay/service/impl/FrictionlessPay.java

@@ -0,0 +1,6 @@
+package com.zhongshu.secretKey.client.pay.service.impl;
+
+import com.zhongshu.secretKey.client.pay.service.BasePayService;
+
+public abstract class FrictionlessPay extends BasePayService {
+}

+ 10 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/pay/service/impl/WalletPayService.java

@@ -0,0 +1,10 @@
+package com.zhongshu.secretKey.client.pay.service.impl;
+
+import com.zhongshu.secretKey.client.pay.service.BasePayService;
+
+/**
+ * 钱包支付
+ */
+public abstract class WalletPayService extends BasePayService {
+
+}

+ 6 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/pay/service/impl/impl/AliPayDirectPayService.java

@@ -0,0 +1,6 @@
+package com.zhongshu.secretKey.client.pay.service.impl.impl;
+
+import com.zhongshu.secretKey.client.pay.service.impl.DirectPayService;
+
+public abstract class AliPayDirectPayService extends DirectPayService {
+}

+ 7 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/pay/service/impl/impl/UnionFrictionlessPayService.java

@@ -0,0 +1,7 @@
+package com.zhongshu.secretKey.client.pay.service.impl.impl;
+
+import com.zhongshu.secretKey.client.pay.service.impl.FrictionlessPay;
+
+public abstract class UnionFrictionlessPayService extends FrictionlessPay {
+
+}

+ 9 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/pay/service/impl/impl/WeChatDirectPayService.java

@@ -0,0 +1,9 @@
+package com.zhongshu.secretKey.client.pay.service.impl.impl;
+
+import com.zhongshu.secretKey.client.pay.service.impl.DirectPayService;
+
+/**
+ * 微信支付 自营支付
+ */
+public abstract class WeChatDirectPayService extends DirectPayService {
+}

+ 10 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/pay/service/impl/impl/WeChatWalletPayService.java

@@ -0,0 +1,10 @@
+package com.zhongshu.secretKey.client.pay.service.impl.impl;
+
+import com.zhongshu.secretKey.client.pay.service.impl.WalletPayService;
+
+/**
+ * 微信 - 钱包支付
+ */
+public abstract class WeChatWalletPayService extends WalletPayService {
+
+}

+ 27 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/balance/BalanceModel.java

@@ -0,0 +1,27 @@
+package com.zhongshu.secretKey.client.payModel.balance;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+/**
+ * 查询余额返回
+ *
+ * @author TRX
+ * @date 2024/9/23
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class BalanceModel {
+
+    @Schema(description = "账户金额,单位:分")
+    private BigDecimal totalAmount = BigDecimal.ZERO;
+
+    @Schema(description = "可用金额,单位:分")
+    private BigDecimal amount = BigDecimal.ZERO;
+
+}

+ 29 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/balance/BalanceQueryParam.java

@@ -0,0 +1,29 @@
+package com.zhongshu.secretKey.client.payModel.balance;
+
+import com.github.microservice.pay.params.BasePayParam;
+import com.zhongshu.secretKey.client.types.WalletType;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 查询余额
+ *
+ * @author TRX
+ * @date 2024/9/23
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class BalanceQueryParam extends BasePayParam {
+
+    @Schema(description = "钱包类型")
+    private WalletType walletType;
+
+    @Schema(description = "商户oid")
+    private String shopId;
+
+    @Schema(description = "用户userId")
+    private String userId;
+}

+ 21 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/commn/ClosePayOrderParam.java

@@ -0,0 +1,21 @@
+package com.zhongshu.secretKey.client.payModel.commn;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author TRX
+ * @date 2024/8/22
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class ClosePayOrderParam {
+
+    @Schema(description = "商户订单号(必填)")
+    private String outTradeNo;
+}

+ 52 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/commn/CreateOrderParam.java

@@ -0,0 +1,52 @@
+package com.zhongshu.secretKey.client.payModel.commn;
+
+import com.github.microservice.pay.params.BasePayParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotEmpty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+/**
+ * 创建支付订单
+ *
+ * @author TRX
+ * @date 2024/8/22
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class CreateOrderParam extends BasePayParam {
+
+    @Schema(description = "用户id")
+    private String userId;
+
+    @Schema(description = "商户id")
+    private String shopId;
+
+    @Schema(description = "商户号, 银联端配置的商户号")
+    private String mid;
+
+    @Schema(description = "学校id")
+    private String schoolId;
+
+    @Schema(description = "交易金额")
+    private BigDecimal total = BigDecimal.ZERO;
+
+    @Schema(description = "订单号")
+    @NotEmpty(message = "订单号不能为空")
+    private String outTradeNo;
+
+    @Schema(description = "附加信息")
+    private Object attach;
+
+    @Schema(description = "商品描述")
+    private String description;
+
+    @Schema(description = "商品信息")
+    private Object goodsInfo;
+}

+ 18 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/commn/PayNotifyParam.java

@@ -0,0 +1,18 @@
+package com.zhongshu.secretKey.client.payModel.commn;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 支付结果处理参数
+ *
+ * @author TRX
+ * @date 2024/8/22
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class PayNotifyParam {
+    private String outTradeNo;
+}

+ 15 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/commn/PayOrderParam.java

@@ -0,0 +1,15 @@
+package com.zhongshu.secretKey.client.payModel.commn;
+
+import com.github.microservice.pay.params.BasePayParam;
+import lombok.Builder;
+import lombok.Data;
+
+/**
+ * @author TRX
+ * @date 2024/8/23
+ */
+@Data
+@Builder
+public class PayOrderParam extends BasePayParam {
+    private String outTradeNo;
+}

+ 50 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/CooperatorParam.java

@@ -0,0 +1,50 @@
+package com.zhongshu.secretKey.client.payModel.cooperator;
+
+import com.github.microservice.types.payment.PaymentType;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.Size;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.internal.build.AllowPrintStacktrace;
+
+/**
+ * 提现参数
+ *
+ * @author TRX
+ * @date 2024/9/5
+ */
+@Data
+@AllowPrintStacktrace
+@NoArgsConstructor
+public class CooperatorParam {
+
+    @Schema(description = "支付方式")
+    private PaymentType paymentType;
+
+    @Schema(description = "项目oid")
+    private String projectOid;
+
+    @Schema(description = "用户id")
+    private String userId;
+
+    @Schema(description = "学校oid")
+    private String schoolId;
+
+    @Schema(description = "商户oid")
+    @NotEmpty(message = "商户oid不能为空")
+    private String shopId;
+
+    @Schema(description = "提现金额,单位分")
+    @Min(value = 1, message = "提现金额必须大于等于1")
+    private Integer withdrawAmt;
+
+    @Schema(description = "提现类型 0 - D0 1 - D1(对公对私是TN内部维护)")
+    private String withdrawType = "0";
+
+    @Schema(description = "提现备注")
+    @Size(max = 50)
+    private String remark;
+
+}

+ 19 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/ShopIdParam.java

@@ -0,0 +1,19 @@
+package com.zhongshu.secretKey.client.payModel.cooperator;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author TRX
+ * @date 2024/9/6
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ShopIdParam {
+
+    @Schema(description = "商户oid", defaultValue = "66d7c48f75f8672c05508f98")
+    private String shopId;
+}

+ 28 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/ShopProcessWithdrawParam.java

@@ -0,0 +1,28 @@
+package com.zhongshu.secretKey.client.payModel.cooperator;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.Size;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 提现
+ *
+ * @author TRX
+ * @date 2024/9/6
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ShopProcessWithdrawParam extends ShopIdParam {
+
+    @Schema(description = "提现金额,单位分")
+    @Min(value = 1, message = "提现金额必须大于等于1")
+    private Integer withdrawAmt;
+
+    @Schema(description = "提现备注")
+    @Size(max = 50)
+    private String remark;
+}

+ 18 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/WithDrawOpenParam.java

@@ -0,0 +1,18 @@
+package com.zhongshu.secretKey.client.payModel.cooperator;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author TRX
+ * @date 2024/9/6
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class WithDrawOpenParam {
+    @Schema(description = "商户oid", defaultValue = "66d7c48f75f8672c05508f98")
+    private String shopOid = "";
+}

+ 20 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/WithQueryParam.java

@@ -0,0 +1,20 @@
+package com.zhongshu.secretKey.client.payModel.cooperator;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotEmpty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author TRX
+ * @date 2024/9/6
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class WithQueryParam {
+    @Schema(description = "提现订单号")
+    @NotEmpty(message = "订单号不能为空")
+    private String sysOrderId;
+}

+ 16 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/CooperatorSuperParam.java

@@ -0,0 +1,16 @@
+package com.zhongshu.secretKey.client.payModel.cooperator.model;
+
+import com.zhongshu.card.client.utils.DateUtils;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author TRX
+ * @date 2024/8/27
+ */
+@Data
+public class CooperatorSuperParam {
+
+    @Schema(description = "报文请求时间, 格式:yyyyMMddHHmmss,请求时间,与当前时间差不能超过5分钟")
+    private String reqTs = DateUtils.paresTime(System.currentTimeMillis(), DateUtils.unionAuth);
+}

+ 25 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/OpenWithdrawParam.java

@@ -0,0 +1,25 @@
+package com.zhongshu.secretKey.client.payModel.cooperator.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.internal.build.AllowPrintStacktrace;
+
+/**
+ * 收钱吧-平台方通知开通D+0提现 参数
+ *
+ * @author TRX
+ * @date 2024/9/5
+ */
+@Data
+@AllowPrintStacktrace
+@NoArgsConstructor
+public class OpenWithdrawParam extends CooperatorSuperParam {
+
+    @Schema(description = "系统编号")
+    private String sysId;
+
+    @Schema(description = "商户号")
+    private String mchntNo;
+
+}

+ 72 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/OpenWithdrawResponse.java

@@ -0,0 +1,72 @@
+package com.zhongshu.secretKey.client.payModel.cooperator.model;
+
+import com.github.microservice.models.requestModel.SuperCooperatorResponseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.internal.build.AllowPrintStacktrace;
+
+/**
+ * 收钱吧-平台方通知开通D+0提现 响应
+ *
+ * @author TRX
+ * @date 2024/9/5
+ */
+@Data
+@AllowPrintStacktrace
+@NoArgsConstructor
+public class OpenWithdrawResponse extends SuperCooperatorResponseModel {
+
+    @Schema(description = "系统编号")
+    private String sysId;
+
+    @Schema(description = "商户号")
+    private String mchntNo;
+
+    @Schema(description = "是否满足开通D0标记 00:不满90天 01:满足开通条件02:商户异常")
+    private String status;
+
+    @Schema(description = "是否允许开通")
+    private Boolean isAllow = Boolean.FALSE;
+
+    public Boolean getIsAllow() {
+        if (status != null && "01".equals(status)) {
+            return Boolean.TRUE;
+        }
+        return Boolean.FALSE;
+    }
+
+    private String statusStr;
+
+    public String getStatusStr() {
+        if (status != null) {
+            if ("00".equals(status)) {
+                return "不满90天";
+            } else if ("01".equals(status)) {
+                return "满足开通条件";
+            } else if ("02".equals(status)) {
+                return "不许开通";
+            }
+        }
+        return "";
+    }
+
+    @Schema(description = "划付类型 D0A:D0A划付-自由提现 D0B:D0B划付-自动划付 T0A:T0A划付-自由提现")
+    private String type;
+
+    private String typeStr;
+
+    public String getType() {
+        if (type != null) {
+            if ("D0A".equals(type)) {
+                return "D0A划付-自由提现";
+            } else if ("D0B".equals(type)) {
+                return "D0B划付-自动划付";
+            } else if ("T0A".equals(type)) {
+                return "T0A划付-自由提现";
+            }
+        }
+        return "";
+    }
+
+}

+ 57 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/ProcessWithdrawParam.java

@@ -0,0 +1,57 @@
+package com.zhongshu.secretKey.client.payModel.cooperator.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.internal.build.AllowPrintStacktrace;
+
+/**
+ * 提现 参数
+ *
+ * @author TRX
+ * @date 2024/9/5
+ */
+@Data
+@AllowPrintStacktrace
+@NoArgsConstructor
+public class ProcessWithdrawParam extends CooperatorSuperParam {
+
+    @Schema(description = "系统编号")
+    private String sysId;
+
+    @Schema(description = "商户号")
+    private String mchntNo;
+
+    @Schema(description = "系统订单号, 外部平台需保证各自系统上传的该字段的唯一性")
+    private String sysOrderId;
+
+    @Schema(description = "提现通知URL")
+    private String notifyUrl;
+
+    @Schema(description = "提现类型  0 - D0 1 - D1(对公对私是TN内部维护)")
+    private String withdrawType = "0";
+
+    @Schema(description = "提现金额 单位分")
+    private String withdrawAmt;
+
+    @Schema(description = "多应用类型 74")
+    private String appType;
+
+    @Schema(description = "提现手续费扣率 提现手续费扣率,必须>=0, 例如:0.001")
+    private String feeRatio = "0";
+
+    @Schema(description = "提现备注")
+    private String remark;
+
+    @Schema(description = "补贴标记 0-不补贴 1-补贴(如果上送了该标记字段值为1,D0提现不判断手续费是否满足保底,否则要判断)")
+    private String subsFlag = "0";
+
+    @Schema(description = "保底手续费 不能为空,最长18位,全为数字,单位:分")
+    private String minFee = "0";
+
+    @Schema(description = "垫资手续费补贴标记 0:不补贴 1:补贴(传1时,如果有垫支手续费则由机构承担,否则由商户承担)")
+    private String d0SubsFlag = "0";
+
+    @Schema(description = "提现附言 提现附言长度最长40位,数字字母40个,汉字20个")
+    private String postscript;
+}

+ 30 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/ProcessWithdrawResponse.java

@@ -0,0 +1,30 @@
+package com.zhongshu.secretKey.client.payModel.cooperator.model;
+
+import com.github.microservice.models.requestModel.SuperCooperatorResponseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.internal.build.AllowPrintStacktrace;
+
+/**
+ * @author TRX
+ * @date 2024/9/5
+ */
+@Data
+@AllowPrintStacktrace
+@NoArgsConstructor
+public class ProcessWithdrawResponse extends SuperCooperatorResponseModel {
+
+    @Schema(description = "系统编号")
+    private String sysId;
+
+    @Schema(description = "系统订单号")
+    private String sysOrderId;
+
+    @Schema(description = "流水号")
+    private String ssn;
+
+    @Schema(description = "商户编号")
+    private String mchntNo;
+
+}

+ 31 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/QueryOrderStatusParam.java

@@ -0,0 +1,31 @@
+package com.zhongshu.secretKey.client.payModel.cooperator.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.internal.build.AllowPrintStacktrace;
+
+/**
+ * 提现状态查询 参数
+ *
+ * @author TRX
+ * @date 2024/9/5
+ */
+@Data
+@AllowPrintStacktrace
+@NoArgsConstructor
+public class QueryOrderStatusParam extends CooperatorSuperParam {
+
+    @Schema(description = "系统编号")
+    private String sysId;
+
+    @Schema(description = "mchntNo")
+    private String mchntNo;
+
+    @Schema(description = " 交易日期 格式yyyyMMDD")
+    private String transDate;
+
+    @Schema(description = "系统订单号 外部平台需保证各自系统上传的该字段的唯一性")
+    private String sysOrderId;
+
+}

+ 85 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/QueryOrderStatusResponse.java

@@ -0,0 +1,85 @@
+package com.zhongshu.secretKey.client.payModel.cooperator.model;
+
+import com.github.microservice.models.requestModel.SuperCooperatorResponseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.internal.build.AllowPrintStacktrace;
+
+/**
+ * 提现状态查询 响应
+ *
+ * @author TRX
+ * @date 2024/9/5
+ */
+@Data
+@AllowPrintStacktrace
+@NoArgsConstructor
+public class QueryOrderStatusResponse extends SuperCooperatorResponseModel {
+
+    @Schema(description = "提现金额 单位:分")
+    private String transAmt;
+
+    @Schema(description = "手续费")
+    private String fee;
+
+    @Schema(description = "商户号")
+    private String mchntNo;
+
+    @Schema(description = "提现流水号")
+    private String ssn;
+
+    @Schema(description = "提现时间 格式:YYYY-MM-DD HH:MM:SS")
+    private String transTime;
+
+    @Schema(description = "提现结果 -1:数据问题 0:处理中 1:已记账未支付;2:已支付,状态未知;3:处理成功;4:支付失败;5:支付失败,余额已退回6:已手工重新发起支付")
+    private String status;
+
+    private String statusStr;
+
+    public String getStatusStr() {
+        if (status != null) {
+            switch (status) {
+                case "-1":
+                    return "数据问题";
+                case "0":
+                    return "处理中";
+                case "1":
+                    return "已记账未支付";
+                case "2":
+                    return "已支付,状态未知";
+                case "3":
+                    return "处理成功";
+                case "4":
+                    return "支付失败";
+                case "5":
+                    return "支付失败,余额已退回";
+                case "6":
+                    return "已手工重新发起支付";
+            }
+        }
+        return "";
+    }
+
+    @Schema(description = "提现结果描述")
+    private String desc;
+
+    @Schema(description = "系统订单号  外部平台提现时上送的系统订单号")
+    private String sysOrderId;
+
+    @Schema(description = "系统编号")
+    private String sysId;
+
+    @Schema(description = "备注")
+    private String remark;
+
+    @Schema(description = "支付记录状态 策略对账状态")
+    private String payRecStatus;
+
+    @Schema(description = "处理备注 策略对账描述")
+    private String handleRemark;
+
+    @Schema(description = "支付结果描述 策略对账结果描述")
+    private String payResultDesc;
+
+}

+ 25 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/QueryWithdrawAuthstatusParam.java

@@ -0,0 +1,25 @@
+package com.zhongshu.secretKey.client.payModel.cooperator.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.internal.build.AllowPrintStacktrace;
+
+/**
+ * 收钱吧-D+0开通权限查询 参数
+ *
+ * @author TRX
+ * @date 2024/9/5
+ */
+@Data
+@AllowPrintStacktrace
+@NoArgsConstructor
+public class QueryWithdrawAuthstatusParam extends CooperatorSuperParam {
+
+    @Schema(description = "系统编号")
+    private String sysId;
+
+    @Schema(description = "商户号")
+    private String mchntNo;
+
+}

+ 53 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/QueryWithdrawAuthstatusResponse.java

@@ -0,0 +1,53 @@
+package com.zhongshu.secretKey.client.payModel.cooperator.model;
+
+import com.github.microservice.models.requestModel.SuperCooperatorResponseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.internal.build.AllowPrintStacktrace;
+
+/**
+ * 收钱吧-D+0开通权限查询 响应
+ *
+ * @author TRX
+ * @date 2024/9/5
+ */
+@Data
+@AllowPrintStacktrace
+@NoArgsConstructor
+public class QueryWithdrawAuthstatusResponse extends SuperCooperatorResponseModel {
+
+    @Schema(description = "系统编号")
+    private String sysId;
+
+    @Schema(description = "商户号")
+    private String mchntNo;
+
+    @Schema(description = "是否满足开通D0标记  00:不满90天 01:满足开通条件02:不许开通")
+    private String status;
+
+    @Schema(description = "是否允许开通")
+    private Boolean isAllow = Boolean.FALSE;
+
+    public Boolean getIsAllow() {
+        if (status != null && "01".equals(status)) {
+            return Boolean.TRUE;
+        }
+        return Boolean.FALSE;
+    }
+
+    private String statusStr;
+
+    public String getStatusStr() {
+        if (status != null) {
+            if ("00".equals(status)) {
+                return "不满90天";
+            } else if ("01".equals(status)) {
+                return "满足开通条件";
+            } else if ("02".equals(status)) {
+                return "不许开通";
+            }
+        }
+        return "";
+    }
+}

+ 27 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/QueryWithdrawBalanceParam.java

@@ -0,0 +1,27 @@
+package com.zhongshu.secretKey.client.payModel.cooperator.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.internal.build.AllowPrintStacktrace;
+
+/**
+ * 查询商户可提现金额 参数
+ * @author TRX
+ * @date 2024/9/5
+ */
+@Data
+@AllowPrintStacktrace
+@NoArgsConstructor
+public class QueryWithdrawBalanceParam extends CooperatorSuperParam {
+
+    @Schema(description = "系统编号")
+    private String sysId;
+
+    @Schema(description = "商户号")
+    private String mchntNo;
+
+    @Schema(description = "多应用类型")
+    private String appType;
+
+}

+ 33 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/model/QueryWithdrawBalanceResponse.java

@@ -0,0 +1,33 @@
+package com.zhongshu.secretKey.client.payModel.cooperator.model;
+
+import com.github.microservice.models.requestModel.SuperCooperatorResponseModel;
+import com.github.microservice.models.requestModel.SuperResponseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.internal.build.AllowPrintStacktrace;
+
+/**
+ * 查询商户可提现金额 返回
+ *
+ * @author TRX
+ * @date 2024/9/5
+ */
+@Data
+@AllowPrintStacktrace
+@NoArgsConstructor
+public class QueryWithdrawBalanceResponse extends SuperCooperatorResponseModel {
+
+    @Schema(description = "系统编号")
+    private String sysId;
+
+    @Schema(description = "T0可提现金额")
+    private String t0WithdrawAmt;
+
+    @Schema(description = "TZ可提现金额")
+    private String tzWithdrawAmt;
+
+    @Schema(description = "D1提现待支付金额")
+    private String d1withdrawAmtWaitPay;
+
+}

+ 4 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/package-info.java

@@ -0,0 +1,4 @@
+package com.zhongshu.secretKey.client.payModel.cooperator;
+/**
+ * 悦融益业务对接开放平台 相关
+ */

+ 24 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/platmatModel/ShopBalanceModel.java

@@ -0,0 +1,24 @@
+package com.zhongshu.secretKey.client.payModel.cooperator.platmatModel;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+/**
+ * @author TRX
+ * @date 2024/9/6
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ShopBalanceModel {
+
+    @Schema(description = "商户oid")
+    private String shopId;
+
+    @Schema(description = "可提现金额")
+    private BigDecimal amount = BigDecimal.ZERO;
+}

+ 95 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/platmatModel/ShopOpenWithDrawModel.java

@@ -0,0 +1,95 @@
+package com.zhongshu.secretKey.client.payModel.cooperator.platmatModel;
+
+import com.github.microservice.types.unionFrictionlessPayType.WithDrawOpenState;
+import com.zhongshu.card.client.model.base.SuperModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author TRX
+ * @date 2024/9/5
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ShopOpenWithDrawModel extends SuperModel {
+
+    @Schema(description = "商户oid")
+    private String shopId;
+
+    @Schema(description = "商户名称")
+    private String shopName;
+
+    @Schema(description = "商户号")
+    private String mchntNo;
+
+    @Schema(description = "开通状态")
+    private WithDrawOpenState withDrawOpenState;
+
+    private String withDrawOpenStateName;
+
+    public String getWithDrawOpenStateName() {
+        if (withDrawOpenState != null) {
+            return withDrawOpenState.getName();
+        }
+        return "";
+    }
+
+    @Schema(description = "开通时间")
+    private Long openTime;
+
+    @Schema(description = "是否满足开通D0标记 00:不满90天 01:满足开通条件02:商户异常")
+    private String status;
+
+    @Schema(description = "是否允许开通")
+    private Boolean isAllow = Boolean.FALSE;
+
+    public Boolean getIsAllow() {
+        if (status != null && "01".equals(status)) {
+            return Boolean.TRUE;
+        }
+        return Boolean.FALSE;
+    }
+
+    private String statusStr;
+
+    public String getStatusStr() {
+        if (status != null) {
+            if ("00".equals(status)) {
+                return "不满90天";
+            } else if ("01".equals(status)) {
+                return "满足开通条件";
+            } else if ("02".equals(status)) {
+                return "不许开通";
+            }
+        }
+        return "";
+    }
+
+    @Schema(description = "划付类型 D0A:D0A划付-自由提现 D0B:D0B划付-自动划付 T0A:T0A划付-自由提现")
+    private String type;
+
+    private String typeStr;
+
+    public String getType() {
+        if (type != null) {
+            if ("D0A".equals(type)) {
+                return "D0A划付-自由提现";
+            } else if ("D0B".equals(type)) {
+                return "D0B划付-自动划付";
+            } else if ("T0A".equals(type)) {
+                return "T0A划付-自由提现";
+            }
+        }
+        return "";
+    }
+
+    @Schema(description = "申请的参数")
+    private Object requestParam;
+
+    @Schema(description = "响应的数据")
+    private Object response;
+
+}

+ 87 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/platmatModel/ShopWithDrawRecordModel.java

@@ -0,0 +1,87 @@
+package com.zhongshu.secretKey.client.payModel.cooperator.platmatModel;
+
+import com.github.microservice.types.unionFrictionlessPayType.WithDrawState;
+import com.zhongshu.card.client.model.base.SuperModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+/**
+ * @author TRX
+ * @date 2024/9/5
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ShopWithDrawRecordModel extends SuperModel {
+    @Schema(description = "商户oid")
+    private String shopId;
+
+    @Schema(description = "商户名称")
+    private String shopName;
+
+    @Schema(description = "商户号")
+    private String mchntNo;
+
+    @Schema(description = "提现状态")
+    private WithDrawState withDrawState;
+
+    @Schema(description = "系统订单号, 外部平台需保证各自系统上传的该字段的唯一性")
+    private String sysOrderId;
+
+    @Schema(description = "提现类型  0 - D0 1 - D1(对公对私是TN内部维护)")
+    private String withdrawType = "0";
+
+    @Schema(description = "提现金额 单位分")
+    private BigDecimal withdrawAmt;
+
+    @Schema(description = "流水号")
+    private String ssn;
+
+    @Schema(description = "提现时间 格式:YYYY-MM-DD HH:MM:SS")
+    private String transTime;
+
+    @Schema(description = "提现结果 -1:数据问题 0:处理中 1:已记账未支付;2:已支付,状态未知;3:处理成功;4:支付失败;5:支付失败,余额已退回6:已手工重新发起支付")
+    private String status;
+
+    private String statusStr;
+
+    public String getStatusStr() {
+        if (status != null) {
+            switch (status) {
+                case "-1":
+                    return "数据问题";
+                case "0":
+                    return "处理中";
+                case "1":
+                    return "已记账未支付";
+                case "2":
+                    return "已支付,状态未知";
+                case "3":
+                    return "处理成功";
+                case "4":
+                    return "支付失败";
+                case "5":
+                    return "支付失败,余额已退回";
+                case "6":
+                    return "已手工重新发起支付";
+            }
+        }
+        return "";
+    }
+
+    @Schema(description = "提现结果描述")
+    private String desc;
+
+    @Schema(description = "申请的参数")
+    private Object requestParam;
+
+    @Schema(description = "响应的数据")
+    private Object response;
+
+    @Schema(description = "提现的状态")
+    private Object withResponse;
+}

+ 52 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/cooperator/platmatModel/ShopWithDrawRecordSearch.java

@@ -0,0 +1,52 @@
+package com.zhongshu.secretKey.client.payModel.cooperator.platmatModel;
+
+import com.github.microservice.types.unionFrictionlessPayType.WithDrawState;
+import com.zhongshu.card.client.model.base.SuperSearch;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+/**
+ * @author TRX
+ * @date 2024/9/5
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ShopWithDrawRecordSearch extends SuperSearch {
+    @Schema(description = "商户oid")
+    private String shopId;
+
+    @Schema(description = "商户名称")
+    private String shopName;
+
+    @Schema(description = "商户号")
+    private String mchntNo;
+
+    @Schema(description = "提现状态")
+    private WithDrawState withDrawState;
+
+    @Schema(description = "系统订单号, 外部平台需保证各自系统上传的该字段的唯一性")
+    private String sysOrderId;
+
+    @Schema(description = "提现类型  0 - D0 1 - D1(对公对私是TN内部维护)")
+    private String withdrawType = "0";
+
+    @Schema(description = "提现金额 单位分")
+    private BigDecimal withdrawAmt;
+
+    @Schema(description = "流水号")
+    private String ssn;
+
+    @Schema(description = "提现时间 格式:YYYY-MM-DD HH:MM:SS")
+    private String transTime;
+
+    @Schema(description = "提现结果 -1:数据问题 0:处理中 1:已记账未支付;2:已支付,状态未知;3:处理成功;4:支付失败;5:支付失败,余额已退回6:已手工重新发起支付")
+    private String status;
+
+    @Schema(description = "提现结果描述")
+    private String desc;
+}

+ 26 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/ApiConfParam.java

@@ -0,0 +1,26 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import com.github.microservice.core.util.net.apache.MethodType;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author TRX
+ * @date 2024/6/25
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class ApiConfParam {
+
+    @Schema(description = "API名称")
+    private String apiName;
+
+    @Schema(description = "方式")
+    private MethodType methodType;
+
+}

+ 33 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/CardListModel.java

@@ -0,0 +1,33 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.internal.build.AllowPrintStacktrace;
+
+/**
+ * @author TRX
+ * @date 2024/9/3
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CardListModel {
+
+    @Schema(description = "脱敏卡号 脱敏卡号:前6后4,中间用*掩码")
+    private String cardNoDesen;
+
+    @Schema(description = "发卡总行机构代码 发卡总行机构代码")
+    private String issHeadCode;
+
+    @Schema(description = "发卡总行机构中文名称 发卡总行机构中文名称")
+    private String issHeadName;
+
+    @Schema(description = "卡性质 卡性质(01:借记卡02:货记卡,03:准贷记卡,04:借贷合一卡,05:预付费卡)")
+    private String payCardType;
+
+    @Schema(description = "预留手机号 银行卡在发卡机构的预留手机号(如有〉根据商户,前三后三 中间补充*")
+    private String maskedReservedMobile;
+
+}

+ 37 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/CardListQueryParam.java

@@ -0,0 +1,37 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 查询卡列表 参数
+ *
+ * @author TRX
+ * @date 2024/9/3
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CardListQueryParam extends UnionSuperParam {
+
+    @Schema(description = "商户代码 银商商户号")
+    private String mid;
+
+    @Schema(description = "协议模板id 无感(免密极速)产品模板 ID,与接入产品对应。")
+    private String planId;
+
+    @Schema(description = "请求单号 商户生成。不能含“-”或“_” 自定义并发送,同一交易日期内不可重复;")
+    private String orderId;
+
+    @Schema(description = "标记请求者id 银联分配:标记请求者 trId")
+    private String trId;
+
+    @Schema(description = "银联免密支付签约协议号 云闪付侧的签约协议号,由银联生成。即标记化支付信息域的token BASE64")
+    private String contractId;
+
+    @Schema(description = "请求方保留域 请求方保留域:商户自定义保留域,交易应答时会原样返回")
+    private String reqReserved;
+
+}

+ 40 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/CardListQueryResponse.java

@@ -0,0 +1,40 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import com.github.microservice.models.requestModel.SuperResponseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * 查询卡列表 返回
+ *
+ * @author TRX
+ * @date 2024/9/3
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CardListQueryResponse extends SuperResponseModel {
+
+    @Schema(description = "报文应答时间 格式yyyy-MM-dd HH:mm:ss")
+    private String responseTimeStamp;
+
+    @Schema(description = "商户代码 银商商户号")
+    private String mid;
+
+    @Schema(description = "银联免密支付签约协议号 BASE64")
+    private String contractId;
+
+    @Schema(description = "请求单号 商户生成。不能含“-”或“_” 自定义并发送,同一交易日期内不可重复;")
+    private String orderId;
+
+    @Schema(description = "请求方保留域 请求方保留域:商户自定义保留域,交易应答时会原样返回")
+    private String reqReserved;
+
+    @Schema(description = "卡列表")
+    private List<CardListModel> cardList;
+
+}

+ 34 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/GoodsModel.java

@@ -0,0 +1,34 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 单品列表 模型
+ *
+ * @author TRX
+ * @date 2024/9/3
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class GoodsModel {
+
+    @Schema(description = "商品编号")
+    private String goodsId;
+
+    @Schema(description = "单品优惠金额")
+    private Integer promotionAmt;
+
+    @Schema(description = "商品数量")
+    private Integer goodsNum;
+
+    @Schema(description = "商品价格")
+    private Integer goodsPrice;
+
+    @Schema(description = "商品备注")
+    private String goodsRemark;
+
+}

+ 40 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/GoodsParam.java

@@ -0,0 +1,40 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author TRX
+ * @date 2024/8/28
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class GoodsParam {
+
+    @Schema(description = "商品ID")
+    private String goodsId;
+
+    @Schema(description = "商品名称")
+    private String goodsName;
+
+    @Schema(description = "商品数量")
+    private Integer quantity;
+
+    @Schema(description = "商品单价(分)")
+    private Integer price;
+
+    @Schema(description = "商品分类")
+    private String goodsCategory;
+
+    @Schema(description = "商品说明")
+    private String body;
+
+    @Schema(description = "折扣")
+    private Integer discount;
+
+    @Schema(description = "单位")
+    private String unit;
+}

+ 37 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/NetPayQueryParam.java

@@ -0,0 +1,37 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 银联 -- 交易查询
+ *
+ * @author TRX
+ * @date 2024/9/3
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class NetPayQueryParam extends UnionSuperParam {
+
+    @Schema(description = "商户号")
+    private String mid;
+
+    @Schema(description = "请求系统预留字段")
+    private String srcReserve;
+
+    @Schema(description = "消息ID")
+    private String msgId;
+
+    @Schema(description = "终端号")
+    private String tid;
+
+    @Schema(description = "商户订单号")
+    private String merOrderId;
+
+    @Schema(description = "系统ID")
+    private String systemId;
+
+}

+ 120 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/NetPayQueryResponse.java

@@ -0,0 +1,120 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import com.github.microservice.models.requestModel.SuperResponseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * 交易查询--返回
+ *
+ * @author TRX
+ * @date 2024/9/3
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class NetPayQueryResponse extends SuperResponseModel {
+    @Schema(description = "消息ID,原样返回")
+    private String msgId;
+
+    @Schema(description = "商户名称")
+    private String merName;
+
+    @Schema(description = "链接系统")
+    private String connectSys;
+
+    @Schema(description = "银商商户号")
+    private String mid;
+
+    @Schema(description = "终端号")
+    private String tid;
+
+    @Schema(description = "银行卡号")
+    private String bankCardNo;
+
+    @Schema(description = "银行信息")
+    private String bankInfo;
+
+    @Schema(description = "交易状态")
+    private String status;
+
+    @Schema(description = "平台流水号")
+    private String seqId;
+
+    @Schema(description = "清分ID 如果来源方传了bankRefId就等于bankRefId,否则等于seqId")
+    private String settleRefId;
+
+    @Schema(description = "结算日期 格式yyyy-MM-dd")
+    private String settleDate;
+
+    @Schema(description = "支付总金额")
+    private Integer totalAmount;
+
+    @Schema(description = "交易中可给用户开具发票的金额")
+    private Integer invoiceAmount;
+
+    @Schema(description = "优惠金额")
+    private Integer couponAmount;
+
+    @Schema(description = "实付金额")
+    private Integer buyerPayAmount;
+
+    @Schema(description = "商户订单号")
+    private String merOrderId;
+
+    @Schema(description = "支付渠道商户号 各渠道情况不同,酌情转换。")
+    private String targetMid;
+
+    @Schema(description = "支付渠道列表")
+    private String billFunds;
+
+    @Schema(description = "支付渠道描述")
+    private String billFundsDesc;
+
+    @Schema(description = "商户附加数据")
+    private String attachedData;
+
+    @Schema(description = "第三方订单号")
+    private String targetOrderId;
+
+    @Schema(description = "支付时间 格式yyyy-MM-dd HH:mm:ss")
+    private String payTime;
+
+    @Schema(description = "请求系统预留字段")
+    private String srcReserve;
+
+    @Schema(description = "业务类型")
+    private String instMid;
+
+    @Schema(description = "买家ID")
+    private String buyerId;
+
+    @Schema(description = "子买家ID")
+    private String subBuyerId;
+
+    @Schema(description = "目标平台状态")
+    private String targetStatus;
+
+    @Schema(description = "目标平台代码")
+    private String targetSys;
+
+    @Schema(description = "借贷记卡信息 DEBIT_CARD(借记卡);CREDIT_CARD(贷记卡)")
+    private String cardAttr;
+
+    @Schema(description = "优惠金额(合计)")
+    private Integer totalPromotionAmt;
+
+    @Schema(description = "优惠状态")
+    private Integer orderPromotionStatus;
+
+    @Schema(description = "优惠活动活动列表")
+    private List<PromotionModel> promotionList;
+
+    @Schema(description = "渠道和收单机构侧原始优惠信息列表")
+    private List<PromotionModel> oriPromotionList;
+
+}

+ 38 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/OrderQueryParam.java

@@ -0,0 +1,38 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author TRX
+ * @date 2024/8/28
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class OrderQueryParam extends UnionSuperParam {
+
+    @Schema(description = "消息ID")
+    private String msgId;
+
+    @Schema(description = "消息类型, wx.h5EntrustSign:微信H5免密支付签约")
+    private String msgType;
+
+    @Schema(description = "请求系统预留字段")
+    private String srcReserve;
+
+    @Schema(description = "商户号")
+    private String mid;
+
+    @Schema(description = "终端号")
+    private String tid;
+
+    @Schema(description = "商户订单号")
+    private String merOrderId;
+
+    @Schema(description = "系统ID")
+    private String systemId;
+
+}

+ 104 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/OrderQueryResponse.java

@@ -0,0 +1,104 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import com.github.microservice.models.requestModel.SuperResponseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 交易查询 返回
+ *
+ * @author TRX
+ * @date 2024/8/28
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class OrderQueryResponse extends SuperResponseModel {
+
+    @Schema(description = "消息ID,原样返回")
+    private String msgId;
+
+    @Schema(description = "商户名称")
+    private String merName;
+
+    @Schema(description = "链接系统")
+    private String connectSys;
+
+    @Schema(description = "银商商户号")
+    private String mid;
+
+    @Schema(description = "终端号")
+    private String tid;
+
+    @Schema(description = "银行卡号")
+    private String bankCardNo;
+
+    @Schema(description = "银行信息")
+    private String bankInfo;
+
+    @Schema(description = "交易状态")
+    private String status;
+
+    @Schema(description = "平台流水号")
+    private String seqId;
+
+    @Schema(description = "清分ID")
+    private String settleRefId;
+
+    @Schema(description = "结算日期, 格式yyyy-MM-dd")
+    private String settleDate;
+
+    @Schema(description = "支付总金额")
+    private Integer totalAmount;
+
+    @Schema(description = "交易中可给用户开具发票的金额")
+    private Integer invoiceAmount;
+
+    @Schema(description = "优惠金额")
+    private Integer couponAmount;
+
+    @Schema(description = "实付金额")
+    private Integer buyerPayAmount;
+
+    @Schema(description = "商户订单号")
+    private String merOrderId;
+
+    @Schema(description = "支付渠道商户号")
+    private String targetMid;
+
+    @Schema(description = "支付渠道列表")
+    private String billFunds;
+
+    @Schema(description = "支付渠道描述")
+    private String billFundsDesc;
+
+    @Schema(description = "商户附加数据")
+    private String attachedData;
+
+    @Schema(description = "第三方订单号")
+    private String targetOrderId;
+
+    @Schema(description = "支付时间, 格式yyyy-MM-dd HH:mm:ss")
+    private String payTime;
+
+    @Schema(description = "请求系统预留字段")
+    private String srcReserve;
+
+    @Schema(description = "业务类型")
+    private String instMid;
+
+    @Schema(description = "买家ID")
+    private String buyerId;
+
+    @Schema(description = "子买家ID 比如微信的subOpenId")
+    private String subBuyerId;
+
+    @Schema(description = "目标平台状态")
+    private String targetStatus;
+
+    @Schema(description = "目标平台代码")
+    private String targetSys;
+
+}

+ 103 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/PayNotifyResponse.java

@@ -0,0 +1,103 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 扣款通知参数
+ *
+ * @author TRX
+ * @date 2024/8/28
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class PayNotifyResponse {
+
+    @Schema(description = "商户号")
+    private String mid;
+
+    @Schema(description = "终端号")
+    private String tid;
+
+    @Schema(description = "附加数据")
+    private String attachedData;
+
+    @Schema(description = "支付银行信息")
+    private String bankCardNo;
+
+    @Schema(description = "银行信息")
+    private String bankInfo;
+
+    @Schema(description = "资金渠道")
+    private String billFunds;
+
+    @Schema(description = "资金渠道说明")
+    private String billFundsDesc;
+
+    @Schema(description = "卖家ID")
+    private String buyerId;
+
+    @Schema(description = "买家用户名")
+    private String buyerUsername;
+
+    @Schema(description = "订单金额,单位分")
+    private Integer totalAmount;
+
+    @Schema(description = "网付计算的优惠金额,单位分")
+    private Integer couponAmount;
+
+    @Schema(description = "实付金额")
+    private Integer buyerPayAmount;
+
+    @Schema(description = "开票金额")
+    private Integer invoiceAmount;
+
+    @Schema(description = "商户订单号")
+    private String merOrderId;
+
+    @Schema(description = "支付时间, 格式yyyy-MM-dd HH:mm:ss")
+    private String payTime;
+
+    @Schema(description = "支付银行卡参考号")
+    private String refId;
+
+    @Schema(description = "退款金额")
+    private String refundAmount;
+
+    @Schema(description = "退款说明")
+    private String refundDesc;
+
+    @Schema(description = "系统交易流水号")
+    private String seqId;
+
+    @Schema(description = "结算日期")
+    private String settleDate;
+
+    @Schema(description = "订单状态")
+    private String status;
+
+    @Schema(description = "卖家子ID")
+    private String subBuyerId;
+
+    @Schema(description = "渠道订单号")
+    private String targetOrderId;
+
+    @Schema(description = "支付渠道")
+    private String targetSys;
+
+    @Schema(description = "通知ID,通知唯一ID,重发通知的notifyId不变")
+    private String notifyId;
+
+    @Schema(description = "随机字段,参与签名")
+    private String key;
+
+    @Schema(description = "签名")
+    private String sign;
+
+    @Schema(description = "借贷记卡信息 DEBIT_CARD(借记卡);CREDIT_CARD(贷记卡)")
+    private String cardAttr;
+
+}

+ 24 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/PayResponseModel.java

@@ -0,0 +1,24 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import com.github.microservice.models.requestModel.SuperResponseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 无感支付 申请扣款 返回
+ *
+ * @author TRX
+ * @date 2024/8/21
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class PayResponseModel extends SuperResponseModel {
+
+    @Schema(description = "商户号")
+    private String vaMchntNo;
+
+
+}

+ 57 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/PromotionModel.java

@@ -0,0 +1,57 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * 支付 优惠活动活动 模型
+ *
+ * @author TRX
+ * @date 2024/9/3
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class PromotionModel {
+
+    @Schema(description = "渠道方")
+    private String chnlName;
+
+    @Schema(description = "优惠流水ID")
+    private String promotionId;
+
+    @Schema(description = "活动编号")
+    private String eventNo;
+
+    @Schema(description = "活动名称")
+    private String eventName;
+
+    @Schema(description = "优惠范围")
+    private String promotionRange;
+
+    @Schema(description = "优惠类型")
+    private String promotionType;
+
+    @Schema(description = "活动优惠金额")
+    private Integer eventPromotionAmt;
+
+    @Schema(description = "平台优惠金额")
+    private Integer platPromotionAmt;
+
+    @Schema(description = "商户优惠金额")
+    private Integer mchntPromotionAmt;
+
+    @Schema(description = "第三方优惠金额")
+    private Integer thirdPartyPromotionAmt;
+
+    @Schema(description = "第三方出资详情")
+    private String thirdPartyPromotionDetail;
+
+    @Schema(description = "单品列表")
+    private List<GoodsModel> goodsList;
+
+}

+ 26 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/RescissionParam.java

@@ -0,0 +1,26 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author TRX
+ * @date 2024/8/27
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class RescissionParam extends UnionSuperParam {
+
+    @Schema(description = "商户代码, 银商商户号")
+    private String mid;
+
+    @Schema(description = "协议模板id, 无感(免密极速)产品模板ID,与接入产品对应。")
+    private String planId;
+
+    @Schema(description = "银商免密支付签约协议号,云闪付侧的签约协议号,由银联生成。即标记化支付信息域的token。BASE64加密。")
+    private String contractId;
+
+}

+ 34 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/SenselessPayAndOpenParam.java

@@ -0,0 +1,34 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 申请扣款并开通
+ *
+ * @author TRX
+ * @date 2024/9/3
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SenselessPayAndOpenParam extends SenselessPayParam {
+
+    @Schema(description = "客户信息 包括证件类型、证件号、姓名字段, 格式如下:{certifTp=值&certifId=值&customerNm=值},整体做Base64编码。 其中certifTp证件类型取值: 01:身份证 02:军官证 03:护照 04:港澳居民来往内地通行证; 05: 台湾居民来往大陆通行证; 06:警官证 07:士兵证 09:外国护照 12:港澳居民居住证 13:台湾居民居住证 99:其它证件")
+    private String custInfo;
+
+    @Schema(description = "优惠码 云闪付优惠码")
+    private String discountCode;
+
+    @Schema(description = "交易发起场景 01:app 03:小程序 04:公众号 缺省值为01")
+    private String invokeScene;
+
+    @Schema(description = "商户微信appId 商家的微信小程序或公众号的appId,交易发起场景为小程序或公众号时必填。")
+    private String mchntWxMpAppId;
+
+    @Schema(description = "商户小程序path 用于签约完成/失败/取消后使用微信接口navigateToMiniProgram跳转,不上送则使用navigateBackMiniProgram接口返回上一个小程序")
+    private String mchntWxMpPath;
+
+}

+ 23 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/SenselessPayAndOpenResponse.java

@@ -0,0 +1,23 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author TRX
+ * @date 2024/8/28
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SenselessPayAndOpenResponse extends SenselessPayResponse {
+
+    @Schema(description = "云闪付小程序appId 云闪付小程序id 交易发起场景03/04,必传 用于商户跳转进行签约")
+    private String cqpMpAppId;
+
+    @Schema(description = "云闪付小程序path 交易发起场景03/04,必传 用于商户跳转进行签约")
+    private String cqpMpPath;
+
+}

+ 62 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/SenselessPayParam.java

@@ -0,0 +1,62 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 无感支付 申请扣款
+ *
+ * @author TRX
+ * @date 2024/8/28
+ */
+@Data
+public class SenselessPayParam extends UnionSuperParam {
+
+    @Schema(description = "消息ID")
+    private String msgId;
+
+    @Schema(description = "请求系统预留字段")
+    private String srcReserve;
+
+    @Schema(description = "商户号")
+    private String mid;
+
+    @Schema(description = "终端号")
+    private String tid;
+
+    @Schema(description = "银联无感支付签约协议号")
+    private String contractId;
+
+    @Schema(description = "银联无感支付签约模板ID")
+    private String planId;
+
+    @Schema(description = "商户订单号")
+    private String merOrderId;
+
+    @Schema(description = "订单描述")
+    private String orderDesc;
+
+    @Schema(description = "订单金额")
+    private Integer totalAmount;
+
+    @Schema(description = "商品信息")
+    private List<GoodsParam> goods;
+
+    @Schema(description = "商户附加数据")
+    private String attachedData;
+
+    @Schema(description = "签约结果通知地址")
+    private String notifyUrl;
+
+    @Schema(description = "系统ID")
+    private String systemId;
+
+    @Schema(description = "签约类型, 不传默认为 NONE NONE:普通消费 COMPULSORY:支付并强制开通免密支付 OPTIONAL:支付并可选")
+    private String contractType;
+
+    @Schema(description = "订单过期时间, 订单过期时间,为空则使用系统默认过期时间(30分钟),格式yyyy-MM-dd HH:mm:ss")
+    private String expireTime;
+
+}

+ 71 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/SenselessPayResponse.java

@@ -0,0 +1,71 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import com.github.microservice.models.requestModel.SuperResponseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 申请扣款 返回
+ *
+ * @author TRX
+ * @date 2024/8/28
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SenselessPayResponse extends SuperResponseModel {
+
+    @Schema(description = "消息ID,原样返回")
+    private String msgId;
+
+    @Schema(description = "报文应答时间,格式yyyy-MM-dd HH:mm:ss")
+    private String responseTimeStamp;
+
+    @Schema(description = "银商商户号")
+    private String mid;
+
+    @Schema(description = "终端号")
+    private String tid;
+
+    @Schema(description = "银联受理订单号")
+    private String relateSsn;
+
+    @Schema(description = "平台流水号")
+    private String seqId;
+
+    @Schema(description = "订单创建时间, 格式:yyyy-MM-dd HH:mm:ss 对应银联交易的报文请求时间,查询签约结果时使用")
+    private String orderCrtTime;
+
+    @Schema(description = "清分ID,如果来源方传了bankRefId就等于bankRefId,否则等于seqId")
+    private String settleRefId;
+
+    @Schema(description = "商户订单号")
+    private String merOrderId;
+
+    @Schema(description = "支付渠道商户号,各渠道情况不同,酌情转换")
+    private String targetMid;
+
+    @Schema(description = "请求系统预留字段")
+    private String srcReserve;
+
+    @Schema(description = "商户附加数据")
+    private String attachedData;
+
+    @Schema(description = "订单金额,单位分")
+    private Integer totalAmount;
+
+    @Schema(description = "交易状态")
+    private String status;
+
+    @Schema(description = "链接系统")
+    private String connectSys;
+
+    @Schema(description = "目标平台代码")
+    private String targetSys;
+
+    @Schema(description = "目标平台状态")
+    private String targetStatus;
+
+}

+ 55 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/SignNotifyModel.java

@@ -0,0 +1,55 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 签约通知
+ *
+ * @author TRX
+ * @date 2024/9/2
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SignNotifyModel {
+
+    @Schema(description = "报文请求时间 格式yyyy-MM-dd HH:mm:ss")
+    private String requestTimestamp;
+
+    @Schema(description = "商户代码 银商商户号")
+    private String mid;
+
+    @Schema(description = "商户签约协议号 原签约交易的商户签约协议号")
+    private String contractNo;
+
+    @Schema(description = "银商免密支付签约协议号 签约成功时返回。云闪付侧的签约协议号,由银联生成。即标记化支付信息域的token。BASE64加密。")
+    private String contractId;
+
+    @Schema(description = "签约状态 通知商户,必传。 UNSIGNED-未签约 SIGNED-已签约 RESCISSION-已解约 DELETING_CONTRACT-解约中 UNKNOWN-未知")
+    private String contractState;
+
+    @Schema(description = "协议签约时间 签约成功时返回。即标记化支付信息域的tokenBegin。格式yyyy-MM-dd HH:mm:ss")
+    private String contractSignedTime;
+
+    @Schema(description = "协议到期时间 签约成功时返回。即标记化支付信息域的tokenEnd。格式yyyy-MM-dd HH:mm:ss")
+    private String contractExpiredTime;
+
+    @Schema(description = "云闪付用户ID 云闪付用户ID")
+    private String acpId;
+
+    @Schema(description = "掩码手机号 前3后4明文,其余*替换")
+    private String maskedPhoneNo;
+
+    @Schema(description = "Token单笔交易限额")
+    private String singleLimitAmt;
+
+    @Schema(description = "可用次数")
+    private String avlNum;
+
+    @Schema(description = "签约模板id 无感(免密极速)产品模板 ID,与接入产品对应")
+    private String planId;
+
+}

+ 42 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/SignNotifyParam.java

@@ -0,0 +1,42 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * 签约回调的数据
+ *
+ * @author TRX
+ * @date 2024/8/27
+ */
+@Data
+public class SignNotifyParam {
+
+    @Schema(description = "报文请求时间")
+    private String requestTimestamp;
+
+    @Schema(description = "商户代码")
+    private String mid;
+
+    @Schema(description = "商户签约协议号")
+    private String contractNo;
+
+    @Schema(description = "银商免密支付签约协议号")
+    private String contractId;
+
+    @Schema(description = "签约状态")
+    private String contractState;
+
+    @Schema(description = "Token单笔交易限额")
+    private String singleLimitAmt;
+
+    @Schema(description = "可用次数")
+    private String avlNum;
+
+    @Schema(description = "协议签约时间")
+    private String contractSignedTime;
+
+    @Schema(description = "协议到期时间")
+    private String contractExpiredTime;
+
+}

+ 44 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/SignParam.java

@@ -0,0 +1,44 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * 签约参数
+ *
+ * @author TRX
+ * @date 2024/8/27
+ */
+@Data
+public class SignParam extends UnionSuperParam {
+
+    @Schema(description = "商户ID")
+    private String shopOid;
+
+    @Schema(description = "商户代码 银商商户号")
+    private String mid;
+
+    @Schema(description = "商户签约协议号, 商户生成。在该商户号下唯一")
+    private String contractNo;
+
+    @Schema(description = "协议模板id, 无感(免密极速)产品模板ID,与接入产品对应。")
+    private String planId;
+
+    @Schema(description = "签约结果通知地址, 后台返回商户结果时使用")
+    private String notifyUrl;
+
+    @Schema(description = "过期时间, 交易过期时间,为空则使用系统默认过期时间(30分钟),格式yyyy-MM-ddHH:mm:ss")
+    private String expireTime;
+
+    @Schema(description = "交易发起场景, 01:APP 03:小程序  缺省值:01:APP")
+    private String invokeScene = "03";
+
+    @Schema(description = "商户微信小程序id, 交易发起场景03:小程序,必传用于签约完成/失败/取消后跳转")
+    private String mchntWxMpAppId;
+
+    @Schema(description = "商户微信小程序path, 交易发起场景03:小程序,必传用于签约完成/失败/取消后跳转")
+    private String mchntWxMpPath;
+
+    @Schema(description = "客户信息 包括证件类型、证件号、姓名字段")
+    private String custInfo;
+}

+ 30 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/SignQueryParam.java

@@ -0,0 +1,30 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.internal.build.AllowPrintStacktrace;
+
+/**
+ * 查询商户签约状态
+ *
+ * @author TRX
+ * @date 2024/8/27
+ */
+@Data
+@AllowPrintStacktrace
+@NoArgsConstructor
+public class SignQueryParam extends UnionSuperParam {
+
+    @Schema(description = "商户代码")
+    private String mid;
+
+    @Schema(description = "协议模板id")
+    private String planId;
+
+    @Schema(description = "商户签约协议号")
+    private String contractNo;
+
+    @Schema(description = "银商免密支付签约协议号")
+    private String contractId;
+}

+ 44 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/SignQueryResponse.java

@@ -0,0 +1,44 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import com.github.microservice.models.requestModel.SuperResponseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 查询签约状态 返回
+ *
+ * @author TRX
+ * @date 2024/8/27
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SignQueryResponse extends SuperResponseModel {
+
+    @Schema(description = "商户代码")
+    private String mid;
+
+    @Schema(description = "银商免密支付签约协议号")
+    private String contractId;
+
+    @Schema(description = "协议模板id")
+    private String planId;
+
+    @Schema(description = "协议状态")
+    private String contractState;
+
+    @Schema(description = "协议签约时间")
+    private String contractSignedTime;
+
+    @Schema(description = "协议到期时间")
+    private String contractExpiredTime;
+
+    @Schema(description = "云闪付用户ID 云闪付用户ID")
+    private String acpId;
+
+    @Schema(description = "掩码手机号 前3后4明文,其余*替换")
+    private String maskedPhoneNo;
+
+}

+ 26 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/SignResponse.java

@@ -0,0 +1,26 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import com.github.microservice.models.requestModel.SuperResponseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * 签约请求结果
+ *
+ * @author TRX
+ * @date 2024/8/29
+ */
+@Data
+public class SignResponse extends SuperResponseModel {
+    @Schema(description = "报文应答时间 格式:yyyy-MM-dd HH:mm:ss,同请求报文,查询签约结果时使用")
+    private String responseTimeStamp;
+
+    @Schema(description = "银联受理订单号 商户推送订单后银联移动支付系统返回该流水号,商户调用支付控件时使用。交易成功时返回")
+    private String relateSsn;
+
+    @Schema(description = "云闪付小程序id 交易发起场景03/04,必传 用于商户跳转进行签约")
+    private String cqpMpAppId;
+
+    @Schema(description = "云闪付小程序path 交易发起场景03/04,必传 用于商户跳转进行签约")
+    private String cqpMpPath;
+}

+ 44 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/UacRefundParam.java

@@ -0,0 +1,44 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 云闪付 申请退款
+ * @author TRX
+ * @date 2024/8/28
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class UacRefundParam extends UnionSuperParam{
+    @Schema(description = "消息ID")
+    private String msgId;
+
+    @Schema(description = "商户号")
+    private String mid;
+
+    @Schema(description = "终端号")
+    private String tid;
+
+    @Schema(description = "商户订单号")
+    private String merOrderId;
+
+    @Schema(description = "请求系统预留字段")
+    private String srcReserve;
+
+    @Schema(description = "要退款的金额,单位分")
+    private Integer refundAmount;
+
+    @Schema(description = "退货说明")
+    private String refundDesc;
+
+    @Schema(description = "退货交易的订单号")
+    private String refundOrderId;
+
+    @Schema(description = "系统ID")
+    private String systemId;
+
+}

+ 35 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/UacRefundQueryParam.java

@@ -0,0 +1,35 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 云闪付 申请退款 查询
+ * @author TRX
+ * @date 2024/8/28
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class UacRefundQueryParam extends UnionSuperParam{
+    @Schema(description = "消息ID")
+    private String msgId;
+
+    @Schema(description = "商户号")
+    private String mid;
+
+    @Schema(description = "终端号")
+    private String tid;
+
+    @Schema(description = "商户订单号")
+    private String merOrderId;
+
+    @Schema(description = "请求系统预留字段")
+    private String srcReserve;
+
+    @Schema(description = "系统ID")
+    private String systemId;
+
+}

+ 91 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/UacRefundResponse.java

@@ -0,0 +1,91 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import com.github.microservice.models.requestModel.SuperResponseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 云闪付 - 申请退款返回
+ *
+ * @author TRX
+ * @date 2024/8/28
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class UacRefundResponse extends SuperResponseModel {
+    @Schema(description = "消息ID,原样返回")
+    private String msgId;
+
+    @Schema(description = "报文应答时间")
+    private String responseTimeStamp;
+
+    @Schema(description = "商户名称")
+    private String merName;
+
+    @Schema(description = "银商商户号")
+    private String mid;
+
+    @Schema(description = "终端号")
+    private String tid;
+
+    @Schema(description = "商户订单号")
+    private String merOrderId;
+
+    @Schema(description = "请求系统预留字段")
+    private String srcReserve;
+
+    @Schema(description = "结算日期 格式yyyy-MM-dd")
+    private String settleDate;
+
+    @Schema(description = "平台流水号")
+    private String seqId;
+
+    @Schema(description = "交易状态")
+    private String status;
+
+    @Schema(description = "链接系统")
+    private String connectSys;
+
+    @Schema(description = "清分ID, 如果来源方传了bankRefId就等于bankRefId,否则等于seqId")
+    private String settleRefId;
+
+    @Schema(description = "银行信息")
+    private String bankInfo;
+
+    @Schema(description = "退款状态, SUCCESS-成功FAIL-失败PROCESSING-处理中UNKNOWN-未知")
+    private String refundStatus;
+
+    @Schema(description = "支付渠道商户号")
+    private String targetMid;
+
+    @Schema(description = "第三方订单号")
+    private String targetOrderId;
+
+    @Schema(description = "目标平台状态")
+    private String targetStatus;
+
+    @Schema(description = "目标平台代码")
+    private String targetSys;
+
+    @Schema(description = "支付总金额")
+    private Integer totalAmount;
+
+    @Schema(description = "总退款金额")
+    private Integer refundAmount;
+
+    @Schema(description = "退款渠道列表")
+    private String refundFunds;
+
+    @Schema(description = "退款渠道描述")
+    private String refundFundsDesc;
+
+    @Schema(description = "退货交易的订单号")
+    private String refundOrderId;
+
+    @Schema(description = "目标系统退货订单号")
+    private String refundTargetOrderId;
+
+}

+ 22 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/UnionPayApi.java

@@ -0,0 +1,22 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Builder;
+import lombok.Data;
+
+/**
+ * @author TRX
+ * @date 2024/8/21
+ */
+@Data
+@Builder
+public class UnionPayApi {
+    @Schema(description = "api标识")
+    private String apiKey;
+
+    @Schema(description = "测试地址")
+    private String devUrl;
+
+    @Schema(description = "正式环境地址")
+    private String prodUrl;
+}

+ 27 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/UnionSuperParam.java

@@ -0,0 +1,27 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author TRX
+ * @date 2024/8/27
+ */
+@Data
+public class UnionSuperParam {
+
+    /**
+     * 签名算法
+     */
+//    private final String signType;
+
+    /**
+     * 签名
+     */
+    private String sign;
+
+    private String payKey;
+
+    @Schema(description = "报文请求时间")
+    private String requestTimestamp;
+}

+ 72 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/UnionUserOpenInfoModel.java

@@ -0,0 +1,72 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import com.github.microservice.types.unionFrictionlessPayType.ContractState;
+import com.zhongshu.card.client.model.base.SuperModel;
+import com.github.microservice.types.unionFrictionlessPayType.UnionUserOpenType;
+import com.zhongshu.card.client.model.org.UserCountModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author TRX
+ * @date 2024/8/27
+ */
+@Data
+public class UnionUserOpenInfoModel extends SuperModel {
+    @Schema(description = "签约类型")
+    private UnionUserOpenType unionUserOpenType;
+
+    private String unionUserOpenTypeName;
+
+    public String getUnionUserOpenTypeName() {
+        if (unionUserOpenType != null) {
+            return unionUserOpenType.getName();
+        }
+        return "";
+    }
+
+    @Schema(description = "签约状态")
+    private ContractState contractState;
+
+    private String contractStateName;
+
+    public String getContractStateName() {
+        if (contractState != null) {
+            return contractState.getName();
+        }
+        return "";
+    }
+
+    @Schema(description = "用户ID")
+    private String userId;
+
+    @Schema(description = "用户名称")
+    private String userName;
+
+    @Schema(description = "用户信息")
+    private UserCountModel userCount;
+
+    @Schema(description = "商户代码")
+    private String mid;
+
+    @Schema(description = "商户oid")
+    private String shopOid;
+
+    @Schema(description = "商户签约协议号(本地生成的唯一号)")
+    private String contractNo;
+
+    @Schema(description = "银商免密支付签约协议号")
+    private String contractId;
+
+    @Schema(description = "签约时间")
+    private Long signedTime;
+
+    @Schema(description = "协议签约时间,格式:yyyy-MM-dd HH:mm:ss")
+    private String contractSignedTime;
+
+    @Schema(description = "协议到期时间,格式:yyyy-MM-dd HH:mm:ss")
+    private String contractExpiredTime;
+
+    @Schema(description = "签约订单过期时间")
+    private Long expiredTime;
+}

+ 31 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/model/UnionUserOpenInfoSearch.java

@@ -0,0 +1,31 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.model;
+
+import com.zhongshu.card.client.model.base.SuperSearch;
+import com.github.microservice.types.unionFrictionlessPayType.UnionUserOpenType;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author TRX
+ * @date 2024/8/27
+ */
+@Data
+public class UnionUserOpenInfoSearch extends SuperSearch {
+    @Schema(description = "签约类型")
+    private UnionUserOpenType unionUserOpenType;
+
+    @Schema(description = "用户ID")
+    private String userId;
+
+    @Schema(description = "商户代码")
+    private String mid;
+
+    @Schema(description = "商户oid")
+    private String shopOid;
+
+    @Schema(description = "商户签约协议号(本地生成的唯一号)")
+    private String contractNo;
+
+    @Schema(description = "银商免密支付签约协议号")
+    private String contractId;
+}

+ 28 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/paymentModel/SignInParam.java

@@ -0,0 +1,28 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.paymentModel;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotEmpty;
+import lombok.Data;
+
+/**
+ * 签约参数 (前台传过来的参数)
+ *
+ * @author TRX
+ * @date 2024/8/27
+ */
+@Data
+public class SignInParam {
+
+    @Schema(description = "用户userId")
+    private String userId;
+
+    @Schema(description = "商户ID")
+    private String shopOid;
+
+    @Schema(hidden = true, description = "商户微信小程序id, 交易发起场景03:小程序,必传用于签约完成/失败/取消后跳转")
+    private String mchntWxMpAppId;
+
+    @Schema(description = "签约后跳转的页面")
+    @NotEmpty(message = "mchntWxMpPath不能为空")
+    private String mchntWxMpPath;
+}

+ 24 - 0
SecretKeyClient/src/main/java/com/zhongshu/secretKey/client/payModel/unionFrictionlessPay/paymentModel/UserRescissionParam.java

@@ -0,0 +1,24 @@
+package com.zhongshu.secretKey.client.payModel.unionFrictionlessPay.paymentModel;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.internal.build.AllowPrintStacktrace;
+
+/**
+ * 用户解约的参数
+ *
+ * @author TRX
+ * @date 2024/9/2
+ */
+@Data
+@AllowPrintStacktrace
+@NoArgsConstructor
+public class UserRescissionParam {
+
+    @Schema(description = "用户ID", hidden = true)
+    private String userId;
+
+    @Schema(description = "签约协议号")
+    private String contractId;
+}

Some files were not shown because too many files changed in this diff