package cokr.xit.ens.modules.common.ctgy.intgrnbill.support.service.process;

/**
 * 결제 서비스
 *
 * @param <T> 리턴타입
 * @param <P> 파라미터
 */
public interface PayProcessService<T, P> {

    /**
     * 결제 URL 생성
     *
     * @param p
     * @return
     */
    T gnrUrl(P p);

    /**
     * 결제정보
     *
     * @param p
     * @return
     */
    T payNotice(P p);

    /**
     * 결제 전 납부가능여부
     *
     * @param p
     * @return
     */
    T payAble(P p);

    /**
     * 결제 후 납부결과
     *
     * @param p
     * @return
     */
    T payResult(P p);

    /**
     * 결제취소
     *
     * @param p
     * @return
     */
    T payCancel(P p);

}
