package com.cdzy.payment.service; import com.alibaba.fastjson2.JSONObject; import com.cdzy.payment.model.dto.AmountDto; import com.cdzy.payment.model.dto.AmountRefundDto; import com.cdzy.payment.model.dto.DetailDto; import com.wechat.pay.java.service.payments.model.Transaction; import com.wechat.pay.java.service.refund.model.Refund; /** * 微信支付服务类(JSAPI支付),小程序 * * @author dingchao * @date 2025/4/25 * @modified by: */ public interface WxPayService { /** * 关闭订单 * * @param outTradeNo 商户(骑行)订单号 * @return */ boolean closeOrder(String outTradeNo); /** * JSAPI支付下单 * * @param outTradeNo 商户(骑行)订单号 * @param description 商品描述 * @param goodsTag 商品标记 * @param openId 用户标识 * @param amount 金额 * @param detail 商品详情 * @param clientIp 客户端IP * @return 下单成功返回true,否则返回false */ JSONObject prepay(String outTradeNo, String description, String goodsTag, String openId, AmountDto amount, DetailDto detail, String clientIp); /** * 通过交易订单号查询支付订单 * * @param transactionId 微信支付订单号 * @return 支付订单信息 */ Transaction queryOrderById(String transactionId); /** * 通过商户(骑行)订单号查询支付订单 * * @param outTradeNo 商户(骑行)订单号 * @return 支付订单信息 */ Transaction queryOrderByOutTradeNo(String outTradeNo); /** * 退款申请 * * @param transactionId 微信支付订单号 * @param outTradeNo 商户(骑行)订单号 * @param reason 退款原因 * @param amount 退款金额 * @return 退款信息id */ String refund(String transactionId, String outTradeNo, String reason, AmountRefundDto amount); /** * 通过商户退款单号查询退款信息 * * @param outRefundNo 商户退款订单号 * @return 退款信息 */ Refund queryRefundByOutNo(String outRefundNo); }