package com.fzm.mall.pay.service;

import com.fzm.mall.pay.entity.dto.WxRefundDTO;
import com.fzm.mall.pay.entity.dto.WxUnifiedOrderDTO;

import java.io.IOException;

/**
 * @author wangp
 * @date 2021/4/14 16:28
 * @description 微信Native支付
 * @since JDK 1.8
 */
public interface IWxNativePayService {

    /**
     * 统一下单
     *
     * @param dto 微信统一下单信息
     * @return
     */
    String CreateOrder(WxUnifiedOrderDTO dto) throws IOException;

    /**
     * 微信支付订单号查询
     *
     * @param transactionId 微信支付订单号
     * @return
     */
    String QueryOrderByTransactionId(String transactionId);

    /**
     * 商户订单号查询
     *
     * @param outTradeNo 商户订单号
     * @return
     */
    String QueryOrderByOutTradeNo(String outTradeNo);

    /**
     * 关闭订单
     *
     * @param outTradeNo 商户订单号
     * @return
     */
    String CloseOrder(String outTradeNo);

    /**
     * 申请退款
     *
     * @param dto 微信退款信息
     * @return
     */
    String ApplyRefund(WxRefundDTO dto);

    /**
     * 查询单笔退款
     *
     * @param outRefundNo 商户退款单号
     * @return
     */
    String QueryRefund(String outRefundNo);

    /**
     * 申请交易账单
     *
     * @param billDate 账单日期
     * @return
     */
    String applyTradeBill(String billDate);

    /**
     * 申请资金账单
     *
     * @param billDate
     * @return
     */
    String applyFundFlowBill(String billDate);
}


