TRX 1 year ago
parent
commit
f40fe7c38c

+ 2 - 0
PaymentClient/src/main/java/com/zhongshu/payment/client/model/RechargeRecordModel.java

@@ -60,4 +60,6 @@ public class RechargeRecordModel {
     private String remark;
 
     private WalletModel walletModel;
+
+
 }

+ 52 - 0
PaymentClient/src/main/java/com/zhongshu/payment/client/payModel/commn/CreateOrderParam.java

@@ -0,0 +1,52 @@
+package com.zhongshu.payment.client.payModel.commn;
+
+import com.github.microservice.models.type.PaymentType;
+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 {
+
+    @Schema(description = "支付方式")
+    private PaymentType paymentType;
+
+    @Schema(description = "项目oid")
+    private String projectOid;
+
+    @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 = "订单号")
+    @NotEmpty(message = "订单号不能为空")
+    private String outTradeNo;
+
+    @Schema(description = "附加信息")
+    private Object attach;
+
+    @Schema(description = "商品描述")
+    private String description;
+}

+ 14 - 0
PaymentClient/src/main/java/com/zhongshu/payment/client/payModel/commn/PayOrderParam.java

@@ -0,0 +1,14 @@
+package com.zhongshu.payment.client.payModel.commn;
+
+import lombok.Builder;
+import lombok.Data;
+
+/**
+ * @author TRX
+ * @date 2024/8/23
+ */
+@Data
+@Builder
+public class PayOrderParam {
+    private String outTradeNo;
+}

+ 29 - 0
PaymentClient/src/main/java/com/zhongshu/payment/client/service/OrderPayFeignService.java

@@ -0,0 +1,29 @@
+package com.zhongshu.payment.client.service;
+
+import com.github.microservice.net.ResultContent;
+import com.zhongshu.payment.client.model.WalletModel;
+import com.zhongshu.payment.client.model.param.AmountUpdateParam;
+import com.zhongshu.payment.client.payModel.commn.CreateOrderParam;
+import com.zhongshu.payment.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;
+
+import javax.validation.Valid;
+
+/**
+ * @author
+ */
+@FeignClient("paymentserver-trx/manager/orderPay")
+public interface OrderPayFeignService {
+
+    /**
+     * 创建订单和支付
+     */
+    @RequestMapping(value = "createAndPay", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
+    ResultContent createAndPay(@RequestBody @Valid CreateOrderParam param);
+
+}

+ 5 - 0
PaymentClient/src/main/java/com/zhongshu/payment/client/service/WalletFeignService.java

@@ -26,6 +26,9 @@ public interface WalletFeignService {
             @RequestParam("shopId") String shopId,
             @RequestParam ("userId")String userId);
 
+
+
+
     /** 充值 */
     @RequestMapping(value = "recharge", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
     ResultContent recharge(@RequestBody AmountUpdateParam param);
@@ -34,6 +37,8 @@ public interface WalletFeignService {
     @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);

+ 24 - 0
PaymentServer/src/main/java/com/zhongshu/payment/server/core/controller/feign/OrderPayFeignController.java

@@ -0,0 +1,24 @@
+package com.zhongshu.payment.server.core.controller.feign;
+
+import com.github.microservice.core.delegate.DelegateMapping;
+import com.zhongshu.payment.client.service.OrderPayFeignService;
+import com.zhongshu.payment.client.service.WalletFeignService;
+import lombok.experimental.Delegate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author TRX
+ * @date 2024/8/23
+ */
+@RestController
+@RequestMapping("manager/orderPay")
+@DelegateMapping(types = OrderPayFeignService.class)
+public class OrderPayFeignController implements OrderPayFeignService {
+
+    @Autowired
+    @Delegate
+    private OrderPayFeignService orderPayFeignService;
+
+}

+ 9 - 1
PaymentServer/src/main/java/com/zhongshu/payment/server/core/domain/wallet/RechargeRecord.java

@@ -66,7 +66,7 @@ public class RechargeRecord extends SuperEntity {
     @Indexed(unique = true)
     private String outTradeNo;
 
-    @Schema(name = "rechargeState", description = "订单状态")
+    @Schema(name = "rechargeState", description = "订单状态,未支付、支付成功 ...")
     @Indexed
     private RechargeState rechargeState;
 
@@ -95,14 +95,22 @@ public class RechargeRecord extends SuperEntity {
     @Schema(name = "failReason", description = "失败原因")
     private String failReason;
 
+    @Schema(description = "")
     private TransferModel transferModel;
 
     @Schema(name = "userInfo", description = "用户信息")
     @Indexed
     private OrganizationUserModel userInfo;
 
+    @Schema(description = "备注")
     private String remark;
 
+    @Schema(description = "附加信息")
+    private Object attach;
+
+    @Schema(description = "订单支付说明")
+    private String payMsg;
+
     @Schema(description = "年份,如:2024")
     private Integer year;
 

+ 3 - 2
PaymentServer/src/main/java/com/zhongshu/payment/server/core/service/RechargeService.java

@@ -20,6 +20,7 @@ import com.zhongshu.payment.client.model.RechargeRecordModel;
 import com.zhongshu.payment.client.model.param.OrderParam;
 import com.zhongshu.payment.client.model.param.RechargeParam;
 import com.zhongshu.payment.client.payModel.commn.ClosePayOrderParam;
+import com.zhongshu.payment.client.payModel.commn.CreateOrderParam;
 import com.zhongshu.payment.client.payModel.commn.PayNotifyParam;
 import com.zhongshu.payment.client.types.RechargeState;
 import com.zhongshu.payment.client.types.TradeType;
@@ -98,7 +99,7 @@ public class RechargeService extends SuperService {
     /**
      * 创建充值本地订单
      */
-    public Object createLocalOrder(RechargeParam param) {
+    public ResultContent<RechargeRecordModel> createLocalOrder(RechargeParam param) {
         String userId = authHelper.getCurrentUser().getUserId();
         Wallet userWallet = walletDao.findTop1ById(param.getWalletId());
         //判断钱包是否初始化
@@ -297,7 +298,7 @@ public class RechargeService extends SuperService {
         return ResultContent.buildSuccess(toModel(record));
     }
 
-    private RechargeRecordModel toModel(RechargeRecord record) {
+    public RechargeRecordModel toModel(RechargeRecord record) {
         RechargeRecordModel model = new RechargeRecordModel();
         if (record != null) {
             BeanUtils.copyProperties(record, model, "total");

+ 42 - 0
PaymentServer/src/main/java/com/zhongshu/payment/server/core/service/pay/OrderPayService.java

@@ -0,0 +1,42 @@
+package com.zhongshu.payment.server.core.service.pay;
+
+import com.github.microservice.core.helper.ApplicationContextHolder;
+import com.github.microservice.models.type.PaymentType;
+import com.github.microservice.net.ResultContent;
+import com.github.microservice.net.ResultMessage;
+import com.zhongshu.payment.client.payModel.commn.CreateOrderParam;
+import com.zhongshu.payment.client.service.OrderPayFeignService;
+import com.zhongshu.payment.server.core.dao.ExecuteMethodInfoDao;
+import com.zhongshu.payment.server.core.domain.unionFrictionlessPay.ExecuteMethodInfo;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * @author TRX
+ * @date 2024/8/23
+ */
+@Slf4j
+@Service
+public class OrderPayService implements OrderPayFeignService {
+
+    @Autowired
+    ExecuteMethodInfoDao executeMethodInfoDao;
+
+    @Override
+    public ResultContent createAndPay(CreateOrderParam param) {
+        PaymentType paymentType = param.getPaymentType();
+        if (paymentType == null) {
+            return ResultContent.buildFail("paymentType 不能为空");
+        }
+        ExecuteMethodInfo executeMethodInfo = executeMethodInfoDao.findTopByPaymentType(paymentType);
+        if (ObjectUtils.isEmpty(executeMethodInfo)) {
+            return ResultContent.buildFail(String.format(ResultMessage.SERVICE_NAME_NOT_EXIT, paymentType.getRemark()));
+        }
+        SuperPayService service = (SuperPayService) ApplicationContextHolder.getContext().getBean(executeMethodInfo.getBeanName());
+        return service.createAndPayOrder(param);
+    }
+
+}

+ 12 - 0
PaymentServer/src/main/java/com/zhongshu/payment/server/core/service/pay/SuperPayService.java

@@ -9,7 +9,9 @@ import com.zhongshu.payment.client.model.WalletModel;
 import com.zhongshu.payment.client.model.param.OrderParam;
 import com.zhongshu.payment.client.model.param.WalletQueryParam;
 import com.zhongshu.payment.client.payModel.commn.ClosePayOrderParam;
+import com.zhongshu.payment.client.payModel.commn.CreateOrderParam;
 import com.zhongshu.payment.client.payModel.commn.PayNotifyParam;
+import com.zhongshu.payment.client.payModel.commn.PayOrderParam;
 import com.zhongshu.payment.server.core.utils.CommonUtil;
 import jakarta.servlet.http.HttpServletRequest;
 import lombok.extern.slf4j.Slf4j;
@@ -31,6 +33,12 @@ public abstract class SuperPayService {
     // 根据本地 创建渠道支付订单
     public abstract ResultContent createChannelOrder(OrderParam param);
 
+    // 创建并支付订单
+    public abstract ResultContent createAndPayOrder(CreateOrderParam param);
+
+    // 支付订单
+    public abstract ResultContent payOrder(PayOrderParam param);
+
     // 支付回调
     public abstract ResultContent payNotify(HttpServletRequest request, PayNotifyParam param);
 
@@ -55,4 +63,8 @@ public abstract class SuperPayService {
     public OperationLogsAddParam initLog() {
         return CommonUtil.initLog(request, getCurrentUserId());
     }
+
+    public OperationLogsAddParam initLog(String userId) {
+        return CommonUtil.initLog(request, userId);
+    }
 }

+ 12 - 0
PaymentServer/src/main/java/com/zhongshu/payment/server/core/service/pay/impl/unionFrictionlessPay/UnionFrictionlessPayMainService.java

@@ -7,7 +7,9 @@ import com.zhongshu.payment.client.model.WalletModel;
 import com.zhongshu.payment.client.model.param.OrderParam;
 import com.zhongshu.payment.client.model.param.WalletQueryParam;
 import com.zhongshu.payment.client.payModel.commn.ClosePayOrderParam;
+import com.zhongshu.payment.client.payModel.commn.CreateOrderParam;
 import com.zhongshu.payment.client.payModel.commn.PayNotifyParam;
+import com.zhongshu.payment.client.payModel.commn.PayOrderParam;
 import com.zhongshu.payment.server.core.service.pay.SuperPayService;
 import jakarta.servlet.http.HttpServletRequest;
 import lombok.extern.slf4j.Slf4j;
@@ -35,6 +37,16 @@ public class UnionFrictionlessPayMainService extends SuperPayService {
         return ResultContent.buildSuccess();
     }
 
+    public ResultContent createAndPayOrder(CreateOrderParam param) {
+
+        return ResultContent.buildFail("暂未实现");
+    }
+
+    public ResultContent payOrder(PayOrderParam param) {
+
+        return ResultContent.buildFail("暂未实现");
+    }
+
     /***
      * 支付成功回调
      * @param request

+ 168 - 2
PaymentServer/src/main/java/com/zhongshu/payment/server/core/service/pay/impl/wallet/WalletMainService.java

@@ -1,39 +1,55 @@
 package com.zhongshu.payment.server.core.service.pay.impl.wallet;
 
 import ch.qos.logback.core.util.StringUtil;
-import cn.hutool.json.JSONUtil;
-import cn.hutool.json.ObjectMapper;
 import com.github.microservice.auth.security.helper.AuthHelper;
 import com.github.microservice.models.type.PaymentType;
 import com.github.microservice.net.ResultContent;
 import com.zhongshu.card.client.model.feign.ProjectWxPayParam;
+import com.zhongshu.card.client.model.operLogs.OperationLogsAddParam;
+import com.zhongshu.card.client.model.org.OrgUserDetailParam;
 import com.zhongshu.card.client.model.org.OrganizationSimpleModel;
+import com.zhongshu.card.client.model.org.OrganizationUserModel;
 import com.zhongshu.card.client.model.org.UserCountModel;
 import com.zhongshu.card.client.model.payment.paySetting.WxPayConfigModel;
 import com.zhongshu.card.client.service.feign.OrganizationFeignService;
 import com.zhongshu.card.client.service.feign.ProjectPaySettingFeignService;
 import com.zhongshu.card.client.service.feign.UserFeignService;
+import com.zhongshu.card.client.type.LogsLevel;
+import com.zhongshu.card.client.type.MessageType;
 import com.zhongshu.payment.client.annotation.PayAnnotationService;
+import com.zhongshu.payment.client.model.RechargeRecordModel;
 import com.zhongshu.payment.client.model.WalletModel;
 import com.zhongshu.payment.client.model.WalletOrderModel;
+import com.zhongshu.payment.client.model.param.AmountUpdateParam;
 import com.zhongshu.payment.client.model.param.GetWalletParam;
 import com.zhongshu.payment.client.model.param.OrderParam;
 import com.zhongshu.payment.client.model.param.WalletQueryParam;
 import com.zhongshu.payment.client.payModel.commn.ClosePayOrderParam;
+import com.zhongshu.payment.client.payModel.commn.CreateOrderParam;
 import com.zhongshu.payment.client.payModel.commn.PayNotifyParam;
+import com.zhongshu.payment.client.payModel.commn.PayOrderParam;
+import com.zhongshu.payment.client.types.RechargeState;
+import com.zhongshu.payment.client.types.TradeType;
 import com.zhongshu.payment.client.types.WalletState;
 import com.zhongshu.payment.client.types.WalletType;
 import com.zhongshu.payment.server.core.dao.RechargeRecordDao;
 import com.zhongshu.payment.server.core.dao.WalletDao;
+import com.zhongshu.payment.server.core.dao.WalletFlowDao;
+import com.zhongshu.payment.server.core.dataConfig.TimeConfig;
+import com.zhongshu.payment.server.core.domain.wallet.RechargeRecord;
 import com.zhongshu.payment.server.core.domain.wallet.Wallet;
+import com.zhongshu.payment.server.core.domain.wallet.WalletFlow;
+import com.zhongshu.payment.server.core.service.RechargeService;
 import com.zhongshu.payment.server.core.service.pay.SuperPayService;
 import com.zhongshu.payment.server.core.utils.BeanUtils;
+import com.zhongshu.payment.server.core.utils.CommonUtil;
 import groovy.util.logging.Slf4j;
 import jakarta.servlet.http.HttpServletRequest;
 import org.apache.commons.lang3.ObjectUtils;
 import org.jetbrains.annotations.NotNull;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 
@@ -66,6 +82,12 @@ public class WalletMainService extends SuperPayService {
     @Autowired
     UserFeignService userFeignService;
 
+    @Autowired
+    RechargeService rechargeService;
+
+    @Autowired
+    WalletFlowDao walletFlowDao;
+
     /**
      * 创建渠道支付订单
      *
@@ -77,6 +99,137 @@ public class WalletMainService extends SuperPayService {
         return ResultContent.buildFail("钱包不支持创建订单");
     }
 
+    /**
+     * 创建并支付订单
+     *
+     * @param param
+     * @return
+     */
+    @Override
+    public ResultContent createAndPayOrder(CreateOrderParam param) {
+        String userId = param.getUserId();
+        // 查找钱包
+        WalletQueryParam walletQueryParam = new WalletQueryParam();
+        walletQueryParam.setProjectOid(param.getProjectOid());
+        walletQueryParam.setUserId(userId);
+        walletQueryParam.setWalletType(WalletType.User);
+        walletQueryParam.setShopId(param.getShopId());
+        Wallet userWallet = findWallet(walletQueryParam);
+
+        //判断钱包是否初始化
+        if (userWallet == null) {
+            return ResultContent.buildFail("用户钱包未开通");
+        }
+        if (userWallet.getDataState().equals(WalletState.Disable)) {
+            return ResultContent.buildFail("钱包已停用");
+        }
+        if (userWallet.getWalletType().equals(WalletType.Shop)) {
+            return ResultContent.buildFail("商户提现暂未开通线上充值功能");
+        }
+        BigDecimal total = param.getTotal();
+        if (CommonUtil.bigDecimalIsEmpty(total)) {
+            return ResultContent.buildFail("total错误");
+        }
+        String outTradeNo = param.getOutTradeNo();
+
+        RechargeRecord rechargeRecord = rechargeRecordDao.findByOutTradeNo(outTradeNo);
+        if (rechargeRecord == null) {
+            // 创建充值订单
+            rechargeRecord = new RechargeRecord();
+            // 所属项目oid
+            rechargeRecord.setOid(param.getProjectOid());
+            // 所属学校oid
+            rechargeRecord.setSchoolId(param.getSchoolId());
+            // 所属商户oid
+            rechargeRecord.setShopId(param.getShopId());
+            // 用户userId
+            rechargeRecord.setUserId(userId);
+            // 消费方式
+            rechargeRecord.setPaymentType(param.getPaymentType());
+            // 消费
+            rechargeRecord.setTradeType(TradeType.Pay);
+            // 订单号(唯一)
+            rechargeRecord.setOutTradeNo(outTradeNo);
+            // 未支付状态
+            rechargeRecord.setRechargeState(RechargeState.NOTPAY);
+            rechargeRecord.setDescription(param.getDescription());
+            // 金额
+            rechargeRecord.setTotal(total);
+            // 是否提交到支付渠道
+            rechargeRecord.setCommit(true);
+
+            // 时间信息
+            long createTIme = System.currentTimeMillis();
+            rechargeRecord.setCreateTime(createTIme);
+            rechargeRecord.setTimes();
+            // 订单过期时间
+            rechargeRecord.setExpireTime(createTIme + TimeConfig.rechargeExpireTime);
+
+            // 查询用户在学校的信息
+            OrgUserDetailParam orgUserDetailParam = new OrgUserDetailParam();
+            orgUserDetailParam.setOid(param.getSchoolId());
+            orgUserDetailParam.setUserId(userWallet.getUserId());
+            ResultContent<OrganizationUserModel> orgUserDetail = organizationFeignService.getOrgUserDetail(orgUserDetailParam);
+            if (orgUserDetail.isFailed()) {
+                return ResultContent.buildFail("获取用户信息失败");
+            }
+            rechargeRecord.setUserInfo(orgUserDetail.getContent());
+            rechargeRecord.setWallet(userWallet);
+            rechargeRecord.setAttach(param.getAttach());
+            rechargeRecordDao.save(rechargeRecord);
+        }
+        return payOrder(PayOrderParam.builder().outTradeNo(outTradeNo).build());
+    }
+
+    @Override
+    @Transactional
+    public ResultContent payOrder(PayOrderParam param) {
+        RechargeRecord rechargeRecord = rechargeRecordDao.findByOutTradeNo(param.getOutTradeNo());
+        if (rechargeRecord == null) {
+            return ResultContent.buildFail(String.format("订单数据未找到", param.getOutTradeNo()));
+        }
+        if (rechargeRecord.getRechargeState() != RechargeState.NOTPAY) {
+            return ResultContent.buildFail(String.format("订单状态不为未支付状态:%s", rechargeRecord.getRechargeState().getRemark()));
+        }
+        if (rechargeRecord.getExpireTime() <= System.currentTimeMillis()) {
+            rechargeRecord.setRechargeState(RechargeState.CLOSED);
+            rechargeRecordDao.save(rechargeRecord);
+            return ResultContent.buildFail("订单支付过期,已关闭");
+        }
+
+        WalletQueryParam queryParam = WalletQueryParam.builder().projectOid(rechargeRecord.getOid())
+                .walletType(WalletType.User)
+                .userId(rechargeRecord.getUserId())
+                .shopId(rechargeRecord.getShopId()).build();
+        Wallet userWallet = findWallet(queryParam);
+        BigDecimal total = rechargeRecord.getTotal();
+        if (userWallet.getAmount().compareTo(total) < 0) {
+            return ResultContent.buildFail("可用余额不足");
+        }
+        if (userWallet.getTotalAmount().compareTo(total) < 0) {
+            return ResultContent.buildFail("总额不足");
+        }
+        userWallet.setAmount(userWallet.getAmount().subtract(total));
+        userWallet.setTotalAmount(userWallet.getTotalAmount().subtract(total));
+        walletDao.save(userWallet);
+        // 个人钱包流水
+        createWalletFlow(userWallet.getId(), total, param.getOutTradeNo(), TradeType.Pay, rechargeRecord.getAttach(), rechargeRecord.getSchoolId());
+
+        WalletQueryParam shopQuery = WalletQueryParam.builder().projectOid(rechargeRecord.getOid())
+                .walletType(WalletType.Shop)
+                .userId(rechargeRecord.getUserId())
+                .shopId(rechargeRecord.getShopId()).build();
+
+        Wallet shopWallet = findWallet(shopQuery);
+        shopWallet.setAmount(shopWallet.getAmount().add(total));
+        shopWallet.setTotalAmount(shopWallet.getTotalAmount().add(total));
+        walletDao.save(shopWallet);
+        // 商户钱包流水
+        createWalletFlow(shopWallet.getId(), total, param.getOutTradeNo(), TradeType.InCome, rechargeRecord.getAttach(), rechargeRecord.getSchoolId());
+        return ResultContent.buildSuccess();
+    }
+
+
     @Override
     public ResultContent payNotify(HttpServletRequest request, PayNotifyParam param) {
         return ResultContent.buildFail("钱包不支持成功回调");
@@ -100,6 +253,19 @@ public class WalletMainService extends SuperPayService {
 
     //----------------------------渠道的方法 start-----------------------
 
+    private WalletFlow createWalletFlow(String walletId, BigDecimal total, String outTradeNo, TradeType type, Object attach, String schoolId) {
+        WalletFlow walletFlow = new WalletFlow();
+        Wallet wallet = new Wallet();
+        wallet.setId(walletId);
+        walletFlow.setWallet(wallet);
+        walletFlow.setTotal(total);
+        walletFlow.setOutTradeNo(outTradeNo);
+        walletFlow.setTradeType(type);
+        walletFlow.setAttach(attach);
+        walletFlow.setSchoolId(schoolId);
+        return walletFlowDao.save(walletFlow);
+    }
+
     @NotNull
     public Wallet findWallet(WalletQueryParam param) {
         String oid = param.getProjectOid();

+ 12 - 0
PaymentServer/src/main/java/com/zhongshu/payment/server/core/service/pay/impl/wxPaymentV3/WxPaymentMainService.java

@@ -22,7 +22,9 @@ import com.zhongshu.payment.client.model.WalletModel;
 import com.zhongshu.payment.client.model.param.OrderParam;
 import com.zhongshu.payment.client.model.param.WalletQueryParam;
 import com.zhongshu.payment.client.payModel.commn.ClosePayOrderParam;
+import com.zhongshu.payment.client.payModel.commn.CreateOrderParam;
 import com.zhongshu.payment.client.payModel.commn.PayNotifyParam;
+import com.zhongshu.payment.client.payModel.commn.PayOrderParam;
 import com.zhongshu.payment.client.types.RechargeState;
 import com.zhongshu.payment.server.core.dao.RechargeRecordDao;
 import com.zhongshu.payment.server.core.domain.wallet.RechargeRecord;
@@ -120,6 +122,16 @@ public class WxPaymentMainService extends SuperPayService {
         return prepayResult;
     }
 
+    public ResultContent createAndPayOrder(CreateOrderParam param) {
+
+        return ResultContent.buildFail("暂未实现");
+    }
+
+    public ResultContent payOrder(PayOrderParam param) {
+
+        return ResultContent.buildFail("暂未实现");
+    }
+
     /**
      * 支付回调
      *