package com.ruoyi.system.service; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.system.domain.EtOrder; import com.wechat.pay.java.service.payments.jsapi.model.PrepayWithRequestPaymentResponse; import com.wechat.pay.java.service.payments.model.Transaction; import com.wechat.pay.java.service.profitsharing.model.AddReceiverResponse; import com.wechat.pay.java.service.profitsharing.model.CreateOrderReceiver; import com.wechat.pay.java.service.profitsharing.model.DeleteReceiverResponse; import com.wechat.pay.java.service.profitsharing.model.OrdersEntity; import com.wechat.pay.java.service.refund.model.Refund; import com.wechat.pay.java.service.transferbatch.model.InitiateBatchTransferResponse; import com.wechat.pay.java.service.transferbatch.model.TransferDetailInput; import java.math.BigDecimal; import java.util.List; /** * 微信支付服务接口 * @author 辉 * 2024/3/11 */ public interface IWxPayService { /** * 生成微信预支付订单 * @param order 平台订单 * @return JSAPI调用 */ PrepayWithRequestPaymentResponse prepayWithRequestPayment(String payType, EtOrder order); /** * 生成微信预支付订单(优惠券) * @param order 平台订单 * @return JSAPI调用 */ PrepayWithRequestPaymentResponse prepayWithRequestPayment(EtOrder order); // /** // * 关闭订单 // * @param billNo 平台订单编号 // */ // void closeOrder(String billNo); // // /** // * 通过微信订单id查询订单信息 // * @param prePayId 微信订单id // * @return 订单信息 // */ // Transaction queryOrderById(String prePayId); /** * 通过商户订单号查询订单信息 * @param outTradeNo 商户订单号 * @return 订单信息 */ Transaction queryOrderByOutTradeNo(String outTradeNo); /** * 关闭订单 * @param outTradeNo 商户订单号 * @return 订单信息 */ boolean closeOrder(String outTradeNo,SysDept sysDept); /** * 根据订单号查询订单支付结果 * @param orderNo 订单号 * @return 订单信息 */ Boolean queryResultByOrderNo(String orderNo); /** * 退款 * @param etOrder 原订单对象 * @param reason 退款原因 * @param amount 退款金额 * @param outRefundNo 退款订单号 */ void refund(EtOrder etOrder, String reason, BigDecimal amount, String outRefundNo); /** * 发起商家转账 * @param sysDept 运营商对象 * @param batchNo 批次号 * @param batchName 批次名称 * @param batchRemark 转账说明 * @param totalAmount 转账总金额 * @param totalNum 转账总笔数 * @param transferDetailInputs 转账明细列表 */ InitiateBatchTransferResponse transfer(SysDept sysDept,String batchNo,String batchName,String batchRemark,BigDecimal totalAmount,Integer totalNum,List transferDetailInputs); /** * 根据退款单号查询退款信息 * @param outRefundNo 退款单号 */ Refund queryByOutRefundNo(Long areaId,String outRefundNo); /** * 根据运营区id获取运营商对象 * @param areaId 运营区id */ public SysDept getDeptObjByAreaId(Long areaId); /** * 请求分账API * @param sysDept 运营商 * @param transactionId 微信支付单号 * @param receivers 分账接收方 */ // public OrdersEntity createOrder(SysDept sysDept, String transactionId, List receivers); /** * 添加分账接收方 * @param wxopenid openid * @param deptId 运营商id */ AddReceiverResponse addReceiver(String wxopenid,Long deptId,String type); /** * 删除分账接收方 * @param wxopenid openid * @param deptId 运营商id */ DeleteReceiverResponse deleteReceiver(String wxopenid,Long deptId,String type); }