Compare commits
34 Commits
9cc4a26f0f
...
16c373cb14
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
16c373cb14 | ||
|
|
eff6ce35bd | ||
|
|
c78197583f | ||
|
|
28a4552815 | ||
|
|
7bfcae2f99 | ||
|
|
920ba7de31 | ||
|
|
308c515038 | ||
|
|
87b9da9475 | ||
|
|
b059648cf0 | ||
|
|
e648e7462d | ||
|
|
0bbd8e3891 | ||
|
|
30025eaaad | ||
|
|
c776165df5 | ||
|
|
f9f561d05a | ||
|
|
86c0b9cd10 | ||
|
|
ccde39374d | ||
|
|
0f7938eec7 | ||
|
|
ef4b40682a | ||
|
|
cbb31223f1 | ||
|
|
83aa30e4f5 | ||
|
|
ef37efc226 | ||
|
|
13fe17484d | ||
|
|
9275c9189e | ||
|
|
94f853d71d | ||
|
|
80d8447eae | ||
|
|
52f9c11244 | ||
|
|
fd5fb1db80 | ||
|
|
ac27213169 | ||
|
|
367ade4bad | ||
|
|
4a91b40254 | ||
|
|
5ac14532e2 | ||
|
|
a434e3eade | ||
|
|
9a61e308e1 | ||
|
|
2632b23056 |
@@ -5484,13 +5484,14 @@ public class BOOrdrService{
|
|||||||
orderVO.setMbrInnb(new BigInteger(payVO.getMbrInnb()));
|
orderVO.setMbrInnb(new BigInteger(payVO.getMbrInnb()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.info("insertKiwoomSetle service start ::: ");
|
||||||
|
|
||||||
// 주문 공통 전처리 ( 상태체크, 상태변경, 마일리지, 쿠폰, GC머니 )
|
// 주문 공통 전처리 ( 상태체크, 상태변경, 마일리지, 쿠폰, GC머니 )
|
||||||
orderCommService.commonOrderPreProcess(payVO, orderVO);
|
orderCommService.commonOrderPreProcess(payVO, orderVO);
|
||||||
|
|
||||||
/* ===============================================
|
/* ===============================================
|
||||||
결제 API >> DB select로 진행함
|
결제 API >> DB select로 진행함
|
||||||
================================================== */
|
================================================== */
|
||||||
// todo :: api 연결이 아닌 db셀렉트로 변경.
|
|
||||||
DataMap kiwoomPayMap = mapper.selectKiwoomPgApiLog(payVO);//payService.insertTossPayKeyin(payVO);
|
DataMap kiwoomPayMap = mapper.selectKiwoomPgApiLog(payVO);//payService.insertTossPayKeyin(payVO);
|
||||||
|
|
||||||
log.info("insertKiwoomSetle service kiwoomPayMap ::: {}", kiwoomPayMap);
|
log.info("insertKiwoomSetle service kiwoomPayMap ::: {}", kiwoomPayMap);
|
||||||
@@ -5506,23 +5507,17 @@ public class BOOrdrService{
|
|||||||
5. FM_ORDER_PG_LOG 등록값 셋팅
|
5. FM_ORDER_PG_LOG 등록값 셋팅
|
||||||
================================================== */
|
================================================== */
|
||||||
orderPgLogVO.setDelngNb(StringUtil.isNullToString(resultMap.get("DAOUTRX"))); // 거래번호 (결제키)
|
orderPgLogVO.setDelngNb(StringUtil.isNullToString(resultMap.get("DAOUTRX"))); // 거래번호 (결제키)
|
||||||
orderPgLogVO.setConfmDt(selectDateFormat(StringUtil.isNullToString(resultMap.get("SETTDATE")))); // 승인일시
|
orderPgLogVO.setConfmDt(StringUtil.isNullToString(resultMap.get("SETTDATE"))); // 승인일시
|
||||||
orderPgLogVO.setApvlnb(StringUtil.isNullToString(resultMap.get("AUTHNO"))); //승인번호
|
orderPgLogVO.setApvlnb(StringUtil.isNullToString(resultMap.get("AUTHNO"))); //승인번호
|
||||||
orderPgLogVO.setCardCmpnyCd(StringUtil.isNullToString(resultMap.get("CARDCODE"))); //카드사코드
|
orderPgLogVO.setCardCmpnyCd(StringUtil.isNullToString(resultMap.get("CARDCODE"))); //카드사코드
|
||||||
orderPgLogVO.setCardCmpnyNm(StringUtil.isNullToString(bOMaComncdService.selectBOCommcdDetail("KIWOOM_CARD_CD",orderPgLogVO.getCardCmpnyCd()))); //카드사명
|
orderPgLogVO.setCardCmpnyNm(StringUtil.isNullToString(bOMaComncdService.selectBOCommcdDetail("KIWOOM_CARD_CD",orderPgLogVO.getCardCmpnyCd()))); //카드사명
|
||||||
orderPgLogVO.setNintrAt((boolean) resultMap.get("NOINTFLAG") ? "Y" : "N"); //무이자여부
|
orderPgLogVO.setNintrAt(StringUtil.isNullToString(resultMap.get("NOINTFLAG"))); //무이자여부
|
||||||
orderPgLogVO.setInstlmtMtCnt(resultMap.get("INSTALL") != null ? Integer.parseInt(resultMap.get("INSTALL").toString()):0); //할부개월수
|
orderPgLogVO.setInstlmtMtCnt(resultMap.get("INSTALL") != null ? Integer.parseInt(resultMap.get("INSTALL").toString()):0); //할부개월수
|
||||||
|
|
||||||
// todo ::: 주문금액을 api테이블과 넘어온 값이랑 비교해야 처리필요
|
|
||||||
//if(!CollectionUtils.isEmpty(resultMap)) {} else {
|
|
||||||
// throw new WnbtRestException("토스 결제 실패 [결제 금액 매칭 오류]");
|
|
||||||
// }
|
|
||||||
orderPgLogVO.setDelngAmt(resultMap.get("AMOUNT") != null ? new BigDecimal(resultMap.get("AMOUNT").toString()) : BigDecimal.valueOf(0));
|
orderPgLogVO.setDelngAmt(resultMap.get("AMOUNT") != null ? new BigDecimal(resultMap.get("AMOUNT").toString()) : BigDecimal.valueOf(0));
|
||||||
|
|
||||||
orderPgLogVO.setEscwAt("N"); // 에스크로여부
|
orderPgLogVO.setEscwAt("N"); // 에스크로여부
|
||||||
orderPgLogVO.setVirtlAcntVrifyKy(""); //매출증빙영수증URL
|
orderPgLogVO.setVirtlAcntVrifyKy(""); //매출증빙영수증URL
|
||||||
orderPgLogVO.setRsltMssageCn("0000");
|
orderPgLogVO.setRsltMssageCn("정상처리-카드거래");
|
||||||
orderPgLogVO.setRsltCd("정상처리-카드거래");
|
orderPgLogVO.setRsltCd("0000");
|
||||||
|
|
||||||
// 6. FM_ORDER_SETLE 수정 ==============================================
|
// 6. FM_ORDER_SETLE 수정 ==============================================
|
||||||
BOOrderSetleVO orderSetleVO = new BOOrderSetleVO();
|
BOOrderSetleVO orderSetleVO = new BOOrderSetleVO();
|
||||||
@@ -5531,8 +5526,8 @@ public class BOOrdrService{
|
|||||||
orderSetleVO.setPgInnb(orderPgLogVO.getDelngNb());
|
orderSetleVO.setPgInnb(orderPgLogVO.getDelngNb());
|
||||||
orderSetleVO.setCredtcardApvlnb(orderPgLogVO.getApvlnb());
|
orderSetleVO.setCredtcardApvlnb(orderPgLogVO.getApvlnb());
|
||||||
orderSetleVO.setSetleTyCd(payVO.getSetleTyCd());
|
orderSetleVO.setSetleTyCd(payVO.getSetleTyCd());
|
||||||
//orderSetleVO.setSetleMid(StringUtil.isNullToString(mapper.selectBOSopSetleMidKeyInqire(payVO))); // 쇼핑몰 결제 MID(상점키) 조회
|
orderSetleVO.setSetleMid(StringUtil.isNullToString(mapper.selectBOSopSetleMidKeyInqire(payVO))); // 쇼핑몰 결제 MID(상점키) 조회
|
||||||
orderSetleVO.setSetleMid("CTS18056"); //todo : paylink 관련 정리 후 db형으로 바꿈
|
//orderSetleVO.setSetleMid(payVO.getCpId()); //todo : paylink 관련 정리 후 db형으로 바꿈 : CTS18056
|
||||||
|
|
||||||
log.info("insertKiwoomSetle service kiwoomPayMap_orderSetleVO ::: {}", orderSetleVO);
|
log.info("insertKiwoomSetle service kiwoomPayMap_orderSetleVO ::: {}", orderSetleVO);
|
||||||
|
|
||||||
|
|||||||
@@ -300,7 +300,7 @@ public class BOPayService{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* KCP 결제
|
* KCP 결제
|
||||||
* @param BOPayVO
|
* @param payVO
|
||||||
*/
|
*/
|
||||||
public Map<String, Object> insertKcpPay(BOPayVO payVO) throws Exception {
|
public Map<String, Object> insertKcpPay(BOPayVO payVO) throws Exception {
|
||||||
|
|
||||||
@@ -359,7 +359,7 @@ public class BOPayService{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* KCP 수기결제
|
* KCP 수기결제
|
||||||
* @param BOPayVO
|
* @param payVO
|
||||||
*/
|
*/
|
||||||
public Map<String, Object> insertKcpPayKeyin(BOPayVO payVO) throws Exception {
|
public Map<String, Object> insertKcpPayKeyin(BOPayVO payVO) throws Exception {
|
||||||
|
|
||||||
@@ -432,7 +432,7 @@ public class BOPayService{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* KCP 결제 취소
|
* KCP 결제 취소
|
||||||
* @param BOPayVO
|
* @param payVO
|
||||||
*/
|
*/
|
||||||
public Map<String, Object> cancelKcpPay(BOPayVO payVO) throws Exception {
|
public Map<String, Object> cancelKcpPay(BOPayVO payVO) throws Exception {
|
||||||
Map<String, Object> resParam = new HashMap<>();
|
Map<String, Object> resParam = new HashMap<>();
|
||||||
@@ -639,7 +639,7 @@ public class BOPayService{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* KCP 에스크로 상태변경 : 배송정보전송
|
* KCP 에스크로 상태변경 : 배송정보전송
|
||||||
* @param BOPayVO
|
* @param payVO
|
||||||
*/
|
*/
|
||||||
public Map<String, Object> updateEscwKcpPay(BOPayVO payVO) throws Exception {
|
public Map<String, Object> updateEscwKcpPay(BOPayVO payVO) throws Exception {
|
||||||
|
|
||||||
@@ -758,7 +758,7 @@ public class BOPayService{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* KCP 현금영수증 발급
|
* KCP 현금영수증 발급
|
||||||
* @param BOPayVO
|
* @param payVO
|
||||||
*/
|
*/
|
||||||
public Map<String, Object> insertKcpCashReceipt(BOPayVO payVO) throws Exception {
|
public Map<String, Object> insertKcpCashReceipt(BOPayVO payVO) throws Exception {
|
||||||
|
|
||||||
@@ -819,7 +819,7 @@ public class BOPayService{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* KCP 현금영수증 취소
|
* KCP 현금영수증 취소
|
||||||
* @param BOPayVO
|
* @param payVO
|
||||||
*/
|
*/
|
||||||
public Map<String, Object> cancelKcpCashReceipt(BOPayVO payVO) throws Exception {
|
public Map<String, Object> cancelKcpCashReceipt(BOPayVO payVO) throws Exception {
|
||||||
|
|
||||||
@@ -869,7 +869,7 @@ public class BOPayService{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* KCP 현금영수증 조회
|
* KCP 현금영수증 조회
|
||||||
* @param BOPayVO
|
* @param payVO
|
||||||
*/
|
*/
|
||||||
public Map<String, Object> selectKcpCashReceipt(BOPayVO payVO) throws Exception {
|
public Map<String, Object> selectKcpCashReceipt(BOPayVO payVO) throws Exception {
|
||||||
|
|
||||||
@@ -912,7 +912,7 @@ public class BOPayService{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 토스 현금영수증 발급
|
* 토스 현금영수증 발급
|
||||||
* @param BOPayVO
|
* @param payVO
|
||||||
*/
|
*/
|
||||||
public Map<String, Object> insertTossCashReceipt(BOPayVO payVO) throws Exception {
|
public Map<String, Object> insertTossCashReceipt(BOPayVO payVO) throws Exception {
|
||||||
|
|
||||||
@@ -952,7 +952,7 @@ public class BOPayService{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 토스 현금영수증 취소
|
* 토스 현금영수증 취소
|
||||||
* @param BOPayVO
|
* @param payVO
|
||||||
*/
|
*/
|
||||||
public Map<String, Object> cancelTossCashReceipt(BOPayVO payVO) throws Exception {
|
public Map<String, Object> cancelTossCashReceipt(BOPayVO payVO) throws Exception {
|
||||||
|
|
||||||
@@ -983,7 +983,7 @@ public class BOPayService{
|
|||||||
/**
|
/**
|
||||||
* 토스 결제
|
* 토스 결제
|
||||||
* 일반결제(toss), 토스페이(tossPay), 브랜드페이(brandPay) 같이 들어옴
|
* 일반결제(toss), 토스페이(tossPay), 브랜드페이(brandPay) 같이 들어옴
|
||||||
* @param BOPayVO
|
* @param payVO
|
||||||
*/
|
*/
|
||||||
public Map<String, Object> insertTossPay(BOPayVO payVO) throws Exception {
|
public Map<String, Object> insertTossPay(BOPayVO payVO) throws Exception {
|
||||||
|
|
||||||
@@ -1020,7 +1020,7 @@ public class BOPayService{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 토스 수기결제
|
* 토스 수기결제
|
||||||
* @param BOPayVO
|
* @param payVO
|
||||||
*/
|
*/
|
||||||
public Map<String, Object> insertTossPayKeyin(BOPayVO payVO) throws Exception {
|
public Map<String, Object> insertTossPayKeyin(BOPayVO payVO) throws Exception {
|
||||||
|
|
||||||
@@ -1059,7 +1059,7 @@ public class BOPayService{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 토스 결제취소
|
* 토스 결제취소
|
||||||
* @param BOPayVO
|
* @param payVO
|
||||||
*/
|
*/
|
||||||
public Map<String, Object> cancelTossPay(BOPayVO payVO) throws Exception {
|
public Map<String, Object> cancelTossPay(BOPayVO payVO) throws Exception {
|
||||||
|
|
||||||
@@ -1076,17 +1076,6 @@ public class BOPayService{
|
|||||||
obj.put("refundReceiveAccount", refundReceiveAccount);
|
obj.put("refundReceiveAccount", refundReceiveAccount);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 취소 호출 시 setModGubun을 하기로 함
|
|
||||||
String memorSetleAt = StringUtil.isNullToString(payVO.getMemorSetleAt());
|
|
||||||
if("Y".equals(memorSetleAt)){
|
|
||||||
payVO.setModGubun("keyIn");
|
|
||||||
}else if("G".equals(memorSetleAt)){ //이부분에 대한 처리 필요
|
|
||||||
payVO.setModGubun("brandPay");
|
|
||||||
}else{
|
|
||||||
payVO.setModGubun("toss");
|
|
||||||
}
|
|
||||||
// easyPay 추가되어야 함
|
|
||||||
*/
|
|
||||||
payVO.setType("cancel");
|
payVO.setType("cancel");
|
||||||
|
|
||||||
URL url = new URL("https://api.tosspayments.com/v1/payments/" + payVO.getPaymentKey() + "/cancel");
|
URL url = new URL("https://api.tosspayments.com/v1/payments/" + payVO.getPaymentKey() + "/cancel");
|
||||||
@@ -1277,7 +1266,7 @@ public class BOPayService{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 토스 에스크로 상태변경 : 배송정보전송
|
* 토스 에스크로 상태변경 : 배송정보전송
|
||||||
* @param BOPayVO
|
* @param payVO
|
||||||
*/
|
*/
|
||||||
public Map<String, Object> updateEscwTossPay(BOPayVO payVO) throws Exception {
|
public Map<String, Object> updateEscwTossPay(BOPayVO payVO) throws Exception {
|
||||||
//관련 키값 DB 조회
|
//관련 키값 DB 조회
|
||||||
@@ -1333,7 +1322,6 @@ public class BOPayService{
|
|||||||
rcvname = payVO.getRcvName(); // 실수령인명
|
rcvname = payVO.getRcvName(); // 실수령인명
|
||||||
|
|
||||||
boolean resp = false; //응답결과
|
boolean resp = false; //응답결과
|
||||||
// mertkey = resultMap.get("tossPublicKey").toString(); //토스페이먼츠에서 발급한 상점키로 변경해 주시기 바랍니다. //TODO : 확인필요
|
|
||||||
mertkey = payVO.getMertkey(); // 머트키(퍼블릭키)
|
mertkey = payVO.getMertkey(); // 머트키(퍼블릭키)
|
||||||
// mertkey = "9fd0de8489b4dc4af0dc40459958cd70"; //토스페이먼츠에서 발급한 상점키로 변경해 주시기 바랍니다.
|
// mertkey = "9fd0de8489b4dc4af0dc40459958cd70"; //토스페이먼츠에서 발급한 상점키로 변경해 주시기 바랍니다.
|
||||||
|
|
||||||
@@ -1475,7 +1463,7 @@ public class BOPayService{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Kiwoom 결제
|
* Kiwoom 결제
|
||||||
* @param BOPayVO
|
* @param payVO
|
||||||
*/
|
*/
|
||||||
public Map<String, Object> insertKiwoomPay(BOPayVO payVO) throws Exception {
|
public Map<String, Object> insertKiwoomPay(BOPayVO payVO) throws Exception {
|
||||||
|
|
||||||
@@ -1559,6 +1547,191 @@ public class BOPayService{
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 키움 결제취소
|
||||||
|
* @param payVO
|
||||||
|
*/
|
||||||
|
public Map<String, Object> cancelKiwoomPay(BOPayVO payVO) throws Exception {
|
||||||
|
|
||||||
|
log.debug("cancelKiwoomPay step1 payVO :::> {}", payVO);
|
||||||
|
|
||||||
|
//관련 키값 DB 조회
|
||||||
|
DataMap resultMap = selectPayLink(payVO.getSopmalCd());
|
||||||
|
|
||||||
|
//요청코드
|
||||||
|
String authKey = resultMap.get("kcpSecretKey").toString();
|
||||||
|
String cpId = resultMap.get("kcpMid").toString();
|
||||||
|
String amount = payVO.getCancelAmount(); //취소금액
|
||||||
|
String trxId = payVO.getTno(); //거래번호
|
||||||
|
String cancelReason = payVO.getCancelReason(); //취소사유
|
||||||
|
String payMethod = payVO.getPayMethod(); //취소결제수단
|
||||||
|
String cancelReq = "Y"; //취소URL 요청여부
|
||||||
|
//String TAXFREEAMT = nullCheck(request.getParameter("TAXFREEAMT")); //비과세 취소금액
|
||||||
|
|
||||||
|
/*if(payVO.getSetleTyCd().equals("01")) {
|
||||||
|
payMethod = "CARD";
|
||||||
|
}*/
|
||||||
|
|
||||||
|
//1차 요청코드
|
||||||
|
JSONObject obj = new JSONObject();
|
||||||
|
obj.put("cancelReason", cancelReason); //취소사유
|
||||||
|
obj.put("cancelAmount", amount); //취소금액 (금액이 없으면 전체취소)
|
||||||
|
|
||||||
|
JSONObject jsonObj = new JSONObject();
|
||||||
|
jsonObj.put("CPID", cpId);
|
||||||
|
jsonObj.put("PAYMETHOD", payMethod);
|
||||||
|
jsonObj.put("AMOUNT",amount);
|
||||||
|
jsonObj.put("CANCELREQ",cancelReq);
|
||||||
|
jsonObj.put("TRXID",trxId);
|
||||||
|
jsonObj.put("CANCELREASON",cancelReason);
|
||||||
|
//jsonObj.put("TAXFREEAMT",TAXFREEAMT);
|
||||||
|
|
||||||
|
log.debug("cancelKiwoomPay step3 JSONObject ::: {}", jsonObj.toString());
|
||||||
|
|
||||||
|
//로그 저장 셋팅
|
||||||
|
JSONObject finalJObj = new JSONObject();
|
||||||
|
DataMap pgApiLogReqVO = new DataMap();
|
||||||
|
pgApiLogReqVO.put("reqParam", jsonObj.toString());
|
||||||
|
pgApiLogReqVO.put("ordrInnb", StringUtil.isNullToString(payVO.getOrderId()));
|
||||||
|
pgApiLogReqVO.put("sopmalCd", StringUtil.isNullToString(payVO.getSopmalCd()));
|
||||||
|
pgApiLogReqVO.put("pgCmpnyNm", StringUtil.isNullToString(payVO.getPgCmpnyNm()));
|
||||||
|
pgApiLogReqVO.put("mbrInnb", StringUtil.isNullToString(payVO.getMbrInnb()));
|
||||||
|
|
||||||
|
log.debug("cancelKiwoomPay step4 pgApiLogReqVO ::: {}", pgApiLogReqVO);
|
||||||
|
|
||||||
|
// ====== step 1. 취소URL 요청 ======
|
||||||
|
try{
|
||||||
|
|
||||||
|
//결제 API URL
|
||||||
|
String targetURL = "";
|
||||||
|
if(cpId.equals("CTS18056")) {
|
||||||
|
targetURL = "https://apitest.kiwoompay.co.kr/pay/ready"; //개발서버
|
||||||
|
}else{
|
||||||
|
targetURL = "https://api.kiwoompay.co.kr/pay/ready"; //운영서버
|
||||||
|
}
|
||||||
|
URL goUrl = new URL(targetURL);
|
||||||
|
|
||||||
|
HttpURLConnection con = (HttpURLConnection) goUrl.openConnection();
|
||||||
|
con.setRequestMethod("POST");
|
||||||
|
con.setRequestProperty("Content-Type", "application/json");
|
||||||
|
con.setRequestProperty("Authorization", authKey);
|
||||||
|
con.setUseCaches(false);
|
||||||
|
con.setDoOutput(true);
|
||||||
|
con.setDoInput(true);
|
||||||
|
|
||||||
|
OutputStream os = con.getOutputStream();
|
||||||
|
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os));
|
||||||
|
|
||||||
|
writer.write("");
|
||||||
|
os.write((jsonObj.toString()).getBytes("UTF-8"));
|
||||||
|
writer.flush();
|
||||||
|
writer.close();
|
||||||
|
os.close();
|
||||||
|
con.connect();
|
||||||
|
|
||||||
|
//호출 결과 값
|
||||||
|
int responseCode = con.getResponseCode();
|
||||||
|
String responseMsg = con.getResponseMessage();
|
||||||
|
|
||||||
|
log.debug("cancelKiwoom STEP1 승인전 responseCode ====={}",responseCode);
|
||||||
|
log.debug("cancelKiwoom STEP1 승인전 responseMsg ====={}",responseMsg);
|
||||||
|
|
||||||
|
String token = "";
|
||||||
|
String returnUrl = "";
|
||||||
|
|
||||||
|
//정상 수신 했을경우 (응답코드:200)
|
||||||
|
if(responseCode == 200){
|
||||||
|
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
|
||||||
|
String inputLine = null;
|
||||||
|
StringBuffer response1 = new StringBuffer();
|
||||||
|
|
||||||
|
while((inputLine = in.readLine()) != null){
|
||||||
|
response1.append(inputLine);
|
||||||
|
}
|
||||||
|
|
||||||
|
in.close();
|
||||||
|
|
||||||
|
//응답 데이터 처리
|
||||||
|
String responseBody = response1.toString();
|
||||||
|
JSONObject jObj = (JSONObject)JSONValue.parse(responseBody);
|
||||||
|
token = jObj.get("TOKEN").toString();
|
||||||
|
returnUrl = jObj.get("RETURNURL").toString();
|
||||||
|
|
||||||
|
log.debug("cancelKiwoom STEP1 승인 responseBody ====={}", responseBody);
|
||||||
|
log.debug("cancelKiwoom STEP1 승인 TOKEN200 ====={}",token);
|
||||||
|
log.debug("cancelKiwoom STEP1 승인 URL200 ====={}",returnUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
con.disconnect();
|
||||||
|
|
||||||
|
log.debug("cancelKiwoom STEP1 승인 TOKEN ====={}",token);
|
||||||
|
log.debug("cancelKiwoom STEP1 승인 URL ====={}",returnUrl);
|
||||||
|
|
||||||
|
// ====== step 2. 취소 승인 요청 ======
|
||||||
|
|
||||||
|
targetURL = returnUrl;
|
||||||
|
goUrl = new URL(targetURL);
|
||||||
|
|
||||||
|
con = (HttpURLConnection) goUrl.openConnection();
|
||||||
|
con.setRequestMethod("POST");
|
||||||
|
con.setRequestProperty("Content-Type", "application/json");
|
||||||
|
con.setRequestProperty("Authorization", authKey);
|
||||||
|
con.setRequestProperty("TOKEN", token);//TOKEN
|
||||||
|
con.setUseCaches(false);
|
||||||
|
con.setDoOutput(true);
|
||||||
|
con.setDoInput(true);
|
||||||
|
os = con.getOutputStream();
|
||||||
|
writer = new BufferedWriter(new OutputStreamWriter(os));
|
||||||
|
|
||||||
|
writer.write("");
|
||||||
|
os.write((jsonObj.toString()).getBytes("EUC-KR"));
|
||||||
|
writer.flush();
|
||||||
|
writer.close();
|
||||||
|
os.close();
|
||||||
|
con.connect();
|
||||||
|
|
||||||
|
//호출 결과 값
|
||||||
|
responseCode = con.getResponseCode();
|
||||||
|
responseMsg = con.getResponseMessage();
|
||||||
|
|
||||||
|
//정상 수신 했을경우 (응답코드:200)
|
||||||
|
if(responseCode == 200){
|
||||||
|
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
|
||||||
|
String inputLine = null;
|
||||||
|
StringBuffer response1 = new StringBuffer();
|
||||||
|
|
||||||
|
while((inputLine = in.readLine()) != null){
|
||||||
|
response1.append(inputLine);
|
||||||
|
}
|
||||||
|
|
||||||
|
in.close();
|
||||||
|
|
||||||
|
//응답 데이터 처리
|
||||||
|
String responseBody = response1.toString();
|
||||||
|
finalJObj = (JSONObject)JSONValue.parse(responseBody);
|
||||||
|
}
|
||||||
|
|
||||||
|
con.disconnect();
|
||||||
|
|
||||||
|
log.debug("Kiwoom 결제취소 jObj::: {}", finalJObj.toString());
|
||||||
|
|
||||||
|
pgApiLogReqVO.put("resParam", finalJObj.toString());
|
||||||
|
|
||||||
|
}catch(Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
|
||||||
|
log.debug("cancelKiwoomPay finally pgApiLogReqVO ::: {}", pgApiLogReqVO);
|
||||||
|
|
||||||
|
ordrLogService.insertSetleOrderPgLog(payVO, pgApiLogReqVO);
|
||||||
|
ordrLogService.insertBOPgApiLogReqRegist(pgApiLogReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, Object> result = new HashMap<>();
|
||||||
|
result.put("response", finalJObj.toString());
|
||||||
|
return result;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -839,8 +839,8 @@ public class BORtngudrefndService {
|
|||||||
|
|
||||||
} else { // 일반결제
|
} else { // 일반결제
|
||||||
|
|
||||||
// 토스페이
|
// 토스페이 || "naverpay".equals(setle.getPgCmpnyNm()) >> 네이버페이는 토스에서 분리해서 키움으로 이동
|
||||||
if ("tosspay".equals(setle.getPgCmpnyNm()) || "gcpay".equals(setle.getPgCmpnyNm()) || "toss".equals(setle.getPgCmpnyNm()) || "naverpay".equals(setle.getPgCmpnyNm()) || "kakaopay".equals(setle.getPgCmpnyNm())) {
|
if ("tosspay".equals(setle.getPgCmpnyNm()) || "gcpay".equals(setle.getPgCmpnyNm()) || "toss".equals(setle.getPgCmpnyNm()) || "kakaopay".equals(setle.getPgCmpnyNm())) {
|
||||||
log.debug("toss 취소 진입");
|
log.debug("toss 취소 진입");
|
||||||
BOPayVO payVO = new BOPayVO();
|
BOPayVO payVO = new BOPayVO();
|
||||||
payVO.setOrderId(ordrInnb); // 주문 고유번호
|
payVO.setOrderId(ordrInnb); // 주문 고유번호
|
||||||
@@ -1099,6 +1099,56 @@ public class BORtngudrefndService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// kiwoom
|
||||||
|
} else if ("kiwoom".equals(setle.getPgCmpnyNm()) || "naverpay".equals(setle.getPgCmpnyNm())) {
|
||||||
|
log.debug("kiwoom 취소 진입");
|
||||||
|
|
||||||
|
BOPayVO payVO = new BOPayVO();
|
||||||
|
payVO.setOrderId(ordrInnb); // 주문 고유번호
|
||||||
|
payVO.setSopmalCd(sopmalCd); // 쇼핑몰 코드
|
||||||
|
|
||||||
|
payVO.setMId(setle.getSetleMid()); // 결제 MID(상점키)
|
||||||
|
payVO.setSetleTyCd(setle.getSetleTyCd()); // 결제 유형 코드
|
||||||
|
payVO.setCancelReason(refundVO.getRefundResnCn()); // 취소사유
|
||||||
|
payVO.setTno(setle.getDelngNb()); // 거래번호
|
||||||
|
|
||||||
|
//부분 취소 처리 경우 승인금액보다 취소요청금액이 적으면 부분 취소 처리
|
||||||
|
payVO.setCancelAmount(String.valueOf(wonCancelAmt)); // 취소금액
|
||||||
|
|
||||||
|
if ("Y".equals(setle.getMemorSetleAt())) {
|
||||||
|
payVO.setMemorSetleAt("Y");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("kiwoom".equals(setle.getPgCmpnyNm())) {
|
||||||
|
payVO.setPayMethod("CARD");
|
||||||
|
} else if ("naverpay".equals(setle.getPgCmpnyNm())) {
|
||||||
|
payVO.setPayMethod("NAVERPAY");
|
||||||
|
}
|
||||||
|
|
||||||
|
log.info("kiwoom api 전달 파라미터 확인 : {}", payVO);
|
||||||
|
setleCancelResultMessage = payService.cancelKiwoomPay(payVO);
|
||||||
|
log.info("결제 취소 API 결과 확인 : {}", setleCancelResultMessage);
|
||||||
|
log.info("결제 취소 API 결과 확인 response : {}", setleCancelResultMessage.get("response"));
|
||||||
|
|
||||||
|
String jsonString = (String) setleCancelResultMessage.get("response");
|
||||||
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
responseMap = objectMapper.readValue(jsonString, Map.class);
|
||||||
|
log.debug("리스펀스 결과 : {}", responseMap);
|
||||||
|
log.info("리스펀스 결과 값 : {}", responseMap.get("RESULTCODE"));
|
||||||
|
|
||||||
|
if ("0000".equals(responseMap.get("RESULTCODE"))) {
|
||||||
|
// 0000 : 취소성공
|
||||||
|
log.debug("0000");
|
||||||
|
message.put("setleStatus", responseMap.get("RESULTCODE"));
|
||||||
|
message.put("setleMessage", responseMap.get("ERRORMESSAGE"));
|
||||||
|
} else {
|
||||||
|
log.debug("1111");
|
||||||
|
message.put("setleStatus", responseMap.get("RESULTCODE"));
|
||||||
|
message.put("setleMessage", responseMap.get("ERRORMESSAGE"));
|
||||||
|
logDtlCn = "잘못된 요청입니다. 관리자에게 문의하세요.";
|
||||||
|
throw new WnbtRestException("잘못된 요청입니다. 관리자에게 문의하세요.");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ import com.wb.domainserver.util.util.Util;
|
|||||||
import jakarta.servlet.http.Cookie;
|
import jakarta.servlet.http.Cookie;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.text.StringEscapeUtils;
|
||||||
import org.apache.logging.log4j.util.Base64Util;
|
import org.apache.logging.log4j.util.Base64Util;
|
||||||
import org.json.simple.JSONObject;
|
import org.json.simple.JSONObject;
|
||||||
import org.json.simple.parser.JSONParser;
|
import org.json.simple.parser.JSONParser;
|
||||||
@@ -75,6 +76,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
|
|||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.io.Reader;
|
import java.io.Reader;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -838,7 +840,7 @@ public class OrdrController {
|
|||||||
String pgCmpnyNm = setle.getPgCmpnyNm();
|
String pgCmpnyNm = setle.getPgCmpnyNm();
|
||||||
String setleTyCd = setle.getSetleTyCd();
|
String setleTyCd = setle.getSetleTyCd();
|
||||||
|
|
||||||
if ("kiwoom".equals(pgCmpnyNm)) {
|
if ("kiwoom".equals(pgCmpnyNm)||"naverpay".equals(pgCmpnyNm)) {
|
||||||
url = "sopmal/ordr/OrdrReqstKiwoomPayR";
|
url = "sopmal/ordr/OrdrReqstKiwoomPayR";
|
||||||
} else if ("gcpay".equals(pgCmpnyNm)) {
|
} else if ("gcpay".equals(pgCmpnyNm)) {
|
||||||
url = "sopmal/ordr/OrdrReqstGcpayPayR";
|
url = "sopmal/ordr/OrdrReqstGcpayPayR";
|
||||||
@@ -850,7 +852,7 @@ public class OrdrController {
|
|||||||
}
|
}
|
||||||
} else if ("toss".equals(pgCmpnyNm)) {
|
} else if ("toss".equals(pgCmpnyNm)) {
|
||||||
url = "sopmal/ordr/OrdrReqstTossPayR";
|
url = "sopmal/ordr/OrdrReqstTossPayR";
|
||||||
} else if ("tosspay".equals(pgCmpnyNm)||"naverpay".equals(pgCmpnyNm)||"kakaopay".equals(pgCmpnyNm)) {
|
} else if ("tosspay".equals(pgCmpnyNm)||"kakaopay".equals(pgCmpnyNm)) { //||"naverpay".equals(pgCmpnyNm) 키움으로 이동
|
||||||
url = "sopmal/ordr/OrdrReqstTosspayPayR";
|
url = "sopmal/ordr/OrdrReqstTosspayPayR";
|
||||||
} else if ("02".equals(setleTyCd)||"08".equals(setleTyCd)||"12".equals(setleTyCd)) { // 무통장, 마일리지, 충전형마일리지
|
} else if ("02".equals(setleTyCd)||"08".equals(setleTyCd)||"12".equals(setleTyCd)) { // 무통장, 마일리지, 충전형마일리지
|
||||||
url = "sopmal/ordr/OrdrReqstPayR";
|
url = "sopmal/ordr/OrdrReqstPayR";
|
||||||
@@ -1388,7 +1390,6 @@ public class OrdrController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 키움 결제 연계 전 getEnc 값 받아오기
|
* 키움 결제 연계 전 getEnc 값 받아오기
|
||||||
* @return PayKiwoomSucsC.jsp
|
|
||||||
* @author 이경숙
|
* @author 이경숙
|
||||||
*/
|
*/
|
||||||
@Policy(AuthPolicy.RESTRICTED)
|
@Policy(AuthPolicy.RESTRICTED)
|
||||||
@@ -1424,13 +1425,35 @@ public class OrdrController {
|
|||||||
|
|
||||||
log.info("insertKiwoomPay step5 ::: {}", message.get("KIWOOM_ENC"));
|
log.info("insertKiwoomPay step5 ::: {}", message.get("KIWOOM_ENC"));
|
||||||
|
|
||||||
//model.addAttribute("message", message);
|
|
||||||
//return "sopmal/ordr/PayKiwoomSucsC";
|
|
||||||
|
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 키움 결제 연계처리 - 사전 승인 후 결제요청 페이지 이동
|
||||||
|
* @return PayKiwoomSucsC.jsp
|
||||||
|
* @author 이경숙
|
||||||
|
*/
|
||||||
|
@Policy(AuthPolicy.RESTRICTED)
|
||||||
|
@RequestMapping(value="/kiwoomPayPreSuccss")
|
||||||
|
public String confirmKiwoom(HttpServletRequest request, ModelMap model) throws Exception {
|
||||||
|
|
||||||
|
return "sopmal/ordr/OrdrReqstKiwoomPreR";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 키움 결제 연계처리 - 결제창 취소버튼 클릭 시 페이지 이동
|
||||||
|
* @return PayKiwoomSucsC.jsp
|
||||||
|
* @author 이경숙
|
||||||
|
*/
|
||||||
|
@Policy(AuthPolicy.RESTRICTED)
|
||||||
|
@RequestMapping(value="/kiwoomPayCancelUrl")
|
||||||
|
public String cancelUrlKiwoom(HttpServletRequest request, ModelMap model) throws Exception {
|
||||||
|
|
||||||
|
return "sopmal/ordr/OrdrReqstKiwoomCnclR";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > 키움 결제 정보 등록
|
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > 키움 결제 정보 등록
|
||||||
* @param model
|
* @param model
|
||||||
@@ -1440,9 +1463,12 @@ public class OrdrController {
|
|||||||
@Policy(AuthPolicy.RESTRICTED)
|
@Policy(AuthPolicy.RESTRICTED)
|
||||||
@RequestMapping(value="/insertKiwoomSetle")
|
@RequestMapping(value="/insertKiwoomSetle")
|
||||||
public String insertKiwoomSetle(ModelMap model, HttpServletRequest request) {
|
public String insertKiwoomSetle(ModelMap model, HttpServletRequest request) {
|
||||||
|
|
||||||
|
log.info("insertKiwoomSetle controller start ::: ");
|
||||||
|
|
||||||
BOPayVO payVO = new BOPayVO();
|
BOPayVO payVO = new BOPayVO();
|
||||||
|
|
||||||
payVO.setOrderId(request.getParameter("orderId"));
|
payVO.setOrderId(request.getParameter("ordrInnb"));
|
||||||
payVO.setAmount(request.getParameter("setleAmt"));
|
payVO.setAmount(request.getParameter("setleAmt"));
|
||||||
payVO.setSopmalCd(request.getParameter("sopmalCd"));
|
payVO.setSopmalCd(request.getParameter("sopmalCd"));
|
||||||
payVO.setMbrInnb(request.getParameter("mbrInnb"));
|
payVO.setMbrInnb(request.getParameter("mbrInnb"));
|
||||||
@@ -1450,9 +1476,15 @@ public class OrdrController {
|
|||||||
payVO.setSesionId(request.getParameter("sesionId"));
|
payVO.setSesionId(request.getParameter("sesionId"));
|
||||||
payVO.setPgCmpnyNm(request.getParameter("pgCmpnyNm"));
|
payVO.setPgCmpnyNm(request.getParameter("pgCmpnyNm"));
|
||||||
payVO.setSetleTyCd(request.getParameter("setleTyCd"));
|
payVO.setSetleTyCd(request.getParameter("setleTyCd"));
|
||||||
payVO.setSetlerNm(request.getParameter("ordrrNm"));
|
|
||||||
|
|
||||||
log.info("insertKiwoomSetle controller payVO ::: {}", payVO);
|
String ordrrNm = request.getParameter("ordrrNm");
|
||||||
|
try {
|
||||||
|
payVO.setSetlerNm(new String(Base64.getDecoder().decode(ordrrNm), "UTF-8"));
|
||||||
|
}catch(Exception e){
|
||||||
|
log.debug("throws UnsupportedEncodingException:::::");
|
||||||
|
}
|
||||||
|
|
||||||
|
log.info("insertKiwoomSetle controller payVO 3 ::: {}", payVO);
|
||||||
|
|
||||||
String agentId = "";
|
String agentId = "";
|
||||||
String jSesionId = "";
|
String jSesionId = "";
|
||||||
@@ -1519,11 +1551,6 @@ public class OrdrController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model.addAttribute("data", content);
|
model.addAttribute("data", content);
|
||||||
// responseHandler.handleResponse(
|
|
||||||
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/insertBOTosspaySetle", payVO),
|
|
||||||
// model,
|
|
||||||
// "data"
|
|
||||||
// );
|
|
||||||
model.addAttribute("paramVO", payVO);
|
model.addAttribute("paramVO", payVO);
|
||||||
|
|
||||||
return "sopmal/ordr/OrdrRspnsKiwoomPayR";
|
return "sopmal/ordr/OrdrRspnsKiwoomPayR";
|
||||||
|
|||||||
@@ -644,7 +644,7 @@ public class PayController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Policy(AuthPolicy.RESTRICTED)
|
@Policy(AuthPolicy.RESTRICTED)
|
||||||
@RequestMapping(value="/selectKiwoomSample2")
|
@RequestMapping(value="/selectKiwoomApiSample")
|
||||||
public String selectKiwoonPay2(ModelMap model) throws Exception {
|
public String selectKiwoonPay2(ModelMap model) throws Exception {
|
||||||
log.debug("selectKiwoonPay = {}");
|
log.debug("selectKiwoonPay = {}");
|
||||||
return "sopmal/ordr/PayKiwoomPay2C";
|
return "sopmal/ordr/PayKiwoomPay2C";
|
||||||
@@ -710,9 +710,9 @@ public class PayController {
|
|||||||
*/
|
*/
|
||||||
@Policy(AuthPolicy.RESTRICTED)
|
@Policy(AuthPolicy.RESTRICTED)
|
||||||
@RequestMapping(value="/kiwoomPaySuccss")
|
@RequestMapping(value="/kiwoomPaySuccss")
|
||||||
public String confirmPaymentkiwoom(HttpServletRequest request, ModelMap model) throws Exception {
|
public String confirmPaymentKiwoom(HttpServletRequest request, ModelMap model) throws Exception {
|
||||||
|
|
||||||
System.out.println("콜백 수신 ::: "+request.getQueryString());
|
System.out.println("성공결과페이지 ::: "+request.getQueryString());
|
||||||
|
|
||||||
BOPayVO payVO = new BOPayVO();
|
BOPayVO payVO = new BOPayVO();
|
||||||
|
|
||||||
@@ -722,15 +722,6 @@ public class PayController {
|
|||||||
payVO.setPayMethod(request.getParameter("PAYMETHOD"));
|
payVO.setPayMethod(request.getParameter("PAYMETHOD"));
|
||||||
|
|
||||||
Map<String, Object> message = new HashMap<>();
|
Map<String, Object> message = new HashMap<>();
|
||||||
/*String sopmalCd = payVO.getSopmalCd();
|
|
||||||
try {
|
|
||||||
message = service.insertKcpPay(payVO);
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
message = new HashMap<>() {{
|
|
||||||
put("response", "결제를 실패하였습니다.\n관리자에게 문의하시기 바랍니다.");
|
|
||||||
}};
|
|
||||||
}*/
|
|
||||||
|
|
||||||
JSONObject jsonObject = new JSONObject();
|
JSONObject jsonObject = new JSONObject();
|
||||||
jsonObject.put("code", payVO.getCode());
|
jsonObject.put("code", payVO.getCode());
|
||||||
@@ -740,11 +731,66 @@ public class PayController {
|
|||||||
message.put("response",jsonObject.toString());
|
message.put("response",jsonObject.toString());
|
||||||
|
|
||||||
model.addAttribute("message", message);
|
model.addAttribute("message", message);
|
||||||
// responseHandler.handleResponse(
|
|
||||||
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/pay/kcpPayProc", payVO),
|
return "sopmal/ordr/PayKiwoomSucsC";
|
||||||
// model,
|
}
|
||||||
// "message"
|
|
||||||
// );
|
|
||||||
|
/**
|
||||||
|
* 키움 결제취소 화면
|
||||||
|
* @return PayKiwoomModC.jsp
|
||||||
|
* @author 이경숙
|
||||||
|
*/
|
||||||
|
@Policy(AuthPolicy.RESTRICTED)
|
||||||
|
@RequestMapping(value="/selectKiwoomCancelSample")
|
||||||
|
public String selectKiwoomCancel(ModelMap model) throws Exception {
|
||||||
|
log.debug("selectKiwoomCancel = {}");
|
||||||
|
return "sopmal/ordr/PayKiwoomModC";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 키움 결제 연계처리 - 결체취소결과페이지
|
||||||
|
* @return PayKiwoomSucsC.jsp
|
||||||
|
* @author 이경숙
|
||||||
|
*/
|
||||||
|
@Policy(AuthPolicy.RESTRICTED)
|
||||||
|
@RequestMapping(value="/kiwoomPayCancel")
|
||||||
|
public String confirmCancelKiwoom(HttpServletRequest request, ModelMap model) throws Exception {
|
||||||
|
|
||||||
|
System.out.println("취소데이터 수신 ::: "+request.getQueryString());
|
||||||
|
|
||||||
|
Map<String, Object> setleCancelResultMessage = new HashMap<>();
|
||||||
|
Map<String, Object> responseMap = new HashMap<>();
|
||||||
|
|
||||||
|
BOPayVO payVO = new BOPayVO();
|
||||||
|
|
||||||
|
payVO.setSopmalCd("SK");
|
||||||
|
payVO.setOrderId(request.getParameter("ORDERNO"));
|
||||||
|
payVO.setCancelAmount(request.getParameter("AMOUNT"));
|
||||||
|
payVO.setPayMethod(request.getParameter("PAYMETHOD"));
|
||||||
|
payVO.setTno(request.getParameter("TRXID"));
|
||||||
|
payVO.setCancelReason(request.getParameter("CANCELREASON"));
|
||||||
|
payVO.setSetleTyCd("01");
|
||||||
|
payVO.setPgCmpnyNm("kiwoom");
|
||||||
|
|
||||||
|
log.debug("confirmCancelKiwoom step1 payVO :::> {}", payVO);
|
||||||
|
|
||||||
|
Map<String, Object> message = new HashMap<>();
|
||||||
|
|
||||||
|
setleCancelResultMessage = service.cancelKiwoomPay(payVO);
|
||||||
|
|
||||||
|
String responseStr = (String) setleCancelResultMessage.get("response");
|
||||||
|
|
||||||
|
JSONParser parser = new JSONParser();
|
||||||
|
JSONObject jsonObject = (JSONObject) parser.parse(responseStr);
|
||||||
|
jsonObject.put("orderId", payVO.getOrderId());
|
||||||
|
jsonObject.put("amount", payVO.getAmount());
|
||||||
|
jsonObject.put("payMethod", payVO.getPayMethod());
|
||||||
|
jsonObject.put("code", jsonObject.get("RESULTCODE"));
|
||||||
|
message.put("response",jsonObject.toString());
|
||||||
|
|
||||||
|
model.addAttribute("message", message);
|
||||||
|
|
||||||
return "sopmal/ordr/PayKiwoomSucsC";
|
return "sopmal/ordr/PayKiwoomSucsC";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5276,7 +5276,7 @@
|
|||||||
WHEN #{pgCmpnyNm} = 'toss' OR #{pgCmpnyNm} = 'tosspay' THEN TOSS_MID -- 토스
|
WHEN #{pgCmpnyNm} = 'toss' OR #{pgCmpnyNm} = 'tosspay' THEN TOSS_MID -- 토스
|
||||||
WHEN #{pgCmpnyNm} = 'naverpay' OR #{pgCmpnyNm} = 'kakaopay' THEN EASYPAY_MID -- 이지페이
|
WHEN #{pgCmpnyNm} = 'naverpay' OR #{pgCmpnyNm} = 'kakaopay' THEN EASYPAY_MID -- 이지페이
|
||||||
WHEN #{pgCmpnyNm} = 'gcpay' THEN BPAY_MID -- 브랜드페이
|
WHEN #{pgCmpnyNm} = 'gcpay' THEN BPAY_MID -- 브랜드페이
|
||||||
WHEN #{pgCmpnyNm} = 'kcp' THEN KCP_MID -- kcp
|
WHEN #{pgCmpnyNm} = 'kcp' OR #{pgCmpnyNm} = 'kiwoom' THEN KCP_MID -- kcp, kiwoom
|
||||||
END
|
END
|
||||||
END, '') AS SETLE_MID
|
END, '') AS SETLE_MID
|
||||||
FROM GC_PAY_LINK
|
FROM GC_PAY_LINK
|
||||||
@@ -5795,13 +5795,12 @@
|
|||||||
AND O.SUBSVC_AT = 'Y'
|
AND O.SUBSVC_AT = 'Y'
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<select id="selectKiwoomPgApiLog"
|
<select id="selectKiwoomPgApiLog"
|
||||||
parameterType="com.wb.domainserver.domain.gcone.ordr.pay.vo.BOPayVO"
|
parameterType="com.wb.domainserver.domain.gcone.ordr.pay.vo.BOPayVO"
|
||||||
resultType="dataMap">
|
resultType="dataMap">
|
||||||
SELECT GOPAL.RSLT_PARAM FROM GC_ORDER_PG_API_LOG GOPAL
|
SELECT GOPAL.RSLT_PARAM FROM GC_ORDER_PG_API_LOG GOPAL
|
||||||
WHERE GOPAL.SOPMAL_CD = #{sopmalCd}
|
WHERE GOPAL.SOPMAL_CD = #{sopmalCd}
|
||||||
AND GOPAL.ORDR_INNB = #{ordrInnb}
|
AND GOPAL.ORDR_INNB = #{orderId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,12 @@
|
|||||||
------- -------- ---------------------------
|
------- -------- ---------------------------
|
||||||
since : 2024.05.28 임수영 최초 생성
|
since : 2024.05.28 임수영 최초 생성
|
||||||
--%>
|
--%>
|
||||||
|
|
||||||
|
<%
|
||||||
|
String serverName = request.getServerName();
|
||||||
|
String sysEnv = "live";
|
||||||
|
if(serverName.contains("dev") || serverName.contains("loc")){sysEnv = "dev";};
|
||||||
|
%>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="ko">
|
<html lang="ko">
|
||||||
|
|
||||||
@@ -350,6 +356,21 @@
|
|||||||
|
|
||||||
let paycoUrl = "https://bill.payco.com/seller/receipt/GB_UZRSXP/"+ordrInnb+"/"+pgInnb+"" //페이코(as_is)
|
let paycoUrl = "https://bill.payco.com/seller/receipt/GB_UZRSXP/"+ordrInnb+"/"+pgInnb+"" //페이코(as_is)
|
||||||
|
|
||||||
|
/* kiwoom url , kiwoom naverpay
|
||||||
|
* DAOUTRX : 다우거래번호
|
||||||
|
* STATUS : 11 = 승인전표 / 12 = 취소전표 / 16 = 부분취소 / A = 자동상태
|
||||||
|
*/
|
||||||
|
const env = "<%=sysEnv%>";
|
||||||
|
let kiwoomCardUrl = "";
|
||||||
|
let kiwoomNaverUrl = "";
|
||||||
|
if(env == "dev"){ //개발
|
||||||
|
kiwoomCardUrl = "https://agenttest.kiwoompay.co.kr/common/PayInfoPrintDirectCard.jsp?DAOUTRX="+pgInnb+"&STATUS=11";
|
||||||
|
kiwoomNaverUrl = "https://agenttest.kiwoompay.co.kr/common/PayInfoPrintNaverPay.jsp?DAOUTRX="+pgInnb+"&STATUS=11";
|
||||||
|
}else{
|
||||||
|
kiwoomCardUrl = "https://agent.kiwoompay.co.kr/common/PayInfoPrintDirectCard.jsp?DAOUTRX="+pgInnb+"&STATUS=11";
|
||||||
|
kiwoomNaverUrl = "https://agent.kiwoompay.co.kr/common/PayInfoPrintNaverPay.jsp?DAOUTRX="+pgInnb+"&STATUS=11";
|
||||||
|
}
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "GET",
|
type: "GET",
|
||||||
url: "/mngr/ordr/selngpruf/selectSopmalSetleSetup",
|
url: "/mngr/ordr/selngpruf/selectSopmalSetleSetup",
|
||||||
@@ -364,7 +385,11 @@
|
|||||||
// toss url
|
// toss url
|
||||||
tossCashUrl = "https://dashboard.tosspayments.com/receipt/mids/" + mid + "/orders/" + cashOrdrInnb + "/cash-receipt?ref=email" // 현금
|
tossCashUrl = "https://dashboard.tosspayments.com/receipt/mids/" + mid + "/orders/" + cashOrdrInnb + "/cash-receipt?ref=email" // 현금
|
||||||
|
|
||||||
if (pgCmpnyNm == 'toss') {
|
if(pgCmpnyNm == "kiwoom") {
|
||||||
|
if(setleTyCd=='01'){ url = kiwoomCardUrl;}
|
||||||
|
} else if(pgCmpnyNm == "naverpay") {
|
||||||
|
if(setleTyCd=='01'){ url = kiwoomNaverUrl;}
|
||||||
|
} else if (pgCmpnyNm == 'toss') {
|
||||||
if (reqstDvCd == '02' || reqstDvCd == "03") { // 현금영수증
|
if (reqstDvCd == '02' || reqstDvCd == "03") { // 현금영수증
|
||||||
if (setleTyCd == '03' || setleTyCd == '04' || setleTyCd == '05') { // 계좌이체, 가상계좌
|
if (setleTyCd == '03' || setleTyCd == '04' || setleTyCd == '05') { // 계좌이체, 가상계좌
|
||||||
url = tossAcntUrl;
|
url = tossAcntUrl;
|
||||||
|
|||||||
@@ -17,6 +17,12 @@
|
|||||||
------- -------- ---------------------------
|
------- -------- ---------------------------
|
||||||
2024-04-11 김혜인 최초 생성
|
2024-04-11 김혜인 최초 생성
|
||||||
--%>
|
--%>
|
||||||
|
|
||||||
|
<%
|
||||||
|
String serverName = request.getServerName();
|
||||||
|
String sysEnv = "live";
|
||||||
|
if(serverName.contains("dev") || serverName.contains("loc")){sysEnv = "dev";};
|
||||||
|
%>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="ko">
|
<html lang="ko">
|
||||||
<head>
|
<head>
|
||||||
@@ -927,8 +933,6 @@
|
|||||||
boUrl = '<c:url value="/sopmal/mpage/ordr/updateCashReceiptInfo"/>';
|
boUrl = '<c:url value="/sopmal/mpage/ordr/updateCashReceiptInfo"/>';
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("boUrl:::",boUrl);
|
|
||||||
|
|
||||||
if (confirm('<spring:message code="confirm.common.apply"/>')) {
|
if (confirm('<spring:message code="confirm.common.apply"/>')) {
|
||||||
const salesData = $("#sales").serialize();
|
const salesData = $("#sales").serialize();
|
||||||
$.ajax({
|
$.ajax({
|
||||||
@@ -965,16 +969,10 @@
|
|||||||
*/
|
*/
|
||||||
const fn_ctrl_refund_resn_cd = function() {
|
const fn_ctrl_refund_resn_cd = function() {
|
||||||
|
|
||||||
console.log("셀렉트 박스 변경 ");
|
|
||||||
let cdDv = $('#returnResnCd').val();
|
let cdDv = $('#returnResnCd').val();
|
||||||
|
|
||||||
let selectedOption = $('#returnResnCd option:selected');
|
let selectedOption = $('#returnResnCd option:selected');
|
||||||
let cdDvData = selectedOption.data('cddv');
|
let cdDvData = selectedOption.data('cddv');
|
||||||
|
|
||||||
console.log("선택된 값 (value): " + cdDv);
|
|
||||||
console.log("선택된 data-cddv 값: " + cdDvData);
|
|
||||||
|
|
||||||
|
|
||||||
if (cdDvData === '01') {
|
if (cdDvData === '01') {
|
||||||
$('input[name="returnDlvyRspnsblCd"][value="01"]').click();
|
$('input[name="returnDlvyRspnsblCd"][value="01"]').click();
|
||||||
$('.returnDlvyAcntnbArea').show();
|
$('.returnDlvyAcntnbArea').show();
|
||||||
@@ -1015,13 +1013,32 @@
|
|||||||
const tossCardUrl = "https://dashboard.tosspayments.com/receipt/redirection?transactionId="+pgInnb+"&ref=PX"; //카드 / 간편결제(01)
|
const tossCardUrl = "https://dashboard.tosspayments.com/receipt/redirection?transactionId="+pgInnb+"&ref=PX"; //카드 / 간편결제(01)
|
||||||
const tossAcntUrl = "https://dashboard.tosspayments.com/receipt/payment-detail/bank-transfer?transactionId="+pgInnb+"&ref=PX"; //계좌이체(03), 가상계좌(04,05)
|
const tossAcntUrl = "https://dashboard.tosspayments.com/receipt/payment-detail/bank-transfer?transactionId="+pgInnb+"&ref=PX"; //계좌이체(03), 가상계좌(04,05)
|
||||||
|
|
||||||
if(pgCmpnyNm == "kcp") {
|
/* kiwoom url , kiwoom naverpay
|
||||||
|
* DAOUTRX : 다우거래번호
|
||||||
|
* STATUS : 11 = 승인전표 / 12 = 취소전표 / 16 = 부분취소 / A = 자동상태
|
||||||
|
*/
|
||||||
|
const env = "<%=sysEnv%>";
|
||||||
|
let kiwoomCardUrl = "";
|
||||||
|
let kiwoomNaverUrl = "";
|
||||||
|
if(env == "dev"){ //개발
|
||||||
|
kiwoomCardUrl = "https://agenttest.kiwoompay.co.kr/common/PayInfoPrintDirectCard.jsp?DAOUTRX="+pgInnb+"&STATUS=11";
|
||||||
|
kiwoomNaverUrl = "https://agenttest.kiwoompay.co.kr/common/PayInfoPrintNaverPay.jsp?DAOUTRX="+pgInnb+"&STATUS=11";
|
||||||
|
}else{
|
||||||
|
kiwoomCardUrl = "https://agent.kiwoompay.co.kr/common/PayInfoPrintDirectCard.jsp?DAOUTRX="+pgInnb+"&STATUS=11";
|
||||||
|
kiwoomNaverUrl = "https://agent.kiwoompay.co.kr/common/PayInfoPrintNaverPay.jsp?DAOUTRX="+pgInnb+"&STATUS=11";
|
||||||
|
}
|
||||||
|
|
||||||
|
if(pgCmpnyNm == "kiwoom") {
|
||||||
|
if(setleTyCd=='01'){ url = kiwoomCardUrl;}
|
||||||
|
} else if(pgCmpnyNm == "naverpay") {
|
||||||
|
if(setleTyCd=='01'){ url = kiwoomNaverUrl;}
|
||||||
|
} else if(pgCmpnyNm == "kcp") {
|
||||||
|
|
||||||
if(setleTyCd=='01'){ url = kcpCardUrl;}
|
if(setleTyCd=='01'){ url = kcpCardUrl;}
|
||||||
if(setleTyCd=='03'){ url = kcpAcntUrl;}
|
if(setleTyCd=='03'){ url = kcpAcntUrl;}
|
||||||
if(setleTyCd=='04' || setleTyCd=='05'){ url = kcpVcntUrl;}
|
if(setleTyCd=='04' || setleTyCd=='05'){ url = kcpVcntUrl;}
|
||||||
|
|
||||||
}else { //toss, tosspay, gcpay, kakaopay, naverpay 추가
|
} else { //toss, tosspay, gcpay, kakaopay, naverpay 추가
|
||||||
if(setleTyCd=='01'){ url = tossCardUrl;}
|
if(setleTyCd=='01'){ url = tossCardUrl;}
|
||||||
if(setleTyCd=='03' || setleTyCd=='04' || setleTyCd=='05'){ url = tossAcntUrl;}
|
if(setleTyCd=='03' || setleTyCd=='04' || setleTyCd=='05'){ url = tossAcntUrl;}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,12 @@
|
|||||||
------- -------- ---------------------------
|
------- -------- ---------------------------
|
||||||
2026-02-06 이대환 최초 생성
|
2026-02-06 이대환 최초 생성
|
||||||
--%>
|
--%>
|
||||||
|
|
||||||
|
<%
|
||||||
|
String serverName = request.getServerName();
|
||||||
|
String sysEnv = "live";
|
||||||
|
if(serverName.contains("dev") || serverName.contains("loc")){sysEnv = "dev";};
|
||||||
|
%>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="ko">
|
<html lang="ko">
|
||||||
<head>
|
<head>
|
||||||
@@ -921,8 +927,6 @@
|
|||||||
boUrl = '<c:url value="/sopmal/mpage/ordr/updateCashReceiptInfo"/>';
|
boUrl = '<c:url value="/sopmal/mpage/ordr/updateCashReceiptInfo"/>';
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("boUrl:::",boUrl);
|
|
||||||
|
|
||||||
if (confirm('<spring:message code="confirm.common.apply"/>')) {
|
if (confirm('<spring:message code="confirm.common.apply"/>')) {
|
||||||
const salesData = $("#sales").serialize();
|
const salesData = $("#sales").serialize();
|
||||||
$.ajax({
|
$.ajax({
|
||||||
@@ -959,16 +963,10 @@
|
|||||||
*/
|
*/
|
||||||
const fn_ctrl_refund_resn_cd = function() {
|
const fn_ctrl_refund_resn_cd = function() {
|
||||||
|
|
||||||
console.log("셀렉트 박스 변경 ");
|
|
||||||
let cdDv = $('#returnResnCd').val();
|
let cdDv = $('#returnResnCd').val();
|
||||||
|
|
||||||
let selectedOption = $('#returnResnCd option:selected');
|
let selectedOption = $('#returnResnCd option:selected');
|
||||||
let cdDvData = selectedOption.data('cddv');
|
let cdDvData = selectedOption.data('cddv');
|
||||||
|
|
||||||
console.log("선택된 값 (value): " + cdDv);
|
|
||||||
console.log("선택된 data-cddv 값: " + cdDvData);
|
|
||||||
|
|
||||||
|
|
||||||
if (cdDvData === '01') {
|
if (cdDvData === '01') {
|
||||||
$('input[name="returnDlvyRspnsblCd"][value="01"]').click();
|
$('input[name="returnDlvyRspnsblCd"][value="01"]').click();
|
||||||
$('.returnDlvyAcntnbArea').show();
|
$('.returnDlvyAcntnbArea').show();
|
||||||
@@ -1009,7 +1007,26 @@
|
|||||||
const tossCardUrl = "https://dashboard.tosspayments.com/receipt/redirection?transactionId="+pgInnb+"&ref=PX"; //카드 / 간편결제(01)
|
const tossCardUrl = "https://dashboard.tosspayments.com/receipt/redirection?transactionId="+pgInnb+"&ref=PX"; //카드 / 간편결제(01)
|
||||||
const tossAcntUrl = "https://dashboard.tosspayments.com/receipt/payment-detail/bank-transfer?transactionId="+pgInnb+"&ref=PX"; //계좌이체(03), 가상계좌(04,05)
|
const tossAcntUrl = "https://dashboard.tosspayments.com/receipt/payment-detail/bank-transfer?transactionId="+pgInnb+"&ref=PX"; //계좌이체(03), 가상계좌(04,05)
|
||||||
|
|
||||||
if(pgCmpnyNm == "kcp") {
|
/* kiwoom url , kiwoom naverpay
|
||||||
|
* DAOUTRX : 다우거래번호
|
||||||
|
* STATUS : 11 = 승인전표 / 12 = 취소전표 / 16 = 부분취소 / A = 자동상태
|
||||||
|
*/
|
||||||
|
const env = "<%=sysEnv%>";
|
||||||
|
let kiwoomCardUrl = "";
|
||||||
|
let kiwoomNaverUrl = "";
|
||||||
|
if(env == "dev"){ //개발
|
||||||
|
kiwoomCardUrl = "https://agenttest.kiwoompay.co.kr/common/PayInfoPrintDirectCard.jsp?DAOUTRX="+pgInnb+"&STATUS=11";
|
||||||
|
kiwoomNaverUrl = "https://agenttest.kiwoompay.co.kr/common/PayInfoPrintNaverPay.jsp?DAOUTRX="+pgInnb+"&STATUS=11";
|
||||||
|
}else{
|
||||||
|
kiwoomCardUrl = "https://agent.kiwoompay.co.kr/common/PayInfoPrintDirectCard.jsp?DAOUTRX="+pgInnb+"&STATUS=11";
|
||||||
|
kiwoomNaverUrl = "https://agent.kiwoompay.co.kr/common/PayInfoPrintNaverPay.jsp?DAOUTRX="+pgInnb+"&STATUS=11";
|
||||||
|
}
|
||||||
|
|
||||||
|
if(pgCmpnyNm == "kiwoom") {
|
||||||
|
if(setleTyCd=='01'){ url = kiwoomCardUrl;}
|
||||||
|
} else if(pgCmpnyNm == "naverpay") {
|
||||||
|
if(setleTyCd=='01'){ url = kiwoomNaverUrl;}
|
||||||
|
} else if(pgCmpnyNm == "kcp") {
|
||||||
|
|
||||||
if(setleTyCd=='01'){ url = kcpCardUrl;}
|
if(setleTyCd=='01'){ url = kcpCardUrl;}
|
||||||
if(setleTyCd=='03'){ url = kcpAcntUrl;}
|
if(setleTyCd=='03'){ url = kcpAcntUrl;}
|
||||||
|
|||||||
@@ -590,7 +590,7 @@
|
|||||||
//$('#setleSetupTyCd').val() === '01' ? $('#pg04').click() : $('#pg03').click();
|
//$('#setleSetupTyCd').val() === '01' ? $('#pg04').click() : $('#pg03').click();
|
||||||
if($('#setleSetupTyCd').val() === '01'){$('#pg04').click();}
|
if($('#setleSetupTyCd').val() === '01'){$('#pg04').click();}
|
||||||
else if($('#setleSetupTyCd').val() === '02'){$('#pg03').click();}
|
else if($('#setleSetupTyCd').val() === '02'){$('#pg03').click();}
|
||||||
else if($('#setleSetupTyCd').val() === '03'){$('#pg05').click();}
|
else if($('#setleSetupTyCd').val() === '03'){$('#pg06').click();}
|
||||||
|
|
||||||
$('.order-method-normal__btn').removeClass('active');
|
$('.order-method-normal__btn').removeClass('active');
|
||||||
$(this).addClass('active');
|
$(this).addClass('active');
|
||||||
@@ -3431,38 +3431,6 @@
|
|||||||
fn_get_setle_amt();
|
fn_get_setle_amt();
|
||||||
|
|
||||||
}
|
}
|
||||||
</script>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
/****************************************************************/
|
|
||||||
/* m_Completepayment 설명 */
|
|
||||||
/****************************************************************/
|
|
||||||
/* 인증완료시 재귀 함수 */
|
|
||||||
/* 해당 함수명은 절대 변경하면 안됩니다. */
|
|
||||||
/* 해당 함수의 위치는 kcp_spay_hub.js 보다먼저 선언되어여 합니다. */
|
|
||||||
/* Web 방식의 경우 리턴 값이 form 으로 넘어옴 */
|
|
||||||
/****************************************************************/
|
|
||||||
function m_Completepayment(FormOrJson, closeEvent) {
|
|
||||||
var frm = document.order_info;
|
|
||||||
|
|
||||||
/********************************************************************/
|
|
||||||
/* FormOrJson은 가맹점 임의 활용 금지 */
|
|
||||||
/* frm 값에 FormOrJson 값이 설정 된 frm 값으로 활용 하셔야 됩니다. */
|
|
||||||
/********************************************************************/
|
|
||||||
GetField(frm, FormOrJson);
|
|
||||||
|
|
||||||
if (frm.res_cd.value == "0000"){
|
|
||||||
/* 결제인증 완료 후 결제승인 요청을 위한 비즈니스 로직 구현 */
|
|
||||||
frm.submit();
|
|
||||||
} else {
|
|
||||||
/* 결제인증 실패에 대한 처리 */
|
|
||||||
alert( "[" + frm.res_cd.value + "] " + frm.res_msg.value );
|
|
||||||
|
|
||||||
location.reload();
|
|
||||||
|
|
||||||
closeEvent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 약관 상세 보기, 마케팅동의여부 모달 데이터 정제*/
|
/* 약관 상세 보기, 마케팅동의여부 모달 데이터 정제*/
|
||||||
const fn_select_clause = (stplatDvCd,agreeAt) => {
|
const fn_select_clause = (stplatDvCd,agreeAt) => {
|
||||||
@@ -3525,6 +3493,38 @@
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/****************************************************************/
|
||||||
|
/* m_Completepayment 설명 */
|
||||||
|
/****************************************************************/
|
||||||
|
/* 인증완료시 재귀 함수 */
|
||||||
|
/* 해당 함수명은 절대 변경하면 안됩니다. */
|
||||||
|
/* 해당 함수의 위치는 kcp_spay_hub.js 보다먼저 선언되어여 합니다. */
|
||||||
|
/* Web 방식의 경우 리턴 값이 form 으로 넘어옴 */
|
||||||
|
/****************************************************************/
|
||||||
|
function m_Completepayment(FormOrJson, closeEvent) {
|
||||||
|
var frm = document.order_info;
|
||||||
|
|
||||||
|
/********************************************************************/
|
||||||
|
/* FormOrJson은 가맹점 임의 활용 금지 */
|
||||||
|
/* frm 값에 FormOrJson 값이 설정 된 frm 값으로 활용 하셔야 됩니다. */
|
||||||
|
/********************************************************************/
|
||||||
|
GetField(frm, FormOrJson);
|
||||||
|
|
||||||
|
if (frm.res_cd.value == "0000"){
|
||||||
|
/* 결제인증 완료 후 결제승인 요청을 위한 비즈니스 로직 구현 */
|
||||||
|
frm.submit();
|
||||||
|
} else {
|
||||||
|
/* 결제인증 실패에 대한 처리 */
|
||||||
|
alert( "[" + frm.res_cd.value + "] " + frm.res_msg.value );
|
||||||
|
|
||||||
|
location.reload();
|
||||||
|
|
||||||
|
closeEvent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${data.payInfo.kcpMid eq 'T0007'}">
|
<c:when test="${data.payInfo.kcpMid eq 'T0007'}">
|
||||||
<script type="text/javascript" src="https://testspay.kcp.co.kr/plugin/kcp_spay_hub.js"></script>
|
<script type="text/javascript" src="https://testspay.kcp.co.kr/plugin/kcp_spay_hub.js"></script>
|
||||||
@@ -3553,7 +3553,8 @@
|
|||||||
|
|
||||||
function pay(method, requestJson, pgNm) {
|
function pay(method, requestJson, pgNm) {
|
||||||
|
|
||||||
if(pgNm === "naverpay"||pgNm === "kakaopay")
|
//if(pgNm === "naverpay"||pgNm === "kakaopay")
|
||||||
|
if(pgNm === "kakaopay")
|
||||||
tossPayments = TossPayments("${data.payInfo.easypayClntKey}");
|
tossPayments = TossPayments("${data.payInfo.easypayClntKey}");
|
||||||
|
|
||||||
tossPayments.requestPayment(method, requestJson)
|
tossPayments.requestPayment(method, requestJson)
|
||||||
@@ -3570,78 +3571,11 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
var pf;
|
function kiwoom_Completepayment() {
|
||||||
function kiwoomPay() {
|
var frm = document.order_info;
|
||||||
|
const encoded = btoa(unescape(encodeURIComponent(frm.ordrrNm.value)));
|
||||||
console.log("kiwoomPay script start :::::");
|
frm.ordrrNm.value = encoded;
|
||||||
|
frm.submit();
|
||||||
pf = document.payForm;
|
|
||||||
|
|
||||||
// 입력값 가져오기
|
|
||||||
var CPID = pf.CPID.value;
|
|
||||||
var PAYMETHOD = pf.PAYMETHOD.value;
|
|
||||||
var ORDERNO = pf.ORDERNO.value;
|
|
||||||
var TYPE = pf.TYPE.value;
|
|
||||||
var AMOUNT = pf.AMOUNT.value;
|
|
||||||
|
|
||||||
const url = '<c:url value="/sopmal/pay/kiwoomPayGetEnc"/>';
|
|
||||||
|
|
||||||
// AJAX로 kiwoom_ENC 값 요청
|
|
||||||
$.ajax({
|
|
||||||
url : url,
|
|
||||||
type : "POST",
|
|
||||||
dataType : "json",
|
|
||||||
data : {
|
|
||||||
CPID : CPID,
|
|
||||||
PAYMETHOD : PAYMETHOD,
|
|
||||||
ORDERNO : ORDERNO,
|
|
||||||
TYPE : TYPE,
|
|
||||||
AMOUNT : AMOUNT
|
|
||||||
},
|
|
||||||
success : function(res) {
|
|
||||||
|
|
||||||
console.log("response :::::",res);
|
|
||||||
console.log("response KIWOOM_ENC :::::",JSON.parse(res.response).KIWOOM_ENC);
|
|
||||||
|
|
||||||
var enc = JSON.parse(res.response).KIWOOM_ENC;
|
|
||||||
|
|
||||||
if (enc) {
|
|
||||||
// kiwoom_ENC 값 입력
|
|
||||||
pf.KIWOOM_ENC.value = enc;
|
|
||||||
|
|
||||||
console.log("response enc :::::",enc);
|
|
||||||
|
|
||||||
// 결제창 URL 설정
|
|
||||||
var PayServer = pf.SERVER.value;
|
|
||||||
var PayType = pf.TYPE.value;
|
|
||||||
var fileName = "";
|
|
||||||
console.log("response PayServer :::::", PayServer);
|
|
||||||
console.log("response PayType :::::", PayType);
|
|
||||||
if (PayServer === "DEV") {
|
|
||||||
fileName = "https://apitest.kiwoompay.co.kr/pay/linkEnc";
|
|
||||||
} else if (PayServer === "LIVE") {
|
|
||||||
fileName = "https://api.kiwoompay.co.kr/pay/linkEnc";
|
|
||||||
}
|
|
||||||
console.log("response fileName :::::", fileName);
|
|
||||||
if (PayType === "P") {
|
|
||||||
var KIWOOMPAY = window.open("", "KIWOOMPAY", "width=468,height=750");
|
|
||||||
pf.target = "KIWOOMPAY";
|
|
||||||
} else if (PayType === "M" || PayType === "W") {
|
|
||||||
pf.target = "_self";
|
|
||||||
}
|
|
||||||
|
|
||||||
pf.action = fileName;
|
|
||||||
pf.method = "post";
|
|
||||||
pf.submit();
|
|
||||||
} else {
|
|
||||||
alert("결제 정보를 가져오지 못했습니다.");
|
|
||||||
}
|
|
||||||
},
|
|
||||||
error : function(xhr, status, error) {
|
|
||||||
console.log("AJAX Error:", error);
|
|
||||||
alert("파일을 연동바랍니다.");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
@@ -4667,13 +4601,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</c:if>
|
</c:if>
|
||||||
|
<%--
|
||||||
<c:if test="${'Y' eq payInfo.npayUseAt}">
|
<c:if test="${'Y' eq payInfo.npayUseAt}">
|
||||||
<div id="naverpay-content" class="order-method-normal__content" style="display: none">
|
<div id="naverpay-content" class="order-method-normal__content" style="display: none">
|
||||||
<div id="naverpay-content-inner" class="order-method-normal__content-inner">
|
<div id="naverpay-content-inner" class="order-method-normal__content-inner"></div>
|
||||||
<div class="noempty">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</c:if>
|
</c:if>
|
||||||
<c:if test="${'Y' eq payInfo.kpayUseAt}">
|
<c:if test="${'Y' eq payInfo.kpayUseAt}">
|
||||||
@@ -4685,6 +4616,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</c:if>
|
</c:if>
|
||||||
|
--%>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</c:if>
|
</c:if>
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||||
|
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
|
||||||
|
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
|
||||||
|
|
||||||
|
<%--
|
||||||
|
Class Name : OrdrReqstKiwoomPreR.jsp
|
||||||
|
Description : 키움 사전 승인 후 결제요청 폼
|
||||||
|
Modification Information
|
||||||
|
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
------- -------- ---------------------------
|
||||||
|
2026-03-23 이경숙 최초 생성
|
||||||
|
--%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title>결제 사전 승인</title>
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
|
||||||
|
|
||||||
|
<script src="<c:url value='/pc/vendor/jquery-3.7.1.min.js'/>"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
opener.location.reload();
|
||||||
|
self.close();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -30,50 +30,45 @@
|
|||||||
<script type="text/javascript" language="javascript">
|
<script type="text/javascript" language="javascript">
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
|
||||||
var pf = document.payForm;
|
const pf = document.payForm;
|
||||||
|
|
||||||
const orderForm = $('#order_info');
|
const orderForm = $('#order_info');
|
||||||
const setleTyCd = orderForm.find('.setleTyCd').val();
|
const setleTyCd = orderForm.find('.setleTyCd').val();
|
||||||
const setleAmt = orderForm.find('.setleAmt').val();
|
|
||||||
const ordrInnb = orderForm.find('.ordrInnb').val();
|
|
||||||
const ordrrNm = orderForm.find('.ordrrNm').val();
|
|
||||||
|
|
||||||
const sopmalCd = orderForm.find('.sopmalCd').val();
|
const sopmalCd = orderForm.find('.sopmalCd').val();
|
||||||
const mbrInnb = orderForm.find('.mbrInnb').val();
|
const mbrInnb = orderForm.find('.mbrInnb').val();
|
||||||
const mbrId = orderForm.find('.mbrId').val();
|
const mbrId = orderForm.find('.mbrId').val();
|
||||||
const sesionId = orderForm.find('.sesionId').val();
|
|
||||||
const pgCmpnyNm = orderForm.find('.pgCmpnyNm').val();
|
const pgCmpnyNm = orderForm.find('.pgCmpnyNm').val();
|
||||||
|
const ordrrNm = orderForm.find('.ordrrNm').val();
|
||||||
|
const ordrInnb = orderForm.find('.ordrInnb').val();
|
||||||
|
const setleAmt = orderForm.find('.setleAmt').val();
|
||||||
|
const sesionId = orderForm.find('.sesionId').val();
|
||||||
|
|
||||||
let param = '?sopmalCd=' + sopmalCd;
|
let homeUrl = new URL(window.location.origin+"/sopmal/ordr/kiwoomPayPreSuccss");
|
||||||
param += '&mbrInnb=' + mbrInnb;
|
|
||||||
param += '&mbrId=' + mbrId;
|
|
||||||
param += '&sesionId=' + sesionId;
|
|
||||||
param += '&pgCmpnyNm=' + pgCmpnyNm;
|
|
||||||
param += '&setleTyCd=' + setleTyCd;
|
|
||||||
param += '&ordrrNm=' + ordrrNm;
|
|
||||||
param += '&orderId=' + ordrInnb;
|
|
||||||
param += '&setleAmt=' + setleAmt;
|
|
||||||
|
|
||||||
const encodedParam = encodeURIComponent(param);
|
if('<c:out value="${ data.ordr.sknEnvrnCd }"/>' === 'M'){
|
||||||
pf.HOMEURL.value=window.location.origin + '<c:url value="/sopmal/pay/kiwoomPaySuccss"/>' + encodedParam;
|
homeUrl = new URL(window.location.origin + "/sopmal/ordr/insertKiwoomSetle");
|
||||||
pf.FAILURL.value=window.location.origin + '<c:url value="/sopmal/pay/kiwoomPayFail"/>'+ encodedParam;
|
homeUrl.searchParams.set("sopmalCd", sopmalCd);
|
||||||
|
homeUrl.searchParams.set("mbrInnb", mbrInnb);
|
||||||
console.log("HOMEURL:::"+ pf.HOMEURL.value);
|
homeUrl.searchParams.set("mbrId", mbrId);
|
||||||
console.log("FAILURL:::"+ pf.FAILURL.value);
|
homeUrl.searchParams.set("pgCmpnyNm", pgCmpnyNm);
|
||||||
|
homeUrl.searchParams.set("setleTyCd", setleTyCd);
|
||||||
kiwoomPay();
|
homeUrl.searchParams.set("ordrrNm", btoa(unescape(encodeURIComponent(ordrrNm))));
|
||||||
});
|
homeUrl.searchParams.set("ordrInnb", ordrInnb);
|
||||||
|
homeUrl.searchParams.set("setleAmt", setleAmt);
|
||||||
|
homeUrl.searchParams.set("sesionId", sesionId);
|
||||||
|
}else{
|
||||||
|
pf.CLOSEURL.value=window.location.origin+"/sopmal/ordr/kiwoomPayCancelUrl";
|
||||||
function init() {
|
|
||||||
pf = document.payForm;
|
|
||||||
pf.ORDERNO.value = getTimeStamp();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function pay() {
|
pf.HOMEURL.value = homeUrl.toString();
|
||||||
pf = document.payForm;
|
pf.FAILURL.value=pf.HOMEURL.value;
|
||||||
|
|
||||||
|
console.log("==HOMEURL====::",pf.HOMEURL.value);
|
||||||
|
|
||||||
|
//kiwoomPay();
|
||||||
|
//});
|
||||||
|
|
||||||
|
// function kiwoomPay() {
|
||||||
|
|
||||||
// 입력값 가져오기
|
// 입력값 가져오기
|
||||||
var CPID = pf.CPID.value;
|
var CPID = pf.CPID.value;
|
||||||
@@ -107,14 +102,11 @@
|
|||||||
// kiwoom_ENC 값 입력
|
// kiwoom_ENC 값 입력
|
||||||
pf.KIWOOM_ENC.value = enc;
|
pf.KIWOOM_ENC.value = enc;
|
||||||
|
|
||||||
console.log("response enc :::::",enc);
|
|
||||||
|
|
||||||
// 결제창 URL 설정
|
// 결제창 URL 설정
|
||||||
var PayServer = pf.SERVER.value;
|
var PayServer = pf.SERVER.value;
|
||||||
var PayType = pf.TYPE.value;
|
var PayType = pf.TYPE.value;
|
||||||
var fileName = "";
|
var fileName = "";
|
||||||
console.log("response PayServer :::::", PayServer);
|
|
||||||
console.log("response PayType :::::", PayType);
|
|
||||||
if (PayServer === "DEV") {
|
if (PayServer === "DEV") {
|
||||||
fileName = "https://apitest.kiwoompay.co.kr/pay/linkEnc";
|
fileName = "https://apitest.kiwoompay.co.kr/pay/linkEnc";
|
||||||
} else if (PayServer === "LIVE") {
|
} else if (PayServer === "LIVE") {
|
||||||
@@ -140,65 +132,67 @@
|
|||||||
alert("파일을 연동바랍니다.");
|
alert("파일을 연동바랍니다.");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
//}
|
||||||
|
});
|
||||||
|
|
||||||
function getTimeStamp() {
|
|
||||||
var d = new Date();
|
|
||||||
var month = d.getMonth() + 1
|
|
||||||
var date = d.getDate()
|
|
||||||
var hour = d.getHours()
|
|
||||||
var minute = d.getMinutes()
|
|
||||||
var second = d.getSeconds()
|
|
||||||
|
|
||||||
month = (month < 10 ? "0" : "") + month;
|
|
||||||
date = (date < 10 ? "0" : "") + date;
|
|
||||||
hour = (hour < 10 ? "0" : "") + hour;
|
|
||||||
minute = (minute < 10 ? "0" : "") + minute;
|
|
||||||
second = (second < 10 ? "0" : "") + second;
|
|
||||||
|
|
||||||
var s = d.getFullYear() + month + date + hour + minute + second
|
|
||||||
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<%-- Controller에 넘어가는 값 --%>
|
<%-- Controller에 넘어가는 값 --%>
|
||||||
<form name="order_info" id="order_info">
|
<form name="order_info" id="order_info" method="post" action="<c:url value="/sopmal/ordr/insertKiwoomSetle"/>">
|
||||||
<input type="hidden" name="sopmalCd" class="sopmalCd" value="${data.setle.sopmalCd}" />
|
<input type="hidden" name="sopmalCd" class="sopmalCd" value="${data.setle.sopmalCd}" />
|
||||||
<input type="hidden" name="ordrInnb" class="ordrInnb" value="${data.setle.ordrInnb}" />
|
<input type="hidden" name="ordrInnb" class="ordrInnb" value="${data.setle.ordrInnb}" />
|
||||||
<input type="hidden" name="pgCmpnyNm" class="pgCmpnyNm" value="${data.setle.pgCmpnyNm}" />
|
<input type="hidden" name="pgCmpnyNm" class="pgCmpnyNm" value="${data.setle.pgCmpnyNm}" />
|
||||||
<input type="hidden" name="setleTyCd" class="setleTyCd" value="${data.setle.setleTyCd}" />
|
<input type="hidden" name="setleTyCd" class="setleTyCd" value="${data.setle.setleTyCd}" />
|
||||||
|
|
||||||
<input type="hidden" name="goodsNm" class="goodsNm" value="${data.setle.goodsNm}"/> <!-- 상품명 -->
|
<input type="hidden" name="goodsNm" class="goodsNm" value="${data.setle.goodsNm}"/>
|
||||||
<input type="hidden" name="setleAmt" class="setleAmt" value="${data.setle.setleAmt}"/> <!-- 결제 금액 -->
|
<input type="hidden" name="setleAmt" class="setleAmt" value="${data.setle.wonSetleAmt}"/>
|
||||||
<input type="hidden" name="ordrrNm" class="ordrrNm" value="${data.ordr.ordrrNm}"/> <!-- 주문자 이름 -->
|
<input type="hidden" name="ordrrNm" class="ordrrNm" value="${data.ordr.ordrrNm}"/>
|
||||||
<input type="hidden" name="ordrrEmail" class="ordrrEmail" value="${data.ordr.ordrrEmail}"/> <!-- 주문자 이메일 -->
|
<input type="hidden" name="ordrrEmail" class="ordrrEmail" value="${data.ordr.ordrrEmail}"/>
|
||||||
<input type="hidden" name="ordrrMbtlnb" class="ordrrMbtlnb" value="${data.ordr.ordrrMbtlnb}"/> <!-- 주문자 휴대폰번호 -->
|
<input type="hidden" name="ordrrMbtlnb" class="ordrrMbtlnb" value="${data.ordr.ordrrMbtlnb}"/>
|
||||||
<input type="hidden" name="mbrId" class="mbrId" value="${data.ordr.mbrId}"/> <!-- 쇼핑몰회원ID -->
|
<input type="hidden" name="mbrId" class="mbrId" value="${data.ordr.mbrId}"/>
|
||||||
<input type="hidden" name="mbrInnb" class="mbrInnb" value="${data.ordr.mbrInnb}" />
|
<input type="hidden" name="mbrInnb" class="mbrInnb" value="${data.ordr.mbrInnb}" />
|
||||||
<input type="hidden" name="sesionId" class="sesionId" value="${data.ordr.sesionId}" />
|
<input type="hidden" name="sesionId" class="sesionId" value="${data.ordr.sesionId}" />
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<%-- 결제창에 넘어가는 값 --%>
|
<%-- 결제창에 넘어가는 값 --%>
|
||||||
<form name="payForm" accept-charset="euc-kr">
|
<form name="payForm" accept-charset="euc-kr">
|
||||||
<input type="hidden" name="SERVER" value="DEV"/> <!-- 서버환경 : LIVE -->
|
<%-- 개발환경:DEV / 서버환경 : LIVE --%>
|
||||||
<input type="hidden" name="TAXFREECD" value="01"/> <!-- 과세 비과세 여부(00: 과세, 01: 비과세, 02: 복합과세) -->
|
<c:choose>
|
||||||
<input type="hidden" name="BILLTYPE" value="1"/> <!-- 과금 유형(1: 일반) -->
|
<c:when test="${'CTS18056' == data.setle.siteCdMid}">
|
||||||
<input type="hidden" name="PRODUCTTYPE" value="2"/> <!-- 상품구분(1: 디지털, 2: 실물) -->
|
<input type="hidden" name="SERVER" value="DEV" />
|
||||||
<input type="hidden" name="KIWOOM_ENC" value=""/> <!-- 보안 기능 -->
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
<input type="hidden" name="TYPE" value="P"/> <!-- 결제방식(P:PC/M:모바일/W:웹뷰) -->
|
<input type="hidden" name="SERVER" value="LIVE" />
|
||||||
<input type="hidden" name="CPID" value="CTS18056"/> <!-- 상점아이디 개발:CTS18056 / 운영:CFO20585,CFO20586-->
|
</c:otherwise>
|
||||||
<input type="hidden" name="PAYMETHOD" value="CARD"/> <!-- 결제수단 (CARD:카드/NAVERPAY:네이버페이)-->
|
</c:choose>
|
||||||
|
<%-- 결제수단 (CARD:카드/NAVERPAY:네이버페이)--%>
|
||||||
<input type="hidden" name="ORDERNO" value="${data.setle.ordrInnb}"/> <!-- 주문번호 -->
|
<c:choose>
|
||||||
<input type="hidden" name="AMOUNT" value="${data.setle.wonSetleAmt}" /><!-- 결제금액 -->
|
<c:when test="${'naverpay' == data.setle.pgCmpnyNm}">
|
||||||
<input type="hidden" name="PRODUCTNAME" value="${data.setle.goodsNm}" /><!-- 상품명 -->
|
<input type="hidden" name="PAYMETHOD" value="NAVERPAY" />
|
||||||
<input type="hidden" name="USERID" value="${data.ordr.mbrId}" /> <!-- 고객 ID -->
|
</c:when>
|
||||||
<input type="hidden" name="HOMEURL" value="" /> <!-- 결제 성공 후, 이동할 URL(결제 창에서 이동) -->
|
<c:otherwise>
|
||||||
<input type="hidden" name="FAILURL" value="" /> <!-- 결제실패 후, 확인버튼 입력 시 이동할 URL -->
|
<input type="hidden" name="PAYMETHOD" value="CARD" />
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
<input type="hidden" name="CPID" value="${data.setle.siteCdMid}"/> <%-- 상점아이디 개발:CTS18056 / 운영:CFO20585,CFO20586--%>
|
||||||
|
<input type="hidden" name="TYPE" value="${data.ordr.sknEnvrnCd}" /> <%-- 결제방식(P:PC/M:모바일/W:웹뷰) 스킨환경코드(P:PC, M:mobile, TM:TM주문)--%>
|
||||||
|
<input type="hidden" name="TAXFREECD" value="01"/> <%-- 과세 비과세 여부(00: 과세, 01: 비과세, 02: 복합과세) --%>
|
||||||
|
<input type="hidden" name="BILLTYPE" value="1"/> <%-- 과금 유형(1: 일반) --%>
|
||||||
|
<input type="hidden" name="PRODUCTTYPE" value="2"/> <%-- 상품구분(1: 디지털, 2: 실물) --%>
|
||||||
|
<input type="hidden" name="KIWOOM_ENC" value=""/> <%-- 보안 기능 --%>
|
||||||
|
|
||||||
|
<input type="hidden" name="ORDERNO" value="${data.setle.ordrInnb}"/> <%-- 주문번호 --%>
|
||||||
|
<input type="hidden" name="AMOUNT" value="${data.setle.wonSetleAmt}" /><%-- 결제금액 --%>
|
||||||
|
<input type="hidden" name="PRODUCTNAME" value="${data.setle.goodsNm}" /><%-- 상품명 --%>
|
||||||
|
<input type="hidden" name="PRODUCTCODE" value="${data.setle.ordrInnb}" /><%-- 상품코드 --%>
|
||||||
|
<input type="hidden" name="USERID" value="${data.ordr.mbrId}" /> <%-- 고객 ID --%>
|
||||||
|
<input type="hidden" name="EMAIL" value="${data.ordr.ordrrEmail}" /> <%-- 고객 EMAIL --%>
|
||||||
|
<input type="hidden" name="DIRECTRESULTFLAG" value="Y" /> <%-- 키움페이 결제 완료 창 없이 HOMEURL로 바로 이동(Y/N) --%>
|
||||||
|
<input type="hidden" name="CASHRECEIPTUSE" value="9" /> <%-- 현금영수증 발급 용도(1. 소득 공제, 2. 지출 증빙, 9. 미 발행) --%>
|
||||||
|
<input type="hidden" name="HOMEURL" value="" /> <%-- 결제 성공 후, 이동할 URL(결제 창에서 이동) --%>
|
||||||
|
<input type="hidden" name="FAILURL" value="" /> <%-- 결제실패 후, 확인버튼 입력 시 이동할 URL --%>
|
||||||
|
<input type="hidden" name="CLOSEURL" value="" /> <%-- 결제 창에서 취소 누를 시 이동할 URL --%>
|
||||||
</form>
|
</form>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||||
|
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
|
||||||
|
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
|
||||||
|
|
||||||
|
<%--
|
||||||
|
Class Name : OrdrReqstKiwoomPreR.jsp
|
||||||
|
Description : 키움 사전 승인 후 결제요청 폼
|
||||||
|
Modification Information
|
||||||
|
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
------- -------- ---------------------------
|
||||||
|
2026-03-23 이경숙 최초 생성
|
||||||
|
--%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title>결제 사전 승인</title>
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
|
||||||
|
|
||||||
|
<script src="<c:url value='/pc/vendor/jquery-3.7.1.min.js'/>"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
window.opener.kiwoom_Completepayment();
|
||||||
|
self.close();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||||
|
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
|
||||||
|
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
|
||||||
|
|
||||||
|
<%--
|
||||||
|
Class Name : OrdrPay.jsp
|
||||||
|
Description : 결제
|
||||||
|
Modification Information
|
||||||
|
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
------- -------- ---------------------------
|
||||||
|
2024-04-11 김혜인 최초 생성
|
||||||
|
--%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
|
||||||
|
<%-- 공통 include --%>
|
||||||
|
<jsp:include page="/WEB-INF/views/comm/Include.jsp"/>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
//alert($('#message').val());
|
||||||
|
|
||||||
|
const status = $('#status').val();
|
||||||
|
|
||||||
|
if ('0' === status) {
|
||||||
|
let form = $('<form></form>');
|
||||||
|
|
||||||
|
$(form).attr('method', 'post');
|
||||||
|
$(form).attr('action', '<c:url value="/sopmal/ordr/selectOrdrCompt"/>');
|
||||||
|
history.replaceState(null, '', '/sopmal/ordr/selectOrdrCompt');
|
||||||
|
|
||||||
|
$(form).append($('<input/>', {type:'hidden', name:'sopmalCd', value:$('#sopmalCd').val()}));
|
||||||
|
$(form).append($('<input/>', {type:'hidden', name:'ordrInnb', value:$('#ordrInnb').val()}));
|
||||||
|
$(form).append($('<input/>', {type:'hidden', name:'message', value:$('#message').val()}));
|
||||||
|
|
||||||
|
$(form).appendTo('body');
|
||||||
|
$(form).submit();
|
||||||
|
} else {
|
||||||
|
const form = $('<form></form>');
|
||||||
|
|
||||||
|
$(form).append($('<input/>', {type:'hidden', name:'sopmalCd', value:$('#sopmalCd').val()}));
|
||||||
|
$(form).append($('<input/>', {type:'hidden', name:'ordrInnb', value:$('#ordrInnb').val()}));
|
||||||
|
$(form).append($('<input/>', {type:'hidden', name:'mbrInnb', value:$('#mbrInnb').val()}));
|
||||||
|
$(form).append($('<input/>', {type:'hidden', name:'mbrId', value:$('#mbrId').val()}));
|
||||||
|
$(form).append($('<input/>', {type:'hidden', name:'sesionId', value:$('#sesionId').val()}));
|
||||||
|
$(form).append($('<input/>', {type:'hidden', name:'message', value:$('#message').val()}));
|
||||||
|
$(form).append($('<input/>', {type:'hidden', name:'subsvcInnb', value:$('#subsvcInnb').val()}));
|
||||||
|
|
||||||
|
$(form).attr('method', 'post');
|
||||||
|
$(form).attr('action', '<c:url value="/sopmal/ordr/selectOrdrFailr"/>');
|
||||||
|
history.replaceState(null, '', '/sopmal/ordr/selectOrdrFailr');
|
||||||
|
|
||||||
|
$(form).appendTo('body');
|
||||||
|
$(form).submit();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<form name="successForm" id="successForm">
|
||||||
|
<input type="hidden" name="status" id="status" value="${data.status}"/>
|
||||||
|
<input type="hidden" name="message" id="message" value="${data.message}"/>
|
||||||
|
<input type="hidden" name="sopmalCd" id="sopmalCd" value="${paramVO.sopmalCd}"/>
|
||||||
|
<input type="hidden" name="ordrInnb" id="ordrInnb" value="${paramVO.orderId}"/>
|
||||||
|
<input type="hidden" name="mbrInnb" id="mbrInnb" value="${paramVO.mbrInnb}"/>
|
||||||
|
<input type="hidden" name="mbrId" id="mbrId" value="${paramVO.mbrId}"/>
|
||||||
|
<input type="hidden" name="sesionId" id="sesionId" value="${paramVO.sesionId}"/>
|
||||||
|
<input type="hidden" name="subsvcInnb" id="subsvcInnb" value="${subsvcInnb}"/>
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
58
src/main/webapp/WEB-INF/views/sopmal/ordr/PayKiwoomModC.jsp
Normal file
58
src/main/webapp/WEB-INF/views/sopmal/ordr/PayKiwoomModC.jsp
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||||
|
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
|
||||||
|
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
|
||||||
|
|
||||||
|
<%--
|
||||||
|
Class Name : PayKiwoomModC.jsp
|
||||||
|
Description : 키움 결제취소창
|
||||||
|
Modification Information
|
||||||
|
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
------- -------- ---------------------------
|
||||||
|
2026-04-07 이경숙 최초 생성
|
||||||
|
--%>
|
||||||
|
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>통합 API 샘플페이지</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
|
||||||
|
<meta http-equiv="Cache-Control" content="no-cache">
|
||||||
|
<meta http-equiv="Expires" content="0">
|
||||||
|
<meta http-equiv="Pragma" content="no-cache">
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pf;
|
||||||
|
function fnSubmit2() {
|
||||||
|
var fileName;
|
||||||
|
fileName = "/sopmal/pay/kiwoomPayCancel";
|
||||||
|
pf = document.frmConfirm;
|
||||||
|
pf.action = fileName;
|
||||||
|
pf.method = "post";
|
||||||
|
pf.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<form name="frmConfirm">
|
||||||
|
|
||||||
|
ORDERNO : <input type="text" id="ORDERNO" name="ORDERNO"><br>
|
||||||
|
AUTHKEY : <input type="text" id="AUTHKEY" name="AUTHKEY" placeholder="상점관리자 고객지원>연동정보설정에 연동키 확인"><br>
|
||||||
|
상점아이디 : <input type="text" id="CPID" name="CPID" placeholder="키움페이에서 발급받은 테스트ID입력" value="CTS18056"><br>
|
||||||
|
PAYMETHOD : <input type="text" id="PAYMETHOD" name="PAYMETHOD" placeholder="매뉴얼에 있는 결제수단별 PAYMETHOD확인" value="CARD"><br>
|
||||||
|
AMOUNT : <input type="text" id="AMOUNT" name="AMOUNT" placeholder="1004" style="width:80%;"/> <br>
|
||||||
|
CANCELREQ : <input type="text" id="CANCELREQ" name="CANCELREQ" value="Y"> 취소요청을 하는 경우라면 Y값 전송<br>
|
||||||
|
TRXID : <input type="text" id="TRXID" name="TRXID" placeholder="키움페이 거래번호"><br>
|
||||||
|
CANCELREASON : <input type="text" id="CANCELREASON" name="CANCELREASON" placeholder="취소사유"><br>
|
||||||
|
TAXFREEAMT : <input type="text" id="TAXFREEAMT" name="TAXFREEAMT" value=""> (선택)복합과세 결제일 경우 사용, 비과세 취소금액<br>
|
||||||
|
<input name="btnSubmit" type="button" value="결제요청" onclick="fnSubmit2()" ><br>
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -36,6 +36,12 @@
|
|||||||
$('#responseAmount').text(jsonObject.amount);
|
$('#responseAmount').text(jsonObject.amount);
|
||||||
$('#resCode').text(jsonObject.code);
|
$('#resCode').text(jsonObject.code);
|
||||||
//$('#resMessage').text(jsonObject.res_msg);
|
//$('#resMessage').text(jsonObject.res_msg);
|
||||||
|
|
||||||
|
$('#ERRORMESSAGE').text(jsonObject.ERRORMESSAGE);
|
||||||
|
$('#DAOUTRX').text(jsonObject.TRXID);
|
||||||
|
$('#AMOUNT').text(jsonObject.AMOUNT);
|
||||||
|
$('#ORDERNO').text(jsonObject.orderId);
|
||||||
|
$('#CANCELDATE').text(jsonObject.CANCELDATE);
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
@@ -50,6 +56,13 @@
|
|||||||
<p>금액 : <span id="responseAmount"></span></p>
|
<p>금액 : <span id="responseAmount"></span></p>
|
||||||
<p>메세지 : <span id="resMessage"></span></p>
|
<p>메세지 : <span id="resMessage"></span></p>
|
||||||
<p>결과코드 : <span id="resCode"></span><p>
|
<p>결과코드 : <span id="resCode"></span><p>
|
||||||
|
<p>-----------------------------------------</p>
|
||||||
|
<p>ERRORMESSAGE : <span id="ERRORMESSAGE"></span><p>
|
||||||
|
<p>DAOUTRX : <span id="DAOUTRX"></span><p>
|
||||||
|
<p>AMOUNT : <span id="AMOUNT"></span><p>
|
||||||
|
<p>CANCELDATE : <span id="CANCELDATE"></span><p>
|
||||||
|
|
||||||
|
<input type="button" onclick="window.opener.kiwoom_Completepayment(); self.close();" value="확인"/>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -9,6 +9,12 @@
|
|||||||
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
||||||
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
|
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
|
||||||
<spring:eval expression="@environment.getProperty('currency-unit.KR')" var="krUnit"/>
|
<spring:eval expression="@environment.getProperty('currency-unit.KR')" var="krUnit"/>
|
||||||
|
|
||||||
|
<%
|
||||||
|
String serverName = request.getServerName();
|
||||||
|
String sysEnv = "live";
|
||||||
|
if(serverName.contains("dev") || serverName.contains("loc")){sysEnv = "dev";};
|
||||||
|
%>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="ko">
|
<html lang="ko">
|
||||||
<head>
|
<head>
|
||||||
@@ -358,8 +364,6 @@
|
|||||||
boUrl = '<c:url value="/sopmal/mpage/ordr/updateCashReceiptInfo"/>';
|
boUrl = '<c:url value="/sopmal/mpage/ordr/updateCashReceiptInfo"/>';
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("boUrl:::",boUrl);
|
|
||||||
|
|
||||||
$("#customConfirmAlertCn").text('<spring:message code="confirm.common.apply"/>');
|
$("#customConfirmAlertCn").text('<spring:message code="confirm.common.apply"/>');
|
||||||
openConfirmModal2(function (onSuccess) {
|
openConfirmModal2(function (onSuccess) {
|
||||||
fn_apply_sales_2(onSuccess,boUrl);
|
fn_apply_sales_2(onSuccess,boUrl);
|
||||||
@@ -567,7 +571,26 @@
|
|||||||
const tossCardUrl = "https://dashboard.tosspayments.com/receipt/redirection?transactionId="+pgInnb+"&ref=PX"; //카드 / 간편결제(01)
|
const tossCardUrl = "https://dashboard.tosspayments.com/receipt/redirection?transactionId="+pgInnb+"&ref=PX"; //카드 / 간편결제(01)
|
||||||
const tossAcntUrl = "https://dashboard.tosspayments.com/receipt/payment-detail/bank-transfer?transactionId="+pgInnb+"&ref=PX"; //계좌이체(03), 가상계좌(04,05)
|
const tossAcntUrl = "https://dashboard.tosspayments.com/receipt/payment-detail/bank-transfer?transactionId="+pgInnb+"&ref=PX"; //계좌이체(03), 가상계좌(04,05)
|
||||||
|
|
||||||
if(pgCmpnyNm == "kcp") {
|
/* kiwoom url , kiwoom naverpay
|
||||||
|
* DAOUTRX : 다우거래번호
|
||||||
|
* STATUS : 11 = 승인전표 / 12 = 취소전표 / 16 = 부분취소 / A = 자동상태
|
||||||
|
*/
|
||||||
|
const env = "<%=sysEnv%>";
|
||||||
|
let kiwoomCardUrl = "";
|
||||||
|
let kiwoomNaverUrl = "";
|
||||||
|
if(env == "dev"){ //개발
|
||||||
|
kiwoomCardUrl = "https://agenttest.kiwoompay.co.kr/common/PayInfoPrintDirectCard.jsp?DAOUTRX="+pgInnb+"&STATUS=11";
|
||||||
|
kiwoomNaverUrl = "https://agenttest.kiwoompay.co.kr/common/PayInfoPrintNaverPay.jsp?DAOUTRX="+pgInnb+"&STATUS=11";
|
||||||
|
}else{
|
||||||
|
kiwoomCardUrl = "https://agent.kiwoompay.co.kr/common/PayInfoPrintDirectCard.jsp?DAOUTRX="+pgInnb+"&STATUS=11";
|
||||||
|
kiwoomNaverUrl = "https://agent.kiwoompay.co.kr/common/PayInfoPrintNaverPay.jsp?DAOUTRX="+pgInnb+"&STATUS=11";
|
||||||
|
}
|
||||||
|
|
||||||
|
if(pgCmpnyNm == "kiwoom") {
|
||||||
|
if(setleTyCd=='01'){ url = kiwoomCardUrl;}
|
||||||
|
} else if(pgCmpnyNm == "naverpay") {
|
||||||
|
if(setleTyCd=='01'){ url = kiwoomNaverUrl;}
|
||||||
|
} else if(pgCmpnyNm == "kcp") {
|
||||||
|
|
||||||
if(setleTyCd=='01'){ url = kcpCardUrl;}
|
if(setleTyCd=='01'){ url = kcpCardUrl;}
|
||||||
if(setleTyCd=='03'){ url = kcpAcntUrl;}
|
if(setleTyCd=='03'){ url = kcpAcntUrl;}
|
||||||
|
|||||||
@@ -9,6 +9,12 @@
|
|||||||
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
||||||
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
|
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
|
||||||
<spring:eval expression="@environment.getProperty('currency-unit.KR')" var="krUnit"/>
|
<spring:eval expression="@environment.getProperty('currency-unit.KR')" var="krUnit"/>
|
||||||
|
|
||||||
|
<%
|
||||||
|
String serverName = request.getServerName();
|
||||||
|
String sysEnv = "live";
|
||||||
|
if(serverName.contains("dev") || serverName.contains("loc")){sysEnv = "dev";};
|
||||||
|
%>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="ko">
|
<html lang="ko">
|
||||||
<head>
|
<head>
|
||||||
@@ -341,8 +347,6 @@
|
|||||||
boUrl = '<c:url value="/sopmal/mpage/ordr/updateCashReceiptInfo"/>';
|
boUrl = '<c:url value="/sopmal/mpage/ordr/updateCashReceiptInfo"/>';
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("boUrl:::",boUrl);
|
|
||||||
|
|
||||||
$("#customConfirmAlertCn").text('<spring:message code="confirm.common.apply"/>');
|
$("#customConfirmAlertCn").text('<spring:message code="confirm.common.apply"/>');
|
||||||
openConfirmModal2(function (onSuccess) {
|
openConfirmModal2(function (onSuccess) {
|
||||||
fn_apply_sales_2(onSuccess,boUrl);
|
fn_apply_sales_2(onSuccess,boUrl);
|
||||||
@@ -550,7 +554,26 @@
|
|||||||
const tossCardUrl = "https://dashboard.tosspayments.com/receipt/redirection?transactionId="+pgInnb+"&ref=PX"; //카드 / 간편결제(01)
|
const tossCardUrl = "https://dashboard.tosspayments.com/receipt/redirection?transactionId="+pgInnb+"&ref=PX"; //카드 / 간편결제(01)
|
||||||
const tossAcntUrl = "https://dashboard.tosspayments.com/receipt/payment-detail/bank-transfer?transactionId="+pgInnb+"&ref=PX"; //계좌이체(03), 가상계좌(04,05)
|
const tossAcntUrl = "https://dashboard.tosspayments.com/receipt/payment-detail/bank-transfer?transactionId="+pgInnb+"&ref=PX"; //계좌이체(03), 가상계좌(04,05)
|
||||||
|
|
||||||
if(pgCmpnyNm == "kcp") {
|
/* kiwoom url , kiwoom naverpay
|
||||||
|
* DAOUTRX : 다우거래번호
|
||||||
|
* STATUS : 11 = 승인전표 / 12 = 취소전표 / 16 = 부분취소 / A = 자동상태
|
||||||
|
*/
|
||||||
|
const env = "<%=sysEnv%>";
|
||||||
|
let kiwoomCardUrl = "";
|
||||||
|
let kiwoomNaverUrl = "";
|
||||||
|
if(env == "dev"){ //개발
|
||||||
|
kiwoomCardUrl = "https://agenttest.kiwoompay.co.kr/common/PayInfoPrintDirectCard.jsp?DAOUTRX="+pgInnb+"&STATUS=11";
|
||||||
|
kiwoomNaverUrl = "https://agenttest.kiwoompay.co.kr/common/PayInfoPrintNaverPay.jsp?DAOUTRX="+pgInnb+"&STATUS=11";
|
||||||
|
}else{
|
||||||
|
kiwoomCardUrl = "https://agent.kiwoompay.co.kr/common/PayInfoPrintDirectCard.jsp?DAOUTRX="+pgInnb+"&STATUS=11";
|
||||||
|
kiwoomNaverUrl = "https://agent.kiwoompay.co.kr/common/PayInfoPrintNaverPay.jsp?DAOUTRX="+pgInnb+"&STATUS=11";
|
||||||
|
}
|
||||||
|
|
||||||
|
if(pgCmpnyNm == "kiwoom") {
|
||||||
|
if(setleTyCd=='01'){ url = kiwoomCardUrl;}
|
||||||
|
} else if(pgCmpnyNm == "naverpay") {
|
||||||
|
if(setleTyCd=='01'){ url = kiwoomNaverUrl;}
|
||||||
|
} else if(pgCmpnyNm == "kcp") {
|
||||||
|
|
||||||
if(setleTyCd=='01'){ url = kcpCardUrl;}
|
if(setleTyCd=='01'){ url = kcpCardUrl;}
|
||||||
if(setleTyCd=='03'){ url = kcpAcntUrl;}
|
if(setleTyCd=='03'){ url = kcpAcntUrl;}
|
||||||
|
|||||||
@@ -39,8 +39,14 @@
|
|||||||
// gcpay 사용안할 경우 기본 세팅
|
// gcpay 사용안할 경우 기본 세팅
|
||||||
const gcpayCardUseAt = $('#gcpayCardUseAt').val();
|
const gcpayCardUseAt = $('#gcpayCardUseAt').val();
|
||||||
let gcpayAt = ( gcpayCardUseAt === 'Y')? 'Y' : 'N';
|
let gcpayAt = ( gcpayCardUseAt === 'Y')? 'Y' : 'N';
|
||||||
const setleTy = $('#setleSetupTyCd').val(); //01:kcp, 02:toss
|
const setleTy = $('#setleSetupTyCd').val();
|
||||||
const setleTyCd = (setleTy==='01')?'#pg04':'#pg03';
|
//const setleTyCd = (setleTy==='01')?'#pg04':'#pg03';
|
||||||
|
|
||||||
|
let setleTyCd = '#pg04';
|
||||||
|
if(setleTy==='01')setleTyCd = '#pg04'; //kcp
|
||||||
|
else if(setleTy==='02')setleTyCd = '#pg03'; //toss
|
||||||
|
else if(setleTy==='03')setleTyCd = '#pg06'; //kiwoom
|
||||||
|
|
||||||
if (gcpayAt === 'N') {
|
if (gcpayAt === 'N') {
|
||||||
$(setleTyCd).click();
|
$(setleTyCd).click();
|
||||||
}
|
}
|
||||||
@@ -566,7 +572,13 @@
|
|||||||
|
|
||||||
$(form).find('.pgContent').hide();
|
$(form).find('.pgContent').hide();
|
||||||
$(form).find('#' + id + 'Content').show();
|
$(form).find('#' + id + 'Content').show();
|
||||||
$(form).find('#setleSetupTyCd').val() === '01' ? $(form).find('#pg04Content').show() : $(form).find('#pg03Content').show();
|
|
||||||
|
//$(form).find('#setleSetupTyCd').val() === '01' ? $(form).find('#pg04Content').show() : $(form).find('#pg03Content').show();
|
||||||
|
if($(form).find('#setleSetupTyCd').val() === '01'){$(form).find('#pg04Content').show();}
|
||||||
|
else if($(form).find('#setleSetupTyCd').val() === '02'){$(form).find('#pg03Content').show();}
|
||||||
|
else if($(form).find('#setleSetupTyCd').val() === '03'){$(form).find('#pg06Content').show();}
|
||||||
|
|
||||||
|
|
||||||
$('.order-method-normal__btn').removeClass('active');
|
$('.order-method-normal__btn').removeClass('active');
|
||||||
$(form).find('#pgCmpnyNm').val(pgCmpnyNm);
|
$(form).find('#pgCmpnyNm').val(pgCmpnyNm);
|
||||||
|
|
||||||
@@ -621,7 +633,10 @@
|
|||||||
const content = $('.order-method-normal__content');
|
const content = $('.order-method-normal__content');
|
||||||
const useCashMlgAmt = $('#useCashMlgAmt').val();
|
const useCashMlgAmt = $('#useCashMlgAmt').val();
|
||||||
|
|
||||||
$('#setleSetupTyCd').val() === '01' ? $('#pg04').click() : $('#pg03').click();
|
//$('#setleSetupTyCd').val() === '01' ? $('#pg04').click() : $('#pg03').click();
|
||||||
|
if($('#setleSetupTyCd').val() === '01'){$('#pg04').click();}
|
||||||
|
else if($('#setleSetupTyCd').val() === '02'){$('#pg03').click();}
|
||||||
|
else if($('#setleSetupTyCd').val() === '03'){$('#pg06').click();}
|
||||||
|
|
||||||
$('.order-method-normal__btn').removeClass('active');
|
$('.order-method-normal__btn').removeClass('active');
|
||||||
$(this).addClass('active');
|
$(this).addClass('active');
|
||||||
@@ -3105,7 +3120,7 @@
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('kcp' === pgCmpnyNm || 'toss' === pgCmpnyNm) {
|
if ('kcp' === pgCmpnyNm || 'toss' === pgCmpnyNm || 'kiwoom' === pgCmpnyNm) {
|
||||||
const div = $('#setleForm').find('.order-method-normal');
|
const div = $('#setleForm').find('.order-method-normal');
|
||||||
|
|
||||||
if (!$(div).find('.order-method-normal__btn-container button').hasClass('active')) {
|
if (!$(div).find('.order-method-normal__btn-container button').hasClass('active')) {
|
||||||
@@ -3146,7 +3161,13 @@
|
|||||||
const id = '01' === issuTrgetDvCd ? 'issuTrgetMbtlnb' : 'issuTrgetBsnmNb';
|
const id = '01' === issuTrgetDvCd ? 'issuTrgetMbtlnb' : 'issuTrgetBsnmNb';
|
||||||
let rlPgCmpnyNm = $('#pgCmpnyNm').val();
|
let rlPgCmpnyNm = $('#pgCmpnyNm').val();
|
||||||
|
|
||||||
let setleTyId = $('kcp' === pgCmpnyNm ? '#pg04Content' : '#pg03Content').find('button[name="' + setleTyCd + '"]').attr('id');
|
//let setleTyId = $('kcp' === pgCmpnyNm ? '#pg04Content' : '#pg03Content').find('button[name="' + setleTyCd + '"]').attr('id');
|
||||||
|
|
||||||
|
let pgCont = "";
|
||||||
|
if('kiwoom' === pgCmpnyNm) pgCont='pg06Content';
|
||||||
|
else if('kcp' === pgCmpnyNm) pgCont='pg04Content';
|
||||||
|
else pgCont='pg03Content';
|
||||||
|
let setleTyId = $('#'+pgCont).find('button[name="' + setleTyCd + '"]').attr('id');
|
||||||
|
|
||||||
if ('tosspay' === rlPgCmpnyNm) {
|
if ('tosspay' === rlPgCmpnyNm) {
|
||||||
setleTyId = 'acount'
|
setleTyId = 'acount'
|
||||||
@@ -4551,6 +4572,140 @@
|
|||||||
</div>
|
</div>
|
||||||
</c:if>
|
</c:if>
|
||||||
<%-- kcp 결제 종료 --%>
|
<%-- kcp 결제 종료 --%>
|
||||||
|
|
||||||
|
<%-- 키움 결제 시작 --%>
|
||||||
|
<c:if test="${'03' eq payInfo.setleSetupTyCd}">
|
||||||
|
<div class="custom-radio is-medium">
|
||||||
|
<input type="radio" name="pg" id="pg06" value="kiwoom">
|
||||||
|
<label for="pg06">일반결제</label>
|
||||||
|
</div>
|
||||||
|
<div id="pg06Content" class="pgContent order-method-normal" >
|
||||||
|
<div class="order-method-normal__btn-container">
|
||||||
|
<c:if test="${'Y' eq payInfo.cardUseAt}">
|
||||||
|
<button type="button" name="01" id="card" class="order-method-normal__btn gift_pay">
|
||||||
|
<div class="order-method-normal__icon order-method-normal__icon--card"></div>신용카드
|
||||||
|
</button>
|
||||||
|
</c:if>
|
||||||
|
<%--
|
||||||
|
<c:if test="${'Y' eq payInfo.rltmAcntUseAt}">
|
||||||
|
<button type="button" name="03" id="acount" class="order-method-normal__btn gift_pay">
|
||||||
|
<div class="order-method-normal__icon order-method-normal__icon--transfer"></div>실시간 계좌이체
|
||||||
|
</button>
|
||||||
|
</c:if>
|
||||||
|
--%>
|
||||||
|
<c:if test="${'Y' eq payInfo.virtlAcntUseAt}">
|
||||||
|
<button type="button" name="04" id="virtual" class="order-method-normal__btn">
|
||||||
|
<div class="order-method-normal__icon order-method-normal__icon--account"></div>가상계좌
|
||||||
|
</button>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${'Y' eq payInfo.virtlAcntEscwUseAt}">
|
||||||
|
<button type="button" name="05" id="escrow-virtual" class="order-method-normal__btn not_multi_pay">
|
||||||
|
<div class="order-method-normal__icon order-method-normal__icon--account"></div>가상계좌(에스크로)
|
||||||
|
</button>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${'Y' eq payInfo.nbkkUseAt}">
|
||||||
|
<button type="button" name="02" id="bank" class="order-method-normal__btn">
|
||||||
|
<div class="order-method-normal__icon order-method-normal__icon--deposit"></div>무통장
|
||||||
|
</button>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${'Y' eq payInfo.paycoUseAt}">
|
||||||
|
<button type="button" name="10" id="payco" class="order-method-normal__btn gift_pay">
|
||||||
|
<div class="order-method-normal__icon order-method-normal__icon--payco"></div>PAYCO
|
||||||
|
</button>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${'Y' eq payInfo.tpayUseAt}">
|
||||||
|
<button type="button" name="tosspay" id="tosspay" class="order-method-normal__btn gift_pay">
|
||||||
|
<div class="order-method-normal__icon order-method-normal__icon--toss"></div>토스페이
|
||||||
|
</button>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${'Y' eq payInfo.npayUseAt}">
|
||||||
|
<button type="button" name="naverpay" id="naverpay" class="order-method-normal__btn gift_pay">
|
||||||
|
<div class="order-method-normal__icon order-method-normal__icon--naver"></div>네이버페이
|
||||||
|
</button>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${'Y' eq payInfo.kpayUseAt}">
|
||||||
|
<button type="button" name="kakaopay" id="kakaopay" class="order-method-normal__btn gift_pay">
|
||||||
|
<div class="order-method-normal__icon order-method-normal__icon--kakao"></div>카카오페이
|
||||||
|
</button>
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
<div class="order-method-normal__content-wrapper">
|
||||||
|
<c:if test="${'Y' eq payInfo.cardUseAt}">
|
||||||
|
<div id="card-content" class="order-method-normal__content" style="display: none">
|
||||||
|
<div id="card-content-inner" class="order-method-normal__content-inner">
|
||||||
|
<p class="fyi gray-7 mt-10 ml-10 noempty">발급정보 : 카드매출전표(또는 휴대폰결제전표)로 대체합니다.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
<%--
|
||||||
|
<c:if test="${'Y' eq payInfo.rltmAcntUseAt}">
|
||||||
|
<div id="acount-content" class="order-method-normal__content" style="display: none">
|
||||||
|
<div id="acount-content-inner" class="order-method-normal__content-inner"></div>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
--%>
|
||||||
|
<c:if test="${'Y' eq payInfo.virtlAcntUseAt}">
|
||||||
|
<div id="virtual-content" class="order-method-normal__content" style="display: none">
|
||||||
|
<div id="virtual-content-inner" class="order-method-normal__content-inner"></div>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${'Y' eq payInfo.virtlAcntEscwUseAt}">
|
||||||
|
<div id="escrow-virtual-content" class="order-method-normal__content" style="display: none">
|
||||||
|
<div id="escrow-virtual-content-inner" class="order-method-normal__content-inner"></div>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${'Y' eq payInfo.nbkkUseAt}">
|
||||||
|
<div id="bank-content" class="order-method-normal__content" style="display: none">
|
||||||
|
<div id="bank-content-inner" class="order-method-normal__content-inner"></div>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${'Y' eq payInfo.paycoUseAt}">
|
||||||
|
<div id="payco-content" class="order-method-normal__content" style="display: none">
|
||||||
|
<div id="payco-content-inner" class="order-method-normal__content-inner">
|
||||||
|
<div class="infoBox noempty">
|
||||||
|
<h6 class="infoBox__title">PAYCO 간편결제 안내</h6>
|
||||||
|
<ol class="infoBox__list">
|
||||||
|
<li>PAYCO는 온/오프라인 쇼핑은 물론 송금, 멤버십 적립까지 가능한 통합 서비스입니다.</li>
|
||||||
|
<li>휴대폰과 카드 명의자가 동일해야 결제 가능하며, 결제금액 제한은 없습니다.
|
||||||
|
<br>- 지원카드: 모든 국내 신용/체크카드
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
<p class="textInfo noempty"><i class="icon icon_textInfo--sm"></i>발급정보 : 카드매출전표(또는 휴대폰결제전표)로 대체합니다.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${'Y' eq payInfo.tpayUseAt}">
|
||||||
|
<div id="acount-content" class="order-method-normal__content" style="display: none">
|
||||||
|
<div id="acount-content-inner" class="order-method-normal__content-inner">
|
||||||
|
<p class="fyi gray-7 mt-10 ml-10 noempty">발급정보 : 카드매출전표(또는 휴대폰결제전표)로 대체합니다.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
<%--
|
||||||
|
<c:if test="${'Y' eq payInfo.npayUseAt}">
|
||||||
|
<div id="naverpay-content" class="order-method-normal__content" style="display: none">
|
||||||
|
<div id="naverpay-content-inner" class="order-method-normal__content-inner">
|
||||||
|
<div class="noempty">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${'Y' eq payInfo.kpayUseAt}">
|
||||||
|
<div id="kakaopay-content" class="order-method-normal__content" style="display: none">
|
||||||
|
<div id="kakaopay-content-inner" class="order-method-normal__content-inner">
|
||||||
|
<div class="noempty">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
--%>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
<%-- 키움 결제 종료 --%>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||||
|
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
|
||||||
|
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
|
||||||
|
|
||||||
|
<%--
|
||||||
|
Class Name : OrdrReqstKiwoomPreR.jsp
|
||||||
|
Description : 키움 사전 승인 후 결제요청 폼
|
||||||
|
Modification Information
|
||||||
|
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
------- -------- ---------------------------
|
||||||
|
2026-03-23 이경숙 최초 생성
|
||||||
|
--%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title>결제 사전 승인</title>
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
|
||||||
|
<% System.out.println("=====RESERVEDSTRING===="+request.getParameter("RESERVEDSTRING"));%>
|
||||||
|
<script src="<c:url value='/pc/vendor/jquery-3.7.1.min.js'/>"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
window.location.href='/sopmal/ordr/selectMbrPurchsForm';
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Reference in New Issue
Block a user