package com.crm.pay.service;

import com.crm.pay.dto.korapay.KorapayDto;
import com.crm.pay.entity.korapay.KorapayAvsEntity;
import com.crm.pay.entity.korapay.KorapayOtpEntity;
import com.crm.pay.entity.korapay.KorapayPhoneEntity;
import com.crm.pay.entity.korapay.KorapayPinEntity;
import com.crm.rely.backend.model.entity.finance.deposit.FinanceDepositAddEntity;

/**
 * @program: cwg-my-base
 * @description:
 * @author: houn
 * @create: 2023-05-12 10:44
 */
public interface KorapayService {

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

    /**
     * 回调
     *
     * @param wehbookData
     * @throws ServiceException
     */
    void callback(String wehbookData, String signature) throws Exception;

    void callbackSerial(String transactionReference) throws Exception;

    KorapayDto pin(KorapayPinEntity entity) throws Exception;

    KorapayDto otp(KorapayOtpEntity entity) throws Exception;

    KorapayDto avs(KorapayAvsEntity entity) throws Exception;

    KorapayDto phone(KorapayPhoneEntity entity) throws Exception;
}
