2023년 1월 4일 수요일

C# - 이니시스 결제 Model (Web)


namespace Model
{
    #region 결제 요청
    /// <summary>
    /// 결제 요청
    /// </summary>
    public class InicisRequest
    {
        #region 기본 데이터 필드
        /// <summary>
        /// 버전 (1.0)
        /// (필수)
        /// </summary>
        [Required]
        [StringLength(20)]
        public string version { get; set; }
        /// <summary>
        /// 상점아이디 (테스트 아이디 INIpayTest)
        /// (필수)
        /// </summary>
        [Required]
        [StringLength(10)]
        public string mid { get; set; }
        /// <summary>
        /// 이니시스 주문번호 (예 INIpayTest_1335233672723)
        /// (필수)
        /// </summary>
        [Required]
        [StringLength(40)]
        public string oid { get; set; }
        /// <summary>
        /// 상품명
        /// (필수)
        /// </summary>
        [Required]
        [StringLength(40)]
        public string goodname { get; set; }
        /// <summary>
        /// 결제금액
        /// (필수)
        /// </summary>
        [Required]
        public int price { get; set; }
        /// <summary>
        /// 부가세
        /// </summary>
        public int tax { get; set; }
        /// <summary>
        /// 비과세
        /// </summary>
        public int taxfree { get; set; }
        /// <summary>
        /// 통화구분 (WON:한화,USD:달러)
        /// (필수)
        /// </summary>
        [Required]
        [StringLength(3)]
        public string currency { get; set; }
        /// <summary>
        /// 구매자명
        /// (필수)
        /// </summary>
        [Required]
        [StringLength(30)]
        public string buyername { get; set; }
        /// <summary>
        /// 구매자 Mobile번호 (010-2000-1234)
        /// (필수)
        /// </summary>
        [Required]
        [StringLength(20)]
        public string buyertel { get; set; }
        /// <summary>
        /// 구매자 Email (buyer@example.com)
        /// </summary>
        [StringLength(60)]
        public string buyeremail { get; set; }
        /// <summary>
        /// 보호자 Email (parent@example.com)
        /// </summary>
        [StringLength(60)]
        public string parentemail { get; set; }
        /// <summary>
        /// 타임스탬프 (제공라이브러로 생성가능)
        /// (필수)
        /// </summary>
        [Required]
        [StringLength(20)]
        public string timestamp { get; set; }
        /// <summary>
        /// signature (위변조 방지 SHA256 Hash 값)
        /// (필수)
        /// </summary>
        [Required]
        [StringLength(64)]
        public string signature { get; set; }
        /// <summary>
        /// 리턴 Url (인증결과수신Url)
        /// 결제창을 통해 인증완료된 결과를 수신받고 승인요청을 해서 결과를 표시할 페이지 URL
        /// (필수)
        /// </summary>
        [Required]
        public string returnUrl { get; set; }
        /// <summary>
        /// signkey에 대한 hash값
        /// (필수)
        /// </summary>
        [Required]
        public string mKey { get; set; }
        /// <summary>
        /// 요청결제수단
        /// 하나의 결제 수단만을 제공할 경우 사용함. 생략시 전체 결제 수단 표시
        /// (필수)
        /// </summary>
        [Required]
        public string gopaymethod { get; set; }
        /// <summary>
        /// 제공기간 (yyyyMMdd-yyyyMMdd : 시작일-종료일)
        /// 가맹점에서 판매상품에 대한 제공기한 설정
        /// </summary>
        public string offerPeriod { get; set; }
        /// <summary>
        /// 초기 표시 언어 (ko:한국어, en:영어)
        /// 결제창 표시 언어
        /// </summary>
        [StringLength(2)]
        public string languageView { get; set; }
        /// <summary>
        /// 결과 인코딩 (UTF-8, EUC-KR)
        /// </summary>
        [StringLength(5)]
        public string charset { get; set; }
        /// <summary>
        /// 결제창 표시방법 (overlay)
        /// </summary>
        public string payViewType { get; set; }
        /// <summary>
        /// 결제창 닫기처리 Url
        /// (필수)
        /// </summary>
        [Required]
        public string closeUrl { get; set; }
        /// <summary>
        /// 팝업처리 Url
        /// (필수)
        /// </summary>
        [Required]
        public string popupUrl { get; set; }
        /// <summary>
        /// 가맹점 데이터 (인증 성공시 가맹점으로 리턴)
        /// (예) a=A&b=B
        /// </summary>
        [StringLength(2000)]
        public string merchantData { get; set; }
        /// <summary>
        /// 결제수단별 추가 옵션값
        /// </summary>
        public string acceptmethod { get; set; }
        #endregion
        #region 신용카드 추가 데이터 필드 (선택)
        /// <summary>
        /// 할부 개월 
        /// “2:3:4”, “2:0”(개월수를 : 로 구분된 값)
        /// 일시불은 기본적을 표시, 생략시 일시불만 (* 5만원 이상시에만 동작)
        /// </summary>
        public string quotabase { get; set; }
        /// <summary>
        /// 가맹점 부담 무이자 할부설정
        /// “11-2:3:5:6,34-2:6”, “04-2:6”
        /// 카드사코드-할부개월:할부개월… 여러카드는 공백없이 ,로 구분 (* 5만원 이상시에만 동작 / 카드사 무이자와 무관)
        /// </summary>
        public string nointerest { get; set; }
        /// <summary>
        /// below1000 (1000원 이하 결제)
        /// mallpoint (몰포인트)
        /// ini_onlycardcode (결제 카드사 선택)
        /// CARDPOINT (카드포인트 사용유무)
        /// OCB (OK Cashbag 사용유무)
        /// SLIMQUOTA (부분무이자 설정)
        /// PAYPOPUP (인심클릭뷰 옵션)
        /// hidebar (프로그래스바 뷰 옵션)
        /// useescro (신에스크로 사용 여부)
        /// </summary>
        //public string acceptmethod { get; set; }
        #endregion
        #region 계좌이체 추가 데이터 필드 (선택)
        /// <summary>
        /// no_receipt (현금영수증 미발행)
        /// </summary>
        //public string acceptmethod { get; set; }
        #endregion
        #region 무통장 입금 추가 데이터 필드 (선택)
        /// <summary>
        /// 주민번호 설정 기능
        /// </summary>
        public string INIregno { get; set; }
        /// <summary>
        /// vbank (입금기한 및 입금시간)
        /// va_receipt (현금영수증 발급 UI 옵션)
        /// va_ckprice (주민번호 채번 시 금액 확인)
        /// </summary>
        //public string acceptmethod { get; set; }
        #endregion
        #region 전자지갑(뱅크월렛) 추가 데이터 필드 (선택)
        /// <summary>
        /// KWPY_TYPE (결제구분) (0:현금카드와 뱅크머니 모두, 1:현금카드만, 2:뱅크머니만)
        /// KWPY_VAT (부가세, 봉사료)
        //public string acceptmethod { get; set; }
        #endregion
        #region 빌링 추가 데이터 필드 (선택)
        /// <summary>
        /// BILLAUTH (빌링 결제 구분) (BILLAUTH(card))
        /// 신용카드 빌링 결제를 제공한다.
        //public string acceptmethod { get; set; }
        #endregion
    }
    #endregion

    #region 인증 결과 수신
    /// <summary>
    /// 인증 결과 수신
    /// </summary>
    public class InicisCertificationResult
    {
        /// <summary>
        /// 결과코드 (0000 : 정상, 기타 : 실패)
        /// </summary>
        [StringLength(10)]
        public string resultCode { get; set; }
        /// <summary>
        /// 결과메세지 (성공시 : OK, 실패시 : 기타 오류 메시지)
        /// </summary>
        [StringLength(100)]
        public string resultMsg { get; set; }
        /// <summary>
        /// 가맹점 ID
        /// </summary>
        [StringLength(10)]
        public string mid { get; set; }
        /// <summary>
        /// 가맹점 주문번호 (oid)
        /// </summary>
        [StringLength(40)]
        public string orderNumber { get; set; }
        /// <summary>
        /// 승인요청 (승인요청검증토큰)
        /// </summary>
        public string authToken { get; set; }
        /// <summary>
        /// 승인요청 Url
        /// 해당 URL로 HTTPS API Request(httpClient 통신) 승인 요청(POST)
        /// </summary>
        public string authUrl { get; set; }
        /// <summary>
        /// 망취소요청 Url
        /// </summary>
        public string netCancelUrl { get; set; }
        /// <summary>
        /// 인코딩 (가맹점에서 결제요청시 전달한 charset값 생략시 UTF-8)
        /// </summary>
        [StringLength(5)]
        public string charset { get; set; }
        /// <summary>
        /// 가맹점 데이터
        /// </summary>
        [StringLength(2000)]
        public string merchantData { get; set; }
    }
    #endregion

    #region 결제 승인 요청
    /// <summary>
    /// 결제 승인 요청
    /// </summary>
    public class InicisApprovalRequest
    {
        /// <summary>
        /// 상점아이디 (테스트 아이디 INIpayTest)
        /// (필수)
        /// </summary>
        [Required]
        [StringLength(10)]
        public string mid { get; set; }
        /// <summary>
        /// 승인요청 (승인요청검증토큰)
        /// (필수)
        /// </summary>
        [Required]
        public string authToken { get; set; }
        /// <summary>
        /// 결제금액
        /// (필수)
        /// </summary>
        [Required]
        public int price { get; set; }
        /// <summary>
        /// 타임스탬프 (제공라이브러로 생성가능)
        /// (필수)
        /// </summary>
        [Required]
        public int timestamp { get; set; }
        /// <summary>
        /// signature (위변조 방지 SHA256 Hash 값)
        /// (필수)
        /// </summary>
        [Required]
        [StringLength(64)]
        public string signature { get; set; }
        /// <summary>
        /// 인코딩 (결과 수신 charset)
        /// </summary>
        [StringLength(5)]
        public string charset { get; set; }
        /// <summary>
        /// 리턴 형식 (XML, JSON, NVP])
        /// XML : <result>내의 XML 결과 리턴
        /// JSON : root 없이 json 결과 리턴
        /// NVP : name=value&name=value
        /// </summary>
        [StringLength(5)]
        public string format { get; set; }
    }
    #endregion

    #region 승인 결과 (결제 완료)
    /// <summary>
    /// 승인 결과 (결제 완료)
    /// </summary>
    public class InicisResult
    {
        #region 승인 결과 기본 데이터 필드
        /// <summary>
        /// 거래번호
        /// </summary>
        [StringLength(40)]
        public string tid { get; set; }
        /// <summary>
        /// 결과코드 (0000 : 정상, 기타 : 실패)
        /// </summary>
        [StringLength(10)]
        public string resultCode { get; set; }
        /// <summary>
        /// 결과메세지 (성공시 : OK, 실패시 : 기타 오류 메시지)
        /// </summary>
        [StringLength(100)]
        public string resultMsg { get; set; }
        /// <summary>
        /// 이벤트코드 (카드 할부 및 행사 적용 코드)
        /// </summary>
        [StringLength(3)]
        public string EventCode { get; set; }
        /// <summary>
        /// 거래금액
        /// </summary>
        [StringLength(20)]
        public string TotPrice { get; set; }
        /// <summary>
        /// 이니시스 주문번호 (결제 요청 시 "oid" 필드에 설정된 값)
        /// </summary>
        [StringLength(12)]
        public string MOID { get; set; }
        /// <summary>
        /// 지불수단 (결제 방법)
        /// </summary>
        [StringLength(10)]
        public string payMethod { get; set; }
        /// <summary>
        /// 승인번호 (결제수단에 따리 미전송)
        /// </summary>
        [StringLength(16)]
        public string applNum { get; set; }
        /// <summary>
        /// 승인일자 (YYYYMMDD)
        /// </summary>
        [StringLength(8)]
        public string applDate { get; set; }
        /// <summary>
        /// 승인시간 (hh24miss)
        /// </summary>
        [StringLength(6)]
        public string applTime { get; set; }
        /// <summary>
        /// 구매자 Email
        /// </summary>
        [StringLength(60)]
        public string buyerEmail { get; set; }
        /// <summary>
        /// 구매자 Mobile 번호 (예 “010-2000-1234”)
        /// </summary>
        [StringLength(20)]
        public string buyerTel { get; set; }
        /// <summary>
        /// 구매자명
        /// </summary>
        [StringLength(30)]
        public string buyerName { get; set; }
        /// <summary>
        /// 가맹점 데이터 (인증 성공시 가맹점으로 리턴)
        /// 유비케어 주문번호로 사용
        /// </summary>
        [StringLength(2000)]
        public string merchantData { get; set; }
        #endregion
        #region 승인 결과 추가 필드 사항
        public string parentemail { get; set; }
        public string p_Sub { get; set; }
        public string mid { get; set; }
        public string authSignature { get; set; }
        public string goodname { get; set; }
        public string goodsName { get; set; }
        public string FlgNotiSendChk { get; set; }
        public string p_SubCnt { get; set; }
        public string custEmail { get; set; }
        #endregion
        #region 승인 결과 (신용카드) 데이터 필드
        /// <summary>
        /// 카드번호
        /// </summary>
        [StringLength(16)]
        public string CARD_Num { get; set; }
        /// <summary>
        /// 무이자할부 여부 ("1"이면 무이자할부)
        /// </summary>
        [StringLength(1)]
        public string CARD_Interest { get; set; }
        /// <summary>
        /// 할부기간
        /// </summary>
        [StringLength(2)]
        public string CARD_Quota { get; set; }
        /// <summary>
        /// 신용카드사 코드
        /// </summary>
        [StringLength(2)]
        public string CARD_Code { get; set; }
        /// <summary>
        /// 부분취소 가능여부 (1:가능, 0:불가능)
        /// </summary>
        [StringLength(1)]
        public string CARD_PRTC_CODE { get; set; }
        /// <summary>
        /// 신용카드 발급사(은행) 코드 (매뉴얼 참조)
        /// </summary>
        [StringLength(2)]
        public string CARD_BankCode { get; set; }
        /// <summary>
        /// 간편(앱)결제 구분
        /// C : PAYCO, B : 삼성페이, D : 삼성페이(체크), G : SSGPAY, O : KAKAOPAY, L : LPAY, K : 국민앱카드, A : KPAY
        /// </summary>
        [StringLength(1)]
        public string CARD_SrcCode { get; set; }
        /// <summary>
        /// 카드포인트 사용여부
        /// “” : 카드 포인트 사용안함, “1” : 카드 포인트 사용
        /// </summary>
        [StringLength(1)]
        public string CARD_Point { get; set; }
        /// <summary>
        /// 통화코드 (달러결제 정보, 통화코드)
        /// </summary>
        [StringLength(3)]
        public string currency { get; set; }
        /// <summary>
        /// OK CASHBAG 카드번호
        /// </summary>
        [StringLength(20)]
        public string OCB_Num { get; set; }
        /// <summary>
        /// OK CASHBAG 적립 승인번호
        /// </summary>
        [StringLength(12)]
        public string OCB_SaveApplNum { get; set; }
        /// <summary>
        /// OK CASHBAG 사용내역 승인번호
        /// </summary>
        [StringLength(12)]
        public string OCB_PayApplNum { get; set; }
        /// <summary>
        /// OK CASHBAG 승인일시
        /// </summary>
        [StringLength(8)]
        public string OCB_ApplDate { get; set; }
        /// <summary>
        /// OK CASHBAG 포인트지불금액
        /// </summary>
        [StringLength(12)]
        public string OCB_PayPrice { get; set; }
        /// <summary>
        /// 달러 환전금액
        /// 해외카드 + 달러(USD) 결제 일 경우 환전금액
        /// (국내카드로 달러 결제 시 환전금액으로 표기X)
        /// </summary>
        [StringLength(20)]
        public string OrgPrice { get; set; }
        public string CARD_CheckFlag { get; set; }
        public string GSPT_Num { get; set; }
        public string GSPT_Remains { get; set; }
        public string UNPT_CardNum { get; set; }
        public string UPNT_UsablePoint { get; set; }
        #endregion
        #region 승인 결과 (무통장) 데이터 필드 - 가상계좌
        /// <summary>
        /// 입금 계좌 번호
        /// </summary>
        [StringLength(20)]
        public string VACT_Num { get; set; }
        /// <summary>
        /// 입금 은행 코드
        /// </summary>
        [StringLength(2)]
        public string VACT_BankCode { get; set; }
        /// <summary>
        /// 예금주명
        /// </summary>
        [StringLength(20)]
        public string VACT_Name { get; set; }
        /// <summary>
        /// 송금자명
        /// </summary>
        [StringLength(20)]
        public string VACT_InputName { get; set; }
        /// <summary>
        /// 송금 날짜
        /// </summary>
        [StringLength(8)]
        public string VACT_Date { get; set; }
        /// <summary>
        /// 송금 시간
        /// </summary>
        [StringLength(6)]
        public string VACT_Time { get; set; }
        /// <summary>
        /// 무통장 입금 은행명
        /// </summary>
        [StringLength(20)]
        public string vactBankName { get; set; }
        
        #endregion
        #region 승인 결과 (계좌이체) 데이터 필드
        /// <summary>
        /// 은행코드
        /// </summary>
        [StringLength(2)]
        public string ACCT_BankCode { get; set; }
        /// <summary>
        /// 결과코드 (220000(정상처리))
        /// </summary>
        [StringLength(10)]
        public string CSHR_ResultCode { get; set; }
        /// <summary>
        /// 발급구분코드 (0 = 소득공제 / 1 = 지출증빙)
        /// </summary>
        [StringLength(1)]
        public string CSHR_Type { get; set; }
        /// <summary>
        /// 계좌주명
        /// </summary>
        [StringLength(30)]
        public string ACCT_Name { get; set; }
        #endregion
        #region 승인 결과 (휴대폰 결제) 데이터 필드
        /// <summary>
        /// 휴대폰번호
        /// </summary>
        [StringLength(14)]
        public string HPP_Num { get; set; }
        /// <summary>
        /// 결제장치 (PC)
        /// </summary>
        [StringLength(6)]
        public string payDevice { get; set; }
        #endregion
        #region 승인 결과 (포인트) 데이터 필드
        /// <summary>
        /// 지불구분 (OCBpay/OCBplus/OCBpayonly/OCBboth/GSPTpay)
        /// </summary>
        [StringLength(10)]
        public string PayOption { get; set; }
        /// <summary>
        /// OK CashBag 카드 번호
        /// </summary>
        //[StringLength(20)]
        //public string OCB_Num { get; set; }
        /// <summary>
        /// OK CashBag 지불 금액
        /// </summary>
        //[StringLength(12)]
        //public string OCB_PayPrice { get; set; }
        /// <summary>
        /// U포인트 카드번호
        /// </summary>
        [StringLength(16)]
        public string UPoint_Num { get; set; }
        /// <summary>
        /// U포인트 가용포인트
        /// </summary>
        [StringLength(12)]
        public string UPoint_usablePoint { get; set; }
        /// <summary>
        /// U포인트 승인요청 금액
        /// </summary>
        [StringLength(12)]
        public string UPoint_ApplPrice { get; set; }
        /// <summary>
        /// U포인트 지불구분
        /// </summary>
        [StringLength(10)]
        public string UPNT_PayOption { get; set; }
        /// <summary>
        /// U포인트 복합결제시 여신 승인금액
        /// </summary>
        [StringLength(16)]
        public string UPNT_SavePrice { get; set; }
        /// <summary>
        /// U포인트 지불 금액
        /// </summary>
        [StringLength(9)]
        public string UPNT_PayPrice { get; set; }
        /// <summary>
        /// GS포인트 승인금액
        /// </summary>
        [StringLength(15)]
        public string GSPT_ApplPrice { get; set; }
        /// <summary>
        /// GS포인트 적립금액
        /// </summary>
        [StringLength(15)]
        public string GSPT_SavePrice { get; set; }
        /// <summary>
        /// GS포인트 승인금액
        /// </summary>
        [StringLength(15)]
        public string GSPT_PayPrice { get; set; }
        #endregion
        #region 승인 결과 (상품권) 데이터 필드
        /// <summary>
        /// 컬쳐랜드 고객ID
        /// </summary>
        [StringLength(20)]
        public string CULT_UserID { get; set; }
        /// <summary>
        /// 사용한 카드 개수
        /// </summary>
        [StringLength(1)]
        public string GAMG_Cnt { get; set; }
        /// <summary>
        /// 게임문화상품권 승인금액
        /// </summary>
        [StringLength(12)]
        public string GAMG_ApplPrice { get; set; }
        /// <summary>
        /// 스마트문화상품권 카드번호1
        /// </summary>
        [StringLength(18)]
        public string GAMG_Num1 { get; set; }
        /// <summary>
        /// 스마트문화상품권 카드결제금액1
        /// </summary>
        [StringLength(12)]
        public string GAMG_Price1 { get; set; }
        /// <summary>
        /// 스마트문화상품권 카드번호2
        /// </summary>
        [StringLength(18)]
        public string GAMG_Num2 { get; set; }
        /// <summary>
        /// 스마트문화상품권 카드결제금액2
        /// </summary>
        [StringLength(12)]
        public string GAMG_Price2 { get; set; }
        /// <summary>
        /// 스마트문화상품권 카드번호3
        /// </summary>
        [StringLength(18)]
        public string GAMG_Num3 { get; set; }
        /// <summary>
        /// 스마트문화상품권 카드결제금액3
        /// </summary>
        [StringLength(12)]
        public string GAMG_Price3 { get; set; }
        /// <summary>
        /// 스마트문화상품권 카드번호4
        /// </summary>
        [StringLength(18)]
        public string GAMG_Num4 { get; set; }
        /// <summary>
        /// 스마트문화상품권 카드결제금액4
        /// </summary>
        [StringLength(12)]
        public string GAMG_Price4 { get; set; }
        /// <summary>
        /// 스마트문화상품권 카드번호5
        /// </summary>
        [StringLength(18)]
        public string GAMG_Num5 { get; set; }
        /// <summary>
        /// 스마트문화상품권 카드결제금액5
        /// </summary>
        [StringLength(12)]
        public string GAMG_Price5 { get; set; }
        /// <summary>
        /// 스마트문화상품권 카드번호6
        /// </summary>
        [StringLength(18)]
        public string GAMG_Num6 { get; set; }
        /// <summary>
        /// 스마트문화상품권 카드결제금액6
        /// </summary>
        [StringLength(12)]
        public string GAMG_Price6 { get; set; }
        /// <summary>
        /// 틴캐시 승인금액
        /// </summary>
        [StringLength(12)]
        public string TEEN_ApplPrice { get; set; }
        /// <summary>
        /// 틴캐시 아이디
        /// </summary>
        [StringLength(16)]
        public string TEEN_UserID { get; set; }
        /// <summary>
        /// 틴캐시 승인번호
        /// </summary>
        [StringLength(8)]
        public string TEEN_ApplNum { get; set; }
        /// <summary>
        /// 도서상품권 승인 금액
        /// </summary>
        [StringLength(12)]
        public string BCSH_ApplPrice { get; set; }
        /// <summary>
        /// 도서상품권 사용자ID
        /// </summary>
        [StringLength(20)]
        public string BCSH_UserID { get; set; }
        /// <summary>
        /// 도서상품권 승인 번호
        /// </summary>
        [StringLength(12)]
        public string BCSH_ApplNum { get; set; }
        #endregion
        #region 승인 결과 (전화결제) 데이터 필드
        /// <summary>
        /// 승인 전화번호
        /// </summary>
        [StringLength(12)]
        public string PHNB_Num { get; set; }
        #endregion
        #region 승인 결과 (전자지갑[뱅크월렛]) 데이터 필드
        /// <summary>
        /// 휴대폰번호
        /// </summary>
        [StringLength(40)]
        public string KWPY_CellPhone { get; set; }
        /// <summary>
        /// 거래금액
        /// </summary>
        [StringLength(12)]
        public string KWPY_SalesAmount { get; set; }
        /// <summary>
        /// 공급가액
        /// </summary>
        [StringLength(12)]
        public string KWPY_Amount { get; set; }
        /// <summary>
        /// 부가세
        /// </summary>
        [StringLength(12)]
        public string KWPY_Tax { get; set; }
        /// <summary>
        /// 봉사료
        /// </summary>
        [StringLength(12)]
        public string KWPY_ServiceFee { get; set; }
        #endregion
    }
    #endregion
}


javascript - SQL 예약어 제거

  <script language="javascript"> //특수문자, 특정문자열(sql예약어) 제거 function checkSearchedWord(obj){ obj.value = obj.value+&quo...