package com.crm.pay.service;

import com.crm.pay.dto.finance.withdraw.automatic.FinanceWithdrawProxpayDto;
import com.crm.pay.entity.callback.prox.ProxpayCallbackEntity;
import com.crm.pay.entity.finance.withdraw.automatic.FinanceWithdrawInfoEntity;
import com.crm.pay.entity.finance.withdraw.automatic.FinanceWithdrawProxpayEntity;
import com.crm.rely.backend.model.entity.finance.deposit.FinanceDepositAddEntity;

/**
 * @program:
 * @description:
 * @author: houn
 * @create: 2024-09-23 18:22
 */
public interface ProxpayService {

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

    FinanceWithdrawProxpayDto withdrawInfo(FinanceWithdrawInfoEntity entity) throws Exception;

    String withdraw(FinanceWithdrawProxpayEntity entity) throws Exception;

    /**
     * 回调
     *
     * @param callbackEntity
     * @throws ServiceException
     */
    void callback(ProxpayCallbackEntity callbackEntity) throws Exception;
}
