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

/**
 * 결제 컨트롤러
 *
 * @param <T> 리턴타입
 * @param <P> 파라미터
 */
public interface PayController<T, P> {

    /**
     * 청구서링크 생성
     *
     * @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);

}
