package com.crm.pay.service;

import com.crm.pay.dto.finance.withdraw.automatic.FinanceWithdrawPay3payDto;
import com.crm.pay.entity.callback.Pay3PayCallbackEntity;
import com.crm.pay.entity.finance.withdraw.automatic.FinanceWithdrawInfoEntity;
import com.crm.pay.entity.finance.withdraw.automatic.FinanceWithdrawPay3payEntity;
import com.crm.rely.backend.model.entity.finance.deposit.FinanceDepositAddEntity;

public interface Pay3PayService {

    /**
     * 支付
     *
     * @param balanceSaveEntity
     * @return
     * @throws Exception
     */
    String pay(FinanceDepositAddEntity balanceSaveEntity) throws Exception;

    /**
     * 回调
     *
     * @param callbackEntity
     * @throws Exception
     */
//    String callback(Pay3PayCallbackEntity callbackEntity) throws Exception;

    String callbackPost(Pay3PayCallbackEntity callbackEntity) throws Exception;

    FinanceWithdrawPay3payDto withdrawInfo(FinanceWithdrawInfoEntity entity) throws Exception;

    String withdraw(FinanceWithdrawPay3payEntity entity) throws Exception;

    String withdrawCallbackGet(Integer withdrawType, Pay3PayCallbackEntity callbackEntity) throws Exception;

    String withdrawCallbackPost(Integer withdrawType, Pay3PayCallbackEntity callbackEntity) throws Exception;

}
