EasypayPaymentService.java 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388
  1. package com.oqpo.api.service.loanmng;
  2. import com.kicc.EasyPayClient;
  3. import com.oqpo.api.exception.GlobalException;
  4. import com.oqpo.api.mapper.loanmng.UnpaidMngMapper;
  5. import com.oqpo.api.service.CommonService;
  6. import com.oqpo.api.util.StringUtil;
  7. import com.oqpo.api.web.dto.request.loanmng.EasypayPaymentRequest;
  8. import com.oqpo.api.web.dto.response.loanmng.EasypayPaymentResponse;
  9. import lombok.extern.slf4j.Slf4j;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.beans.factory.annotation.Value;
  12. import org.springframework.stereotype.Service;
  13. import org.springframework.transaction.annotation.Transactional;
  14. import javax.servlet.http.HttpServletRequest;
  15. @Service
  16. @Slf4j
  17. public class EasypayPaymentService extends CommonService {
  18. @Autowired
  19. private UnpaidMngMapper unpaidMngMapper;
  20. @Value("${kicc.gateway}")
  21. private String kiccGatewayUrl;
  22. @Value("${kicc.cert_dir}")
  23. private String kiccCertFile;
  24. @Value("${kicc.log_dir}")
  25. private String kiccLogDir;
  26. /* 결제 요청 */
  27. @Transactional
  28. public EasypayPaymentResponse requestPayment(String userId, HttpServletRequest request, EasypayPaymentRequest easypayPaymentRequest) throws Exception {
  29. try {
  30. /* -------------------------------------------------------------------------- */
  31. /* ::: 처리구분 설정 */
  32. /* -------------------------------------------------------------------------- */
  33. final String TRAN_CD_NOR_PAYMENT = "00101000"; // 승인(일반, 에스크로)
  34. final String TRAN_CD_NOR_MGR = "00201000"; // 변경(일반, 에스크로)
  35. @SuppressWarnings("unused") final String TRAN_CD_NOR_MALL = "00201030"; // 셀러(다중정산)
  36. /* -------------------------------------------------------------------------- */
  37. /* ::: 지불정보 설정 */
  38. /* -------------------------------------------------------------------------- */
  39. final String GW_URL = (String) kiccGatewayUrl; // GatewayURL
  40. final String GW_PORT = "80"; // 포트번호(변경불가)
  41. /* -------------------------------------------------------------------------- */
  42. /* ::: 지불 데이터 셋업 (업체에 맞게 수정) */
  43. /* -------------------------------------------------------------------------- */
  44. /* ※ 주의 ※ */
  45. /* cert_file 변수 설정 */
  46. /* - pg_cert.pem 파일이 있는 디렉토리의 절대 경로 설정 */
  47. /* log_dir 변수 설정 */
  48. /* - log 디렉토리 설정 */
  49. /* log_level 변수 설정 */
  50. /* - log 레벨 설정 (1 to 99(높을수록 상세)) */
  51. /* -------------------------------------------------------------------------- */
  52. final String CERT_FILE = (String) kiccCertFile;
  53. final String LOG_DIR = (String) kiccLogDir;
  54. final int LOG_LEVEL = 1;
  55. /* -------------------------------------------------------------------------- */
  56. /* ::: 승인요청 정보 설정 */
  57. /* -------------------------------------------------------------------------- */
  58. // [헤더]
  59. String tr_cd = ""; // [필수]결제창요청구분
  60. String trace_no = ""; // [필수]추적번호
  61. String order_no = ""; // [필수]가맹점주문번호
  62. String mall_id = ""; // [필수]가맹점ID
  63. // [공통]
  64. String encrypt_data = ""; // [필수]암호화전문
  65. String sessionkey = ""; // [필수]세션키
  66. if (!StringUtil.isEmpty(easypayPaymentRequest.getSp_tr_cd())) {
  67. // [헤더]
  68. tr_cd = StringUtil.null2str(easypayPaymentRequest.getSp_tr_cd()); // [필수]결제창요청구분
  69. trace_no = StringUtil.null2str(easypayPaymentRequest.getSp_trace_no()); // [필수]추적번호
  70. order_no = StringUtil.null2str(easypayPaymentRequest.getSp_order_no()); // [필수]가맹점주문번호
  71. mall_id = StringUtil.null2str(easypayPaymentRequest.getSp_mall_id()); // [필수]가맹점ID
  72. // [공통]
  73. encrypt_data = StringUtil.null2str(easypayPaymentRequest.getSp_encrypt_data()); // [필수]암호화전문
  74. sessionkey = StringUtil.null2str(easypayPaymentRequest.getSp_sessionkey()); // [필수]세션키
  75. } else {
  76. // [헤더]
  77. tr_cd = StringUtil.null2str(easypayPaymentRequest.getEP_tr_cd()); // [필수]결제창요청구분
  78. trace_no = StringUtil.null2str(easypayPaymentRequest.getEP_trace_no()); // [필수]추적번호
  79. order_no = StringUtil.null2str(easypayPaymentRequest.getEP_order_no()); // [필수]가맹점주문번호
  80. mall_id = StringUtil.null2str(easypayPaymentRequest.getEP_mall_id()); // [필수]가맹점ID
  81. // [공통]
  82. encrypt_data = StringUtil.null2str(easypayPaymentRequest.getEP_encrypt_data()); // [필수]암호화전문
  83. sessionkey = StringUtil.null2str(easypayPaymentRequest.getEP_sessionkey()); // [필수]세션키
  84. }
  85. /* -------------------------------------------------------------------------- */
  86. /* ::: 변경관리 정보 설정 */
  87. /* -------------------------------------------------------------------------- */
  88. String mgr_txtype = StringUtil.null2str(easypayPaymentRequest.getMgr_txtype()); // [필수]거래구분
  89. String mgr_subtype = StringUtil.null2str(easypayPaymentRequest.getMgr_subtype()); // [선택]변경세부구분
  90. String org_cno = StringUtil.null2str(easypayPaymentRequest.getOrg_cno()); // [필수]원거래고유번호
  91. String mgr_amt = StringUtil.null2str(easypayPaymentRequest.getMgr_amt()); // [선택]금액
  92. String mgr_rem_amt = StringUtil.null2str(easypayPaymentRequest.getMgr_rem_amt()); // [선택]부분취소잔액
  93. String mgr_bank_cd = StringUtil.null2str(easypayPaymentRequest.getMgr_bank_cd()); // [선택]환불계좌은행코드
  94. String mgr_account = StringUtil.null2str(easypayPaymentRequest.getMgr_account()); // [선택]환불계좌번호
  95. String mgr_depositor = StringUtil.null2str(easypayPaymentRequest.getMgr_depositor()); // [선택]환불계좌예금주명
  96. /* -------------------------------------------------------------------------- */
  97. /* ::: 전문 */
  98. /* -------------------------------------------------------------------------- */
  99. // String mgr_data = ""; // 변경정보
  100. // String mall_data = ""; // 요청전문
  101. /* -------------------------------------------------------------------------- */
  102. /* ::: 결제 결과 */
  103. /* -------------------------------------------------------------------------- */
  104. String bDBProc = ""; //가맹점DB처리성공여부
  105. String res_cd = ""; //응답코드
  106. String res_msg = ""; //응답메시지
  107. String r_cno = ""; //PG거래번호
  108. String r_amount = ""; //총 결제금액
  109. String r_order_no = ""; //주문번호
  110. String r_auth_no = ""; //승인번호
  111. String r_tran_date = ""; //승인일시
  112. String r_escrow_yn = ""; //에스크로 사용유무
  113. String r_complex_yn = ""; //복합결제 유무
  114. String r_stat_cd = ""; //상태코드
  115. String r_stat_msg = ""; //상태메시지
  116. String r_pay_type = ""; //결제수단
  117. String r_mall_id = ""; //가맹점 Mall ID
  118. String r_card_no = ""; //카드번호
  119. String r_issuer_cd = ""; //발급사코드
  120. String r_issuer_nm = ""; //발급사명
  121. String r_acquirer_cd = ""; //매입사코드
  122. String r_acquirer_nm = ""; //매입사명
  123. String r_install_period = ""; //할부개월
  124. String r_noint = ""; //무이자여부
  125. String r_part_cancel_yn = ""; //부분취소 가능여부
  126. String r_card_gubun = ""; //신용카드 종류
  127. String r_card_biz_gubun = ""; //신용카드 구분
  128. String r_cpon_flag = ""; //쿠폰사용유무
  129. String r_bank_cd = ""; //은행코드
  130. String r_bank_nm = ""; //은행명
  131. String r_account_no = ""; //계좌번호
  132. String r_deposit_nm = ""; //입금자명
  133. String r_expire_date = ""; //계좌사용만료일
  134. String r_cash_res_cd = ""; //현금영수증 결과코드
  135. String r_cash_res_msg = ""; //현금영수증 결과메세지
  136. String r_cash_auth_no = ""; //현금영수증 승인번호
  137. String r_cash_tran_date = ""; //현금영수증 승인일시
  138. String r_cash_issue_type = ""; //현금영수증발행용도
  139. String r_cash_auth_type = ""; //인증구분
  140. String r_cash_auth_value = ""; //인증번호
  141. String r_auth_id = ""; //PhoneID
  142. String r_billid = ""; //인증번호
  143. String r_mobile_no = ""; //휴대폰번호
  144. String r_mob_ansim_yn = ""; //안심결제 사용유무
  145. String r_ars_no = ""; //전화번호
  146. String r_cp_cd = ""; //포인트사/쿠폰사
  147. String r_cpon_auth_no = ""; //쿠폰승인번호
  148. String r_cpon_tran_date = ""; //쿠폰승인일시
  149. String r_cpon_no = ""; //쿠폰번호
  150. String r_remain_cpon = ""; //쿠폰잔액
  151. String r_used_cpon = ""; //쿠폰 사용금액
  152. String r_rem_amt = ""; //잔액
  153. String r_bk_pay_yn = ""; //장바구니 결제여부
  154. String r_canc_acq_date = ""; //매입취소일시
  155. String r_canc_date = ""; //취소일시
  156. String r_refund_date = ""; //환불예정일시
  157. /* -------------------------------------------------------------------------- */
  158. /* ::: EasyPayClient 인스턴스 생성 [변경불가 !!]. */
  159. /* -------------------------------------------------------------------------- */
  160. EasyPayClient easyPayClient = new EasyPayClient();
  161. easyPayClient.easypay_setenv_init(GW_URL, GW_PORT, CERT_FILE, LOG_DIR, LOG_LEVEL);
  162. easyPayClient.easypay_reqdata_init();
  163. /* -------------------------------------------------------------------------- */
  164. /* ::: 승인요청(플러그인 암호화 전문 설정) */
  165. /* -------------------------------------------------------------------------- */
  166. if (TRAN_CD_NOR_PAYMENT.equals(tr_cd)) {
  167. // 승인요청 전문 설정
  168. easyPayClient.easypay_set_trace_no(trace_no);
  169. easyPayClient.easypay_encdata_set(encrypt_data, sessionkey);
  170. }
  171. /* -------------------------------------------------------------------------- */
  172. /* ::: 변경관리 요청 */
  173. /* -------------------------------------------------------------------------- */
  174. else if (TRAN_CD_NOR_MGR.equals(tr_cd)) {
  175. int easypay_mgr_data_item;
  176. easypay_mgr_data_item = easyPayClient.easypay_item("mgr_data");
  177. easyPayClient.easypay_deli_us(easypay_mgr_data_item, "mgr_txtype", mgr_txtype); // [필수]거래구분
  178. easyPayClient.easypay_deli_us(easypay_mgr_data_item, "mgr_subtype", mgr_subtype); // [선택]변경세부구분
  179. easyPayClient.easypay_deli_us(easypay_mgr_data_item, "org_cno", org_cno); // [필수]원거래고유번호
  180. easyPayClient.easypay_deli_us(easypay_mgr_data_item, "mgr_amt", mgr_amt); // [선택]금액
  181. easyPayClient.easypay_deli_us(easypay_mgr_data_item, "mgr_rem_amt", mgr_rem_amt); // [선택]부분취소 잔액
  182. easyPayClient.easypay_deli_us(easypay_mgr_data_item, "mgr_bank_cd", mgr_bank_cd); // [선택]환불계좌 은행코드
  183. easyPayClient.easypay_deli_us(easypay_mgr_data_item, "mgr_account", mgr_account); // [선택]환불계좌 번호
  184. easyPayClient.easypay_deli_us(easypay_mgr_data_item, "mgr_depositor", mgr_depositor); // [선택]환불계좌 예금주명
  185. easyPayClient.easypay_deli_us(easypay_mgr_data_item, "req_ip", request.getRemoteAddr());// [필수]요청자 IP
  186. }
  187. /* -------------------------------------------------------------------------- */
  188. /* ::: 실행 */
  189. /* -------------------------------------------------------------------------- */
  190. if (tr_cd.length() > 0) {
  191. easyPayClient.easypay_run(mall_id, tr_cd, order_no);
  192. res_cd = easyPayClient.res_cd;
  193. res_msg = easyPayClient.res_msg;
  194. } else {
  195. res_cd = "M114";
  196. res_msg = "연동 오류|tr_cd값이 설정되지 않았습니다.";
  197. }
  198. /* -------------------------------------------------------------------------- */
  199. /* ::: 결과 처리 */
  200. /* -------------------------------------------------------------------------- */
  201. r_cno = easyPayClient.easypay_get_res("cno"); //PG거래번호
  202. r_amount = easyPayClient.easypay_get_res("amount"); //총 결제금액
  203. r_order_no = easyPayClient.easypay_get_res("order_no"); //주문번호
  204. r_auth_no = easyPayClient.easypay_get_res("auth_no"); //승인번호
  205. r_tran_date = easyPayClient.easypay_get_res("tran_date"); //승인일시
  206. r_escrow_yn = easyPayClient.easypay_get_res("escrow_yn"); //에스크로 사용유무
  207. r_complex_yn = easyPayClient.easypay_get_res("complex_yn"); //복합결제 유무
  208. r_stat_cd = easyPayClient.easypay_get_res("stat_cd"); //상태코드
  209. r_stat_msg = easyPayClient.easypay_get_res("stat_msg"); //상태메시지
  210. r_pay_type = easyPayClient.easypay_get_res("pay_type"); //결제수단
  211. r_mall_id = easyPayClient.easypay_get_res("mall_id"); //가맹점 Mall ID
  212. r_card_no = easyPayClient.easypay_get_res("card_no"); //카드번호
  213. r_issuer_cd = easyPayClient.easypay_get_res("issuer_cd"); //발급사코드
  214. r_issuer_nm = easyPayClient.easypay_get_res("issuer_nm"); //발급사명
  215. r_acquirer_cd = easyPayClient.easypay_get_res("acquirer_cd"); //매입사코드
  216. r_acquirer_nm = easyPayClient.easypay_get_res("acquirer_nm"); //매입사명
  217. r_install_period = easyPayClient.easypay_get_res("install_period"); //할부개월
  218. r_noint = easyPayClient.easypay_get_res("noint"); //무이자여부
  219. r_part_cancel_yn = easyPayClient.easypay_get_res("part_cancel_yn"); //부분취소 가능여부
  220. r_card_gubun = easyPayClient.easypay_get_res("card_gubun"); //신용카드 종류
  221. r_card_biz_gubun = easyPayClient.easypay_get_res("card_biz_gubun"); //신용카드 구분
  222. r_cpon_flag = easyPayClient.easypay_get_res("cpon_flag"); //쿠폰사용유무
  223. r_bank_cd = easyPayClient.easypay_get_res("bank_cd"); //은행코드
  224. r_bank_nm = easyPayClient.easypay_get_res("bank_nm"); //은행명
  225. r_account_no = easyPayClient.easypay_get_res("account_no"); //계좌번호
  226. r_deposit_nm = easyPayClient.easypay_get_res("deposit_nm"); //입금자명
  227. r_expire_date = easyPayClient.easypay_get_res("expire_date"); //계좌사용만료일
  228. r_cash_res_cd = easyPayClient.easypay_get_res("cash_res_cd"); //현금영수증 결과코드
  229. r_cash_res_msg = easyPayClient.easypay_get_res("cash_res_msg"); //현금영수증 결과메세지
  230. r_cash_auth_no = easyPayClient.easypay_get_res("cash_auth_no"); //현금영수증 승인번호
  231. r_cash_tran_date = easyPayClient.easypay_get_res("cash_tran_date"); //현금영수증 승인일시
  232. r_cash_issue_type = easyPayClient.easypay_get_res("cash_issue_type"); //현금영수증발행용도
  233. r_cash_auth_type = easyPayClient.easypay_get_res("cash_auth_type"); //인증구분
  234. r_cash_auth_value = easyPayClient.easypay_get_res("cash_auth_value"); //인증번호
  235. r_auth_id = easyPayClient.easypay_get_res("auth_id"); //PhoneID
  236. r_billid = easyPayClient.easypay_get_res("billid"); //인증번호
  237. r_mobile_no = easyPayClient.easypay_get_res("mobile_no"); //휴대폰번호
  238. r_mob_ansim_yn = easyPayClient.easypay_get_res("mob_ansim_yn"); //안심결제 사용유무
  239. r_ars_no = easyPayClient.easypay_get_res("ars_no"); //전화번호
  240. r_cp_cd = easyPayClient.easypay_get_res("cp_cd"); //포인트사/쿠폰사
  241. r_cpon_auth_no = easyPayClient.easypay_get_res("cpon_auth_no"); //쿠폰승인번호
  242. r_cpon_tran_date = easyPayClient.easypay_get_res("cpon_tran_date"); //쿠폰승인일시
  243. r_cpon_no = easyPayClient.easypay_get_res("cpon_no"); //쿠폰번호
  244. r_remain_cpon = easyPayClient.easypay_get_res("remain_cpon"); //쿠폰잔액
  245. r_used_cpon = easyPayClient.easypay_get_res("used_cpon"); //쿠폰 사용금액
  246. r_rem_amt = easyPayClient.easypay_get_res("rem_amt"); //잔액
  247. r_bk_pay_yn = easyPayClient.easypay_get_res("bk_pay_yn"); //장바구니 결제여부
  248. r_canc_acq_date = easyPayClient.easypay_get_res("canc_acq_date"); //매입취소일시
  249. r_canc_date = easyPayClient.easypay_get_res("canc_date"); //취소일시
  250. r_refund_date = easyPayClient.easypay_get_res("refund_date"); //환불예정일시
  251. /* -------------------------------------------------------------------------- */
  252. /* ::: 가맹점 DB 처리 */
  253. /* -------------------------------------------------------------------------- */
  254. /* 응답코드(res_cd)가 "0000" 이면 정상승인 입니다. */
  255. /* r_amount가 주문DB의 금액과 다를 시 반드시 취소 요청을 하시기 바랍니다. */
  256. /* DB 처리 실패 시 취소 처리를 해주시기 바랍니다. */
  257. /* -------------------------------------------------------------------------- */
  258. log.info("[REQUEST_PAYMENT] res_cd : " + res_cd);
  259. EasypayPaymentResponse easyResult = new EasypayPaymentResponse();
  260. easyResult.setRes_cd(res_cd);
  261. easyResult.setRes_msg(res_msg);
  262. easyResult.setCno(r_cno);
  263. easyResult.setAmount(r_amount);
  264. easyResult.setOrder_no(r_order_no);
  265. easyResult.setAuth_no(r_auth_no);
  266. easyResult.setTran_date(r_tran_date);
  267. easyResult.setEscrow_yn(r_escrow_yn);
  268. easyResult.setComplex_yn(r_complex_yn);
  269. easyResult.setStat_cd(r_stat_cd);
  270. easyResult.setStat_msg(r_stat_msg);
  271. easyResult.setPay_type(r_pay_type);
  272. easyResult.setMall_id(r_mall_id);
  273. easyResult.setCard_no(r_card_no);
  274. easyResult.setIssuer_cd(r_issuer_cd);
  275. easyResult.setIssuer_nm(r_issuer_nm);
  276. easyResult.setAcquirer_cd(r_acquirer_cd);
  277. easyResult.setAcquirer_nm(r_acquirer_nm);
  278. easyResult.setInstall_period(r_install_period);
  279. easyResult.setNoint(r_noint);
  280. easyResult.setPart_cancel_yn(r_part_cancel_yn);
  281. easyResult.setCard_gubun(r_card_gubun);
  282. easyResult.setCard_biz_gubun(r_card_biz_gubun);
  283. easyResult.setCpon_flag(r_cpon_flag);
  284. easyResult.setBank_cd(r_bank_cd);
  285. easyResult.setBank_nm(r_bank_nm);
  286. easyResult.setAccount_no(r_account_no);
  287. easyResult.setDeposit_nm(r_deposit_nm);
  288. easyResult.setExpire_date(r_expire_date);
  289. easyResult.setCash_res_cd(r_cash_res_cd);
  290. easyResult.setCash_res_msg(r_cash_res_msg);
  291. easyResult.setCash_auth_no(r_cash_auth_no);
  292. easyResult.setCash_tran_date(r_cash_tran_date);
  293. easyResult.setCash_issue_type(r_cash_issue_type);
  294. easyResult.setCash_auth_type(r_cash_auth_type);
  295. easyResult.setCash_auth_value(r_cash_auth_value);
  296. easyResult.setAuth_id(r_auth_id);
  297. easyResult.setBillid(r_billid);
  298. easyResult.setMobile_no(r_mobile_no);
  299. easyResult.setMob_ansim_yn(r_mob_ansim_yn);
  300. easyResult.setArs_no(r_ars_no);
  301. easyResult.setCp_cd(r_cp_cd);
  302. easyResult.setCpon_auth_no(r_cpon_auth_no);
  303. easyResult.setCpon_tran_date(r_cpon_tran_date);
  304. easyResult.setCpon_no(r_cpon_no);
  305. easyResult.setRemain_cpon(r_remain_cpon);
  306. easyResult.setUsed_cpon(r_used_cpon);
  307. easyResult.setRem_amt(r_rem_amt);
  308. easyResult.setBk_pay_yn(r_bk_pay_yn);
  309. easyResult.setCanc_acq_date(r_canc_acq_date);
  310. easyResult.setCanc_date(r_canc_date);
  311. easyResult.setRefund_date(r_refund_date);
  312. if (res_cd.equals("0000")) {
  313. bDBProc = "true"; // DB처리 성공 시 "true", 실패 시 "false"
  314. try {
  315. // TbSaleHeaderModel saleHeader = (TbSaleHeaderModel) SessionUtil.getAttribute(SessionUtil.PAYMENT_CART);
  316. // saveEasypayResult(easyResult);
  317. // TODO 결과를 저장한다.
  318. } catch (Exception e) {
  319. e.printStackTrace();
  320. bDBProc = "false";
  321. }
  322. if (bDBProc.equals("false")) {
  323. // 승인요청이 실패 시 아래 실행
  324. if (TRAN_CD_NOR_PAYMENT.equals(tr_cd)) {
  325. int easypay_mgr_data_item;
  326. easyPayClient.easypay_reqdata_init();
  327. tr_cd = TRAN_CD_NOR_MGR;
  328. easypay_mgr_data_item = easyPayClient.easypay_item("mgr_data");
  329. if (!r_escrow_yn.equals("Y")) {
  330. easyPayClient.easypay_deli_us(easypay_mgr_data_item, "mgr_txtype", "40");
  331. } else {
  332. easyPayClient.easypay_deli_us(easypay_mgr_data_item, "mgr_txtype", "61");
  333. easyPayClient.easypay_deli_us(easypay_mgr_data_item, "mgr_subtype", "ES02");
  334. }
  335. easyPayClient.easypay_deli_us(easypay_mgr_data_item, "org_cno", r_cno);
  336. easyPayClient.easypay_deli_us(easypay_mgr_data_item, "order_no", order_no);
  337. easyPayClient.easypay_deli_us(easypay_mgr_data_item, "req_ip", request.getRemoteAddr());
  338. easyPayClient.easypay_deli_us(easypay_mgr_data_item, "req_id", "MALL_R_TRANS");
  339. easyPayClient.easypay_deli_us(easypay_mgr_data_item, "mgr_msg", "DB 처리 실패로 망취소");
  340. easyPayClient.easypay_run(mall_id, tr_cd, order_no);
  341. res_cd = easyPayClient.res_cd;
  342. res_msg = easyPayClient.res_msg;
  343. r_cno = easyPayClient.easypay_get_res("cno"); // PG거래번호
  344. r_canc_date = easyPayClient.easypay_get_res("canc_date"); // 취소일시
  345. }
  346. }
  347. }
  348. return easyResult;
  349. } catch (GlobalException e) {
  350. e.getStackTrace();
  351. throw new GlobalException(e.getSystemMessageCode());
  352. } catch (Exception e) {
  353. e.getStackTrace();
  354. throw new RuntimeException();
  355. }
  356. }
  357. }