package com.jeesharp.business.modules.finance.api;

import com.jeesharp.business.modules.finance.payrefund.dto.PayRefundCreateDTO;

import java.util.Map;

/**
 * 支付退款跨模块 API，供商城售后等模块发起退款与处理微信回调。
 *
 * @author jeesharp
 * @since 2026-06-11
 */
public interface PayRefundApi {

    /**
     * 创建并发起微信退款（跨业态统一入口）。
     * <p>商城：{@code mallOrderId} 或 {@code bizOrderId}，合单退款可传 {@code payBatchId}；
     * 其他业态：{@code bizScene} + {@code bizOrderId}，无需 {@code payBatchId}。</p>
     *
     * @return 退款单主键
     */
    String createAndExecute(PayRefundCreateDTO dto);

    /**
     * 手动重试退款（运营/定时任务）。
     */
    void retry(String refundOrderId);

    /**
     * 微信退款异步通知处理。
     */
    void handleWechatNotify(String rawBody, Map<String, String> headers) throws Exception;
}
