package com.cdzy.payment.service; import com.alibaba.fastjson2.JSONObject; import com.cdzy.payment.model.dto.EbikeRefundDto; import com.cdzy.payment.model.dto.EbikeRefundProcessDto; import com.cdzy.payment.model.dto.EbikeRefundQueryDto; import com.cdzy.payment.model.vo.EbikeRefundApplyOrderInfoVo; import com.cdzy.payment.model.vo.EbikeRefundOrderDetailVo; import com.cdzy.payment.model.vo.EbikeRefundUserDetailInfoVo; import com.cdzy.payment.model.vo.EbikeWxHandleNotifyVo; import com.mybatisflex.core.paginate.Page; import com.wechat.pay.java.service.payments.model.Transaction; import com.wechat.pay.java.service.refund.model.Refund; import javax.servlet.http.HttpServletRequest; /** * 微信支付服务类(JSAPI支付),小程序 * * @author: yanglei * @since: 2025-10-17 09:22 */ public interface EbikeWxPayService { /** * 关闭订单 * * @param outTradeNo 商户(骑行)订单号 * @return true 成功 false 失败 */ boolean closeOrder(String outTradeNo); /** * JSAPI支付下单 * * @param orderId 订单id * @return 下单成功返回wx支付请求参数,否则返回null */ JSONObject prepay(String orderId); /** * 通过支付订单号查询支付订单 * * @param outTradeNo 支付订单号 * @return 支付订单信息 */ Transaction queryOrderByOutTradeNo(String outTradeNo); /** * 通过商户(骑行)订单号查询支付订单 * * @param orderId 商户(骑行)订单号 * @return 支付订单信息 */ Transaction queryOrderByOrderId(String orderId); /** * 通过订单号查询支付订单状态 * * @param orderId 商户(骑行)订单号 * @return 支付订单信息 */ EbikeWxHandleNotifyVo queryOrderStatusByOrderId(String orderId); /** * 处理支付回调 * * @param request 回调请求 * @return 支付订单信息 */ EbikeWxHandleNotifyVo handlePayNotify(HttpServletRequest request); /** * 退款申请 * * @param outTradeNo 商户(骑行)订单号 * @param reason 退款原因 * @return 退款信息id */ Long refundApply(String outTradeNo, String reason); /** * 审核退款申请 * * @param processDto 退款审核信息 * @return 退款信息id * @operator 操作人id */ Boolean refundReview(EbikeRefundProcessDto processDto, String operator); /** * 调用微信退款接口 * * @param refundDto 退款请求 * @param operator 操作人id * @return 退款信息id */ EbikeWxHandleNotifyVo refund(EbikeRefundDto refundDto, String operator); /** * 通过商户退款id查询退款信息 * * @param refundId 商户退款订主键 * @return 退款信息 */ Refund queryRefundById(Long refundId); /** * 通过商户退款单号查询退款信息 * * @param outTradeNo 商户退款订单号 * @return 退款信息 */ Refund queryRefundByOutTradeNo(String outTradeNo); /** * 通过退款记录主键id查询退款信息状态 * * @param refundId 退款记录主键id * @return 退款状态信息 */ EbikeWxHandleNotifyVo queryRefundStatusById(Long refundId); /** * 处理支退款回调 * * @param request 回调请求 * @return 退款订单信息 */ EbikeWxHandleNotifyVo handleRefundNotify(HttpServletRequest request); /** * 获取退款列表 * * @param refundDto 查询条件 * @return 退款列表 */ Page queryRefundList(EbikeRefundQueryDto refundDto); /** * 退款订单详情 * * @param refundId 退款id * @return 退款详情 */ EbikeRefundOrderDetailVo queryRefundOrderById(Long refundId); /** * 退款申请订单详情 * * @param orderId 订单id * @return 退款申请详情 */ EbikeRefundApplyOrderInfoVo queryRefundApplyOrderById(String orderId); /** * 获取退款申请用户详情 * * @param refundId 退款id * @return 退款申请用户详情 */ EbikeRefundUserDetailInfoVo queryRefundUserInfoById(Long refundId); }