/* ==================================================================================== */ /* ==================================================================================== */ /* + METHOD : 결과 출력 (취소) + */ /* - -------------------------------------------------------------------------------- - */ private void m_f__disp_rt_can(ref C_PP_CLI_COM parm_c_PP_CLI) { /* -------------------------------------------------------------------------------- */ /* + 오류 결과 출력 + */ /* - ---------------------------------------------------------------------------- - */ res_cd = m_strResCD; res_msg = m_strResMsg; /* -------------------------------------------------------------------------------- */ }
/* ==================================================================================== */ /* + METHOD : 요청 DATA 생성 + */ /* - -------------------------------------------------------------------------------- - */ private int m_f__set_dataset_mod(ref C_PP_CLI_COM parm_c_PP_CLI) { int nDataSetInx_req; int nDataSetInx_mod; /* -------------------------------------------------------------------------------- */ /* + 변경 요청 DATA 구성 + */ /* - ---------------------------------------------------------------------------- - */ m_strTxCD = "00200000"; /* - ---------------------------------------------------------------------------- - */ nDataSetInx_req = parm_c_PP_CLI.m_f__get_dataset("plan_data"); nDataSetInx_mod = parm_c_PP_CLI.m_f__get_dataset("mod_data"); /* - ---------------------------------------------------------------------------- - */ parm_c_PP_CLI.m_f__set_data(nDataSetInx_mod, "mod_type", mod_type); parm_c_PP_CLI.m_f__set_data(nDataSetInx_mod, "tno", tno); parm_c_PP_CLI.m_f__set_data(nDataSetInx_mod, "mod_ip", m_strCustIP); parm_c_PP_CLI.m_f__set_data(nDataSetInx_mod, "mod_desc", mod_desc); /* - ---------------------------------------------------------------------------- - */ parm_c_PP_CLI.m_f__add_data(nDataSetInx_req, nDataSetInx_mod, "\x1c"); /* -------------------------------------------------------------------------------- */ return(nDataSetInx_req); }
/* ==================================================================================== */ /* ==================================================================================== */ /* + METHOD : 요청 DATA 생성 + */ /* - -------------------------------------------------------------------------------- - */ private int m_f__set_dataset_pay(ref C_PP_CLI_COM parm_c_PP_CLI) { /* -------------------------------------------------------------------------------- */ /* + 지불 요청 DATA 구성 + */ /* - ---------------------------------------------------------------------------- - */ m_strTxCD = m_f__get_post_data("tran_cd"); /* -------------------------------------------------------------------------------- */ /* + 금액 위변조 방지 관련 추가 (2010.12) + */ /* - ---------------------------------------------------------------------------- - */ int nDataSetInx_req; int nDataSetInx_ordr_no; nDataSetInx_req = parm_c_PP_CLI.m_f__get_dataset("plan_data"); nDataSetInx_ordr_no = parm_c_PP_CLI.m_f__get_dataset("ordr_data"); /* 1 원은 실제로 업체에서 결제하셔야 될 원 금액을 넣어주셔야 합니다. 결제금액 유효성 검증 */ parm_c_PP_CLI.m_f__set_data(nDataSetInx_ordr_no, "ordr_mony", "1"); parm_c_PP_CLI.m_f__add_data(nDataSetInx_req, nDataSetInx_ordr_no, "\x1c"); return(parm_c_PP_CLI.m_f__set_axdataset(trad_numb, enct_info, enct_data)); }
/* ==================================================================================== */ /* ==================================================================================== */ /* + METHOD : 망상 취소 처리 + */ /* - -------------------------------------------------------------------------------- - */ private bool m_f__do_net_can(ref C_PP_CLI_COM parm_c_PP_CLI) { int nDataSetInx_req; bool bDoNetCan = false; /* -------------------------------------------------------------------------------- */ /* + 망상 취소 DATA 설정 + */ /* - ---------------------------------------------------------------------------- - */ mod_type = "STSC"; tno = parm_c_PP_CLI.m_f__get_res("tno"); /* - ---------------------------------------------------------------------------- - */ parm_c_PP_CLI.m_f__init(); /* - ---------------------------------------------------------------------------- - */ if (req_tx.Equals("pay")) { bDoNetCan = true; mod_desc = "처리 오류로 인한 거래 자동 취소"; } /* -------------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------------- */ /* + 자동 취소 처리 + */ /* - ---------------------------------------------------------------------------- - */ if (bDoNetCan == true) { nDataSetInx_req = m_f__set_dataset_mod(ref parm_c_PP_CLI); parm_c_PP_CLI.m_f__do_tx(req_tx, m_strTxCD, nDataSetInx_req, "", m_strCFG_site_cd, m_strCFG_site_key, ordr_idxx); m_strResCD = parm_c_PP_CLI.m_strResCD; m_strResMsg = parm_c_PP_CLI.m_strResMsg; m_f__disp_rt_can(ref parm_c_PP_CLI); } /* -------------------------------------------------------------------------------- */ return(bDoNetCan); }
/* ==================================================================================== */ /* ==================================================================================== */ /* + METHOD : 결과 출력 (적립/조회/사용 정상) + */ /* - -------------------------------------------------------------------------------- - */ private void m_f__disp_rt_pay_succ(ref C_PP_CLI_COM parm_c_PP_CLI) { /* -------------------------------------------------------------------------------- */ /* + 정상 결과 출력 + */ /* - ---------------------------------------------------------------------------- - */ res_cd = m_strResCD; res_msg = m_strResMsg; /* - ---------------------------------------------------------------------------- - */ ordr_idxx = ordr_idxx; tno = parm_c_PP_CLI.m_f__get_res("tno"); amount = parm_c_PP_CLI.m_f__get_res("amount"); // KCP 실제 거래 금액 good_name = good_name; buyr_name = buyr_name; buyr_tel1 = buyr_tel1; buyr_tel2 = buyr_tel2; buyr_mail = buyr_mail; //coupon_mny = parm_c_PP_CLI.m_f__get_res("coupon_mny"); // 쿠폰금액 /* - ---------------------------------------------------------------------------- - */ if (use_pay_method == "100000000000") { //신용카드 card_cd = parm_c_PP_CLI.m_f__get_res("card_cd"); // 카드사 코드 card_name = parm_c_PP_CLI.m_f__get_res("card_name"); // 카드사 명 app_time = parm_c_PP_CLI.m_f__get_res("app_time"); // 승인시간 app_no = parm_c_PP_CLI.m_f__get_res("app_no"); // 승인번호 noinf = parm_c_PP_CLI.m_f__get_res("noinf"); // 무이자 여부 quota = parm_c_PP_CLI.m_f__get_res("quota"); // 할부 개월 수 partcanc_yn = parm_c_PP_CLI.m_f__get_res("partcanc_yn"); // 부분취소가능여부 card_bin_type_01 = parm_c_PP_CLI.m_f__get_res("card_bin_type_01"); // 카드구분1 card_bin_type_02 = parm_c_PP_CLI.m_f__get_res("card_bin_type_02"); // 카드구분2 card_mny = parm_c_PP_CLI.m_f__get_res("card_mny"); // 카드결제금액 pnt_issue = parm_c_PP_CLI.m_f__get_res("pnt_issue"); // 포인트 서비스사 if (pnt_issue == "SCSK" || pnt_issue == "SCWB") { // 복합합결제 add_pnt = parm_c_PP_CLI.m_f__get_res("add_pnt"); // 발생 포인트 use_pnt = parm_c_PP_CLI.m_f__get_res("use_pnt"); // 사용가능 포인트 rsv_pnt = parm_c_PP_CLI.m_f__get_res("rsv_pnt"); // 적립 포인트 pnt_app_time = parm_c_PP_CLI.m_f__get_res("pnt_app_time"); // 승인시간 pnt_app_no = parm_c_PP_CLI.m_f__get_res("pnt_app_no"); // 승인번호 pnt_amount = parm_c_PP_CLI.m_f__get_res("pnt_amount"); // 적립금액 or 사용금액 pnt_issue = parm_c_PP_CLI.m_f__get_res("pnt_issue"); } } else if (use_pay_method == "010000000000") { //계좌이체 bank_name = parm_c_PP_CLI.m_f__get_res("bank_name"); // 은행명 bank_code = parm_c_PP_CLI.m_f__get_res("bank_code"); // 은행코드 bk_mny = parm_c_PP_CLI.m_f__get_res("bk_mny"); // 계좌이체결제금액 app_time = parm_c_PP_CLI.m_f__get_res("app_time"); // 승인시간 } else if (use_pay_method == "001000000000") { //가상계좌 bankname = parm_c_PP_CLI.m_f__get_res("bankname"); // 입금할 은행 이름 depositor = parm_c_PP_CLI.m_f__get_res("depositor"); // 입금할 계좌 예금주 account = parm_c_PP_CLI.m_f__get_res("account"); // 입금할 계좌 번호 va_date = parm_c_PP_CLI.m_f__get_res("va_date"); // 가상계좌 입금마감시간 } else if (use_pay_method == "000100000000") { //포인트 add_pnt = parm_c_PP_CLI.m_f__get_res("add_pnt"); // 발생 포인트 use_pnt = parm_c_PP_CLI.m_f__get_res("use_pnt"); // 사용가능 포인트 rsv_pnt = parm_c_PP_CLI.m_f__get_res("rsv_pnt"); // 적립 포인트 pnt_app_time = parm_c_PP_CLI.m_f__get_res("pnt_app_time"); // 승인시간 pnt_app_no = parm_c_PP_CLI.m_f__get_res("pnt_app_no"); // 승인번호 pnt_amount = parm_c_PP_CLI.m_f__get_res("pnt_amount"); // 적립금액 or 사용금액 pnt_issue = parm_c_PP_CLI.m_f__get_res("pnt_issue"); // 포인트 결제사 } else if (use_pay_method == "000010000000") { //휴대폰 hp_app_time = parm_c_PP_CLI.m_f__get_res("hp_app_time"); // 휴대폰 승인시간 commid = parm_c_PP_CLI.m_f__get_res("commid"); // 통신사 코드 mobile_no = parm_c_PP_CLI.m_f__get_res("mobile_no"); // 휴대폰 번호 app_time = parm_c_PP_CLI.m_f__get_res("app_time"); // 승인시간 } else if (use_pay_method == "000000001000") { //상품권 tk_van_code = parm_c_PP_CLI.m_f__get_res("tk_van_code"); // 발급사 코드 tk_app_no = parm_c_PP_CLI.m_f__get_res("tk_app_no"); // 승인 번호 app_time = parm_c_PP_CLI.m_f__get_res("tk_app_time"); // 승인시간 } else if (use_pay_method == "000000000010") { //ARS ars_app_time = parm_c_PP_CLI.m_f__get_res("ars_app_time"); // ARS 승인시간 } //현금영수증 cash_yn = cash_yn; // 현금 영수증 등록 여부 if (cash_yn == "Y") { cash_authno = parm_c_PP_CLI.m_f__get_res("cash_authno"); // 현금 영수증 승인 번호 cash_tr_code = cash_tr_code; // 현금 영수증 발행 구분 cash_id_info = cash_id_info; // 현금 영수증 등록 번호 cash_no = parm_c_PP_CLI.m_f__get_res("cash_no"); // 현금 영수증 거래 번호 } }
/* ==================================================================================== */ /* ==================================================================================== */ /* + METHOD : 요청 거래 처리 + */ /* - -------------------------------------------------------------------------------- - */ private void m_f__do_tx() { C_PP_CLI_COM c_PP_CLI = new C_PP_CLI_COM(); int nDataSetInx_req; bool bRT = false; bool bNetCan = false; /* -------------------------------------------------------------------------------- */ /* + 초기화 + */ /* - ---------------------------------------------------------------------------- - */ m_strTxCD = ""; nDataSetInx_req = 0; /* - ---------------------------------------------------------------------------- - */ c_PP_CLI.m_f__set_env(m_strCFG_paygw_url, m_strCFG_paygw_port, m_strCFG_log_path, m_strCFG_key_path); m_strCustIP = Request.ServerVariables.Get("REMOTE_ADDR"); /* - ---------------------------------------------------------------------------- - */ c_PP_CLI.m_f__init(); /* -------------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------------- */ /* + 요청 처리 + */ /* - ---------------------------------------------------------------------------- - */ if (req_tx.Equals("pay")) { nDataSetInx_req = m_f__set_dataset_pay(ref c_PP_CLI); } /* - ---------------------------------------------------------------------------- - */ if (!m_strTxCD.Equals("")) { c_PP_CLI.m_f__do_tx(req_tx, m_strTxCD, nDataSetInx_req, "", m_strCFG_site_cd, m_strCFG_site_key, ordr_idxx); m_strResCD = c_PP_CLI.m_strResCD; m_strResMsg = c_PP_CLI.m_strResMsg; } else { m_strResCD = "9562"; m_strResMsg = "지불모듈 연동 오류 (TX_CD) 가 정의되지 않았습니다."; } /* -------------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------------- */ /* + 결과 처리 + */ /* - ---------------------------------------------------------------------------- - */ if (m_strResCD.Equals("0000")) { /* - ------------------------------------------------------------------------ - */ if (req_tx.Equals("pay")) { /* - -------------------------------------------------------------------- - */ bRT = m_f__to_do_shop_pay(); /* 정상 적립/조회/사용 거래 결과 처리 */ /* - -------------------------------------------------------------------- - */ if (bRT == false) { /* - ---------------------------------------------------------------- - */ /* + TODO (주위) : 망상 취소 처리 + */ /* -- -------------------------------------------------------------- -- */ /* + 적립/사용 결과 처리 중 오류가 발생한 경우 자동 취소를 + */ /* + 원하실 경우 아래의 bNetCan 값을 true로 설정하여 주시기 + */ /* + 바랍니다. 취소 처리는 거래는 원복을 할 수 없으므로 주위 + */ /* + 하여 주시기 바랍니다. + */ /* -- -------------------------------------------------------------- -- */ bNetCan = false; /* - ---------------------------------------------------------------- - */ } /* - -------------------------------------------------------------------- - */ if (bNetCan == true) { m_f__do_net_can(ref c_PP_CLI); } else { m_f__disp_rt_pay_succ(ref c_PP_CLI); } /* - -------------------------------------------------------------------- - */ } /* - ------------------------------------------------------------------------ - */ } else { /* - ------------------------------------------------------------------------ - */ m_f__to_do_shop_fail(); /* - ------------------------------------------------------------------------ - */ m_f__disp_rt_fail(); } /* -------------------------------------------------------------------------------- */ }