package com.cdzy.payment.service; import com.cdzy.payment.model.vo.EbikeWxHandleNotifyVo; import com.ebike.feign.model.dto.FeignEbikeRefundDto; import com.fasterxml.jackson.databind.JsonNode; 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 */ JsonNode prepay(Long orderId); /** * 通过支付订单号查询支付订单 * * @param outTradeNo 支付订单号 * @return 支付订单信息 */ Transaction queryOrderByOutTradeNo(String outTradeNo); /** * 通过商户(骑行)订单号查询支付订单 * * @param orderId 商户(骑行)订单号 * @return 支付订单信息 */ Transaction queryOrderByOrderId(Long orderId); /** * 通过订单号查询支付订单状态 * * @param orderId 商户(骑行)订单号 * @return 支付订单信息 */ EbikeWxHandleNotifyVo queryOrderStatusByOrderId(Long orderId); /** * 处理支付回调 * * @param request 回调请求 * @return 支付订单信息 */ EbikeWxHandleNotifyVo handlePayNotify(HttpServletRequest request); /** * 调用微信退款接口 * * @param refundDto 退款请求 * @return 退款信息id */ EbikeWxHandleNotifyVo refund(FeignEbikeRefundDto refundDto); /** * 通过商户退款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); }