package com.fs.tzBank;

import com.fs.huifuPay.dto.*;

/**
 * 台州银行服务类
 */
public interface TzBankService {


    /**
     * 获取token
     * @return ReqTokenResultDTO
     */
    ReqTokenResultDTO getToken() throws Exception;
    /**
     * 支付创建订单
     * @param requestDTO 请求体
     * @return TzPayCreateOrderResultDTO
     */
    TzReqResultDTO<TzPayCreateOrderRspDTO> payCreateOrder(RequestDTO<TzPayCreateOrderReqBodyDTO> requestDTO) throws Exception;

    /**
     * 支付创建订单
     * @param requestDTO 请求体
     * @return TzPayCreateOrderResultDTO
     */
    TzReqResultDTO<TzMiniProgramCodeRespDTO> miniProgramCode(RequestDTO<TzMiniProgramCodeReqDTO> requestDTO) throws Exception;

    /**
     * 查询支付订单
     * @param requestDTO 请求DTO
     * @return TzReqResultDTO<QueryOrderInfoDTO>
     * @throws Exception 异常信息
     */
    TzReqResultDTO<QueryOrderInfoDTO> payQueryOrder(RequestDTO<QueryOrderRestDTO> requestDTO) throws Exception;

    /**
     * 申请退款
     * @param requestDTO 请求DTO
     * @return TzReqResultDTO<TzRefundNotifyDTO>
     */
    TzReqResultDTO<TzRefundNotifyDTO> payRefund(RequestDTO<TzPayRefundDTO> requestDTO) throws Exception;


}
