|
|
@@ -9,10 +9,12 @@ import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.core.env.Environment;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import com.gagaframework.web.parameter.GagaMap;
|
|
|
+import com.kcp.J_PP_CLI_N;
|
|
|
import com.style24.core.biz.dao.TscOrderDao;
|
|
|
import com.style24.core.biz.service.TscKakaoPayService;
|
|
|
import com.style24.core.biz.service.TscKcpService;
|
|
|
@@ -22,6 +24,7 @@ import com.style24.front.biz.dao.TsfOrderDao;
|
|
|
import com.style24.front.support.security.session.TsfSession;
|
|
|
import com.style24.persistence.domain.Cart;
|
|
|
import com.style24.persistence.domain.Coupon;
|
|
|
+import com.style24.persistence.domain.GiftCard;
|
|
|
import com.style24.persistence.domain.KakaoPay;
|
|
|
import com.style24.persistence.domain.NaverPay;
|
|
|
import com.style24.persistence.domain.Order;
|
|
|
@@ -60,6 +63,9 @@ public class TsfOrderService {
|
|
|
@Autowired
|
|
|
private TsfCartService cartService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private Environment env;
|
|
|
+
|
|
|
/**
|
|
|
* 마이페이지 주문 정보 조회
|
|
|
*
|
|
|
@@ -605,5 +611,76 @@ public class TsfOrderService {
|
|
|
return resultStr;
|
|
|
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ /**
|
|
|
+ * KCP 현금영수증 신청
|
|
|
+ * param.setTradeTime("20210422200347"); // 결제시각 : YYYYMMDDHH24MISS 형식
|
|
|
+ * param.setOrdPhnno("01011111111"); // 현금영수증 대상 휴대폰번호
|
|
|
+ * param.setUsGfcdAmt(10000); // 현금영수증 신청 금액
|
|
|
+ * param.setOrdNo(211); // 주문번호
|
|
|
+ * param.setGoodsNm("보라색 원피스"); // 상품명 (“7. 현금영수증 매출전표 연동” 을 통해 고객이 직접 전표를 확인코자 한다면 상품명을 넘겨주지 않았을 경우 구매자 인증 시 인증오류가 발생할 수 있습니다.)
|
|
|
+ * param.setOrdNm("구매자"); // 구매자명
|
|
|
+ * param.setOrdEmail("xxxx@xxxx.com"); // 구매자이메일 (“7. 현금영수증 매출전표 연동” 을 통해 고객이 직접 전표를 확인코자 한다면 메일주소를 넘겨주지 않았을 경우 구매자 인증 시 인증오류가 발생할 수 있습니다.)
|
|
|
+ * @param param
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public GiftCard kcpCashReceiptsRequest(GiftCard param) {
|
|
|
+ GiftCard result = new GiftCard();
|
|
|
+ String cust_ip = TsfSession.getInfo().getIpAddr();
|
|
|
+ String reqTx = "pay"; // 현금영수증 신청
|
|
|
+ String txCd = "07010000"; // 현금영수증 등록 요청
|
|
|
+ String ordPhnno = "";
|
|
|
+ if(!StringUtils.isEmpty(param.getOrdPhnno())) {
|
|
|
+ ordPhnno = param.getOrdPhnno().replaceAll("-", "");
|
|
|
+ }
|
|
|
+
|
|
|
+ J_PP_CLI_N c_PayPlus = new J_PP_CLI_N();
|
|
|
+ c_PayPlus.mf_init( "", env.getProperty("pg.kcp.gw.url"), env.getProperty("pg.kcp.gw.port"), Integer.parseInt(env.getProperty("pg.kcp.tx.mode")), env.getProperty("pg.kcp.log.dir") );
|
|
|
+ c_PayPlus.mf_init_set();
|
|
|
+
|
|
|
+ int rcpt_data_set = c_PayPlus.mf_add_set( "rcpt_data" ) ;
|
|
|
+ int ordr_data_set = c_PayPlus.mf_add_set( "ordr_data" ) ;
|
|
|
+ int corp_data_set = c_PayPlus.mf_add_set( "corp_data" ) ;
|
|
|
+
|
|
|
+ // 현금영수증 정보
|
|
|
+ c_PayPlus.mf_set_us( rcpt_data_set, "user_type", "PG01") ;
|
|
|
+ c_PayPlus.mf_set_us( rcpt_data_set, "trad_time", param.getTradeTime()) ;
|
|
|
+ c_PayPlus.mf_set_us( rcpt_data_set, "tr_code" , "0") ; // 0 : 소득공제용(개인), 1 : 지출증빙용(기업)
|
|
|
+ c_PayPlus.mf_set_us( rcpt_data_set, "id_info" , ordPhnno) ; // 발급 대상이 개인인 경우에는 주민번호, 휴대폰번호,현금영수증 카드를 세팅하며, 기업인 경우에는 대상 사업자 번호를 입력. 자진발급으로 등록 시, “0100001234” 으로 입력.
|
|
|
+ c_PayPlus.mf_set_us( rcpt_data_set, "amt_tot" , param.getUsGfcdAmt() + "") ; // 현금영수증 금액 (공급가액 + 부가가치세 + 봉사료)
|
|
|
+ //c_PayPlus.mf_set_us( rcpt_data_set, "amt_sup" , amt_sup ) ; // 공급가액
|
|
|
+ //c_PayPlus.mf_set_us( rcpt_data_set, "amt_svc" , amt_svc ) ; // 봉사료
|
|
|
+ //c_PayPlus.mf_set_us( rcpt_data_set, "amt_tax" , amt_tax ) ; // 부가가치세 (공급가액의 10%)
|
|
|
+ c_PayPlus.mf_set_us( rcpt_data_set, "pay_type" , "PAXX") ; // 무슨 값인지 알 수 없음.
|
|
|
+
|
|
|
+ // 주문 정보
|
|
|
+ c_PayPlus.mf_set_us( ordr_data_set, "ordr_idxx", param.getOrdNo() + "") ; // 주문번호
|
|
|
+ c_PayPlus.mf_set_us( ordr_data_set, "good_name", param.getGoodsNm()); // 상품명
|
|
|
+ c_PayPlus.mf_set_us( ordr_data_set, "buyr_name", param.getOrdNm());
|
|
|
+ c_PayPlus.mf_set_us( ordr_data_set, "buyr_tel1", ordPhnno);
|
|
|
+ c_PayPlus.mf_set_us( ordr_data_set, "buyr_mail", param.getOrdEmail());
|
|
|
+ // c_PayPlus.mf_set_us( ordr_data_set, "comment" , comment); // 비고 (ex - 여유 파라미터)
|
|
|
+
|
|
|
+ // 가맹점 정보
|
|
|
+ c_PayPlus.mf_set_us( corp_data_set, "corp_type", "0"); // 사업장 구분 (직접 판매 : 0, 입점몰 판매 : 1)
|
|
|
+
|
|
|
+ // 실행
|
|
|
+ c_PayPlus.mf_do_tx(env.getProperty("pg.kcp.site.cd"), "", txCd, cust_ip, param.getOrdNo() + "", env.getProperty("pg.kcp.log.dir"), "0");
|
|
|
+
|
|
|
+ // 결과
|
|
|
+ result.setResultCd(c_PayPlus.m_res_cd);
|
|
|
+ result.setResultMsg(c_PayPlus.m_res_msg);
|
|
|
+ result.setOrdNo(param.getOrdNo());
|
|
|
+ result.setUsGfcdAmt(param.getUsGfcdAmt());
|
|
|
+ if("0000".equals(result.getResultCd())) {
|
|
|
+ result.setTradeNo(c_PayPlus.mf_get_res("cash_no"));
|
|
|
+ result.setAuthNo(c_PayPlus.mf_get_res("receipt_no"));
|
|
|
+
|
|
|
+ // 성공시 TB_GIFTCARD_RECEIPT INSERT
|
|
|
+ }
|
|
|
+
|
|
|
+ // 성공이든 실패이든 로그성 데이터 TB_GIFTCARD_RECEIPT_API INSERT
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
}
|