Merge branch 'tolag3'
This commit is contained in:
parent
842b3426c4
commit
112eb5a640
7
pom.xml
7
pom.xml
@ -538,6 +538,13 @@
|
||||
<artifactId>JSON-java</artifactId>
|
||||
<version>1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>kr.co.linkhub</groupId>
|
||||
<artifactId>barocert-sdk</artifactId>
|
||||
<version>1.5.0</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
|
||||
|
||||
188
src/main/java/kcc/let/uat/uia/web/SocialCertController.java
Normal file
188
src/main/java/kcc/let/uat/uia/web/SocialCertController.java
Normal file
@ -0,0 +1,188 @@
|
||||
package kcc.let.uat.uia.web;
|
||||
|
||||
import org.apache.poi.poifs.crypt.Decryptor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import com.barocert.BarocertException;
|
||||
import com.barocert.kakaocert.KakaocertService;
|
||||
import com.barocert.navercert.NavercertService;
|
||||
|
||||
/**
|
||||
* @packageName : kcc.let.uat.uia.web
|
||||
* @fileName : SocialCertController.java
|
||||
* @author : JunHo Lee
|
||||
* @date : 2024.11.21
|
||||
* @description : 소셜 로그인(네이버, 카카오)
|
||||
* ===========================================================
|
||||
* DATE AUTHOR NOTE
|
||||
* -----------------------------------------------------------
|
||||
* 2024.11.21 JunHo Lee 최초 생성
|
||||
*/
|
||||
@Controller
|
||||
public class SocialCertController {
|
||||
|
||||
@Autowired
|
||||
private NavercertService navercertService;
|
||||
|
||||
@Autowired
|
||||
private KakaocertService kakaocertService;
|
||||
|
||||
@Value("#{NAVER_CONFIG.ClientCode}")
|
||||
private String NaverClientCode;
|
||||
|
||||
@Value("#{KAKAO_CONFIG.ClientCode}")
|
||||
private String KakaoClientCode;
|
||||
|
||||
/**
|
||||
* 본인인증 요청
|
||||
*
|
||||
* @param clientCode
|
||||
* 이용기관코드
|
||||
* @param identity
|
||||
* 본인인증 요청정보
|
||||
* @return ResponseVerify
|
||||
* 본인인증 요청 응답정보
|
||||
* @throws BarocertException
|
||||
*/
|
||||
@RequestMapping(value = "/web/user/cert/nCert.do")
|
||||
public String requestIdentity(Model m) throws BarocertException {
|
||||
|
||||
// 본인인증 요청 정보 객체
|
||||
com.barocert.navercert.identity.Identity identity = new com.barocert.navercert.identity.Identity();
|
||||
|
||||
// 수신자 휴대폰번호 - 11자 (하이픈 제외)
|
||||
identity.setReceiverHP(navercertService.encrypt("01030266269"));
|
||||
// 수신자 성명 - 80자
|
||||
identity.setReceiverName(navercertService.encrypt("이준호"));
|
||||
// 수신자 생년월일 - 8자 (yyyyMMdd)
|
||||
identity.setReceiverBirthday(navercertService.encrypt("19890202"));
|
||||
|
||||
// 고객센터 연락처 - 최대 12자
|
||||
identity.setCallCenterNum("1600-9854");
|
||||
// 인증요청 만료시간 - 최대 1,000(초)까지 입력 가능
|
||||
identity.setExpireIn(1000);
|
||||
|
||||
// AppToApp 인증요청 여부
|
||||
// true - AppToApp 인증방식, false - 푸시(Push) 인증방식
|
||||
identity.setAppUseYN(false);
|
||||
|
||||
try {
|
||||
com.barocert.navercert.identity.IdentityReceipt request = navercertService.requestIdentity(NaverClientCode, identity);
|
||||
|
||||
// Boolean test = navercertService.isUseStaticIP();
|
||||
|
||||
System.out.println("ReceiptID :: " + request.getReceiptID());
|
||||
System.out.println("Scheme :: " + request.getScheme());
|
||||
System.out.println("MarketUrl :: " + request.getMarketUrl());
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 본인인증 서명검증
|
||||
* 인증되었을경우 State : 1
|
||||
* 인증안되었을경우 State : 0
|
||||
*/
|
||||
// if(status.getState() == 0) {
|
||||
//
|
||||
// }else if(status.getState() == 1) {
|
||||
//
|
||||
// }
|
||||
|
||||
|
||||
//서명이 되지 않았을경우
|
||||
com.barocert.navercert.identity.IdentityStatus status = navercertService.getIdentityStatus(NaverClientCode, request.getReceiptID());
|
||||
|
||||
//서명이 되었을경우
|
||||
com.barocert.navercert.identity.IdentityStatus status2 = navercertService.getIdentityStatus(NaverClientCode, request.getReceiptID());
|
||||
|
||||
com.barocert.navercert.identity.IdentityResult result = navercertService.verifyIdentity(NaverClientCode, request.getReceiptID());
|
||||
|
||||
System.out.println("Ci :: " + result.getCi());
|
||||
System.out.println("ReceiptID :: " + result.getReceiptID());
|
||||
System.out.println("ReceiverDay :: " + result.getReceiverDay());
|
||||
System.out.println("ReceiverEmail :: " + result.getReceiverEmail());
|
||||
System.out.println("ReceiverForeign :: " + result.getReceiverForeign());
|
||||
System.out.println("ReceiverGender :: " + result.getReceiverGender());
|
||||
System.out.println("ReceiverHP :: " + result.getReceiverHP());
|
||||
System.out.println("ReceiverName :: " + result.getReceiverName());
|
||||
System.out.println("ReceiverYear :: " + result.getReceiverYear());
|
||||
System.out.println("SignedData :: " + result.getSignedData());
|
||||
System.out.println("State :: " + result.getState());
|
||||
|
||||
|
||||
m.addAttribute("result", result);
|
||||
} catch (BarocertException ne) {
|
||||
m.addAttribute("Exception", ne);
|
||||
return "exception";
|
||||
}
|
||||
|
||||
return "uat/uia/NCert";
|
||||
}
|
||||
|
||||
// @RequestMapping(value = "navercert/requestIdentity", method = RequestMethod.GET)
|
||||
@RequestMapping(value = "/web/user/cert/kCert.do")
|
||||
public String requestIdentity_k(Model m) throws BarocertException {
|
||||
|
||||
// 본인인증 요청 정보 객체
|
||||
com.barocert.kakaocert.identity.Identity identity = new com.barocert.kakaocert.identity.Identity();
|
||||
|
||||
// 수신자 휴대폰번호 - 11자 (하이픈 제외)
|
||||
identity.setReceiverHP(kakaocertService.encrypt("01012341234"));
|
||||
// 수신자 성명 - 80자
|
||||
identity.setReceiverName(kakaocertService.encrypt("홍길동"));
|
||||
// 수신자 생년월일 - 8자 (yyyyMMdd)
|
||||
identity.setReceiverBirthday(kakaocertService.encrypt("19700101"));
|
||||
|
||||
// 인증요청 메시지 제목 - 최대 40자
|
||||
identity.setReqTitle("본인인증 요청 메시지 제목");
|
||||
// 커스텀 메시지 - 최대 500자
|
||||
identity.setExtraMessage(kakaocertService.encrypt("본인인증 커스텀 메시지"));
|
||||
// 인증요청 만료시간 - 최대 1,000(초)까지 입력 가능
|
||||
identity.setExpireIn(1000);
|
||||
// 서명 원문 - 최대 40자 까지 입력가능
|
||||
identity.setToken(kakaocertService.encrypt("본인인증 요청 원문"));
|
||||
|
||||
// AppToApp 인증요청 여부
|
||||
// true - AppToApp 인증방식, false - Talk Message 인증방식
|
||||
identity.setAppUseYN(false);
|
||||
|
||||
|
||||
try {
|
||||
com.barocert.kakaocert.identity.IdentityReceipt result = kakaocertService.requestIdentity(KakaoClientCode, identity);
|
||||
m.addAttribute("result", result);
|
||||
} catch (BarocertException ke) {
|
||||
m.addAttribute("Exception", ke);
|
||||
return "exception";
|
||||
}
|
||||
|
||||
return "uat/uia/KCert";
|
||||
}
|
||||
|
||||
|
||||
|
||||
private String decryptNaver() {
|
||||
|
||||
//복호화 키
|
||||
String secretKey = "LqZ8a…";
|
||||
// 초기화 벡터 (고정값)
|
||||
String iv = "6C2Syq8t…";
|
||||
// 암호문
|
||||
String cipherText = "6MXhzI8yDVdCDktJ/Qdz9S…";
|
||||
|
||||
try {
|
||||
// 복호화
|
||||
// Decryptor decryptor = new Decryptor();
|
||||
// String decryptedCI = decryptor.decrypt(secretKey, iv, cipherText);
|
||||
// System.out.println(decryptedCI);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -21,6 +21,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
@ -45,12 +46,9 @@ import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
|
||||
import seed.manager.site.service.ManagerSiteManagerService;
|
||||
import seed.manager.site.service.ManagerSiteMenuManagerService;
|
||||
import seed.manager.site.service.ManagerSiteMenuService;
|
||||
import seed.manager.site.service.ManagerSiteService;
|
||||
import seed.manager.smartmenu.service.ManagerSmartMenuManagerService;
|
||||
import seed.manager.smartmenu.service.ManagerSmartMenuSetService;
|
||||
import kcc.com.cmm.service.EgovFileMngService;
|
||||
import kcc.com.cmm.service.EgovFileMngUtil;
|
||||
import kcc.com.cmm.service.FileVO;
|
||||
import seed.common.service.CommonErrorLogsService;
|
||||
import seed.common.service.CommonFileDownLoadService;
|
||||
import seed.common.service.CommonFileService;
|
||||
@ -77,11 +75,17 @@ import seed.manager.popup.service.ManagerPopupSetService;
|
||||
import seed.manager.quick.service.ManagerQuickDataService;
|
||||
import seed.manager.quick.service.ManagerQuickManagerService;
|
||||
import seed.manager.quick.service.ManagerQuickSetService;
|
||||
import seed.manager.site.service.ManagerSiteManagerService;
|
||||
import seed.manager.site.service.ManagerSiteMenuManagerService;
|
||||
import seed.manager.site.service.ManagerSiteMenuService;
|
||||
import seed.manager.site.service.ManagerSiteService;
|
||||
import seed.manager.smartmenu.service.ManagerSmartMenuManagerService;
|
||||
import seed.manager.smartmenu.service.ManagerSmartMenuSetService;
|
||||
import seed.manager.survey.service.ManagerSurveyManagerService;
|
||||
import seed.manager.survey.service.ManagerSurveySetService;
|
||||
import seed.manager.visual.service.ManagerVisualRelationDataService;
|
||||
import seed.manager.visual.service.ManagerVisualDataService;
|
||||
import seed.manager.visual.service.ManagerVisualManagerService;
|
||||
import seed.manager.visual.service.ManagerVisualRelationDataService;
|
||||
import seed.manager.visual.service.ManagerVisualRelationIconService;
|
||||
import seed.manager.visual.service.ManagerVisualRelationSetService;
|
||||
import seed.manager.visual.service.ManagerVisualSetService;
|
||||
@ -259,9 +263,18 @@ public class CommonController {
|
||||
@Autowired
|
||||
private ServletContext servletContext;
|
||||
|
||||
@Value("#{config['root.path']}")
|
||||
@Resource(name = "EgovFileMngService")
|
||||
private EgovFileMngService fileMngService;
|
||||
|
||||
@Resource(name = "EgovFileMngUtil")
|
||||
private EgovFileMngUtil fileUtil;
|
||||
|
||||
// @Value("#{config['root.path']}")
|
||||
// private String rootPath;
|
||||
@Value("#{globalSettings['root.path']}")
|
||||
private String rootPath;
|
||||
|
||||
|
||||
@Value("#{config['message.file.size']}")
|
||||
private String messageFileSize;
|
||||
|
||||
@ -3827,7 +3840,8 @@ public class CommonController {
|
||||
|
||||
@RequestMapping(value="/common/proc/{siteIdx}/editor/editorFileReg.do", method=RequestMethod.POST)
|
||||
public ModelAndView setEditorFileReg(HttpSession session, Map<String, Object> map, MultipartFile up_file,
|
||||
@PathVariable(value="siteIdx") String siteIdx){
|
||||
@PathVariable(value="siteIdx") String siteIdx
|
||||
, final MultipartHttpServletRequest multiRequest) throws Exception{
|
||||
|
||||
SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||
|
||||
@ -3847,32 +3861,45 @@ public class CommonController {
|
||||
try{
|
||||
|
||||
//오늘날짜로 폴더 생성(MD5로 폴더 변환하여 생성)
|
||||
SeedUtils.setSeedMkDirs(rootPath + "/" + siteIdx + "/upload/editor");
|
||||
|
||||
String reFileName = "editorImg_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
|
||||
|
||||
File makeFile = new File(rootPath + "/" + siteIdx + "/upload/editor/" +
|
||||
reFileName + up_file.getOriginalFilename().substring(up_file.getOriginalFilename().lastIndexOf(".")));
|
||||
up_file.transferTo(makeFile);
|
||||
// SeedUtils.setSeedMkDirs(rootPath + "/" + siteIdx + "/upload/editor");
|
||||
//
|
||||
// String reFileName = "editorImg_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
|
||||
//
|
||||
// File makeFile = new File(rootPath + "/" + siteIdx + "/upload/editor/" +
|
||||
// reFileName + up_file.getOriginalFilename().substring(up_file.getOriginalFilename().lastIndexOf(".")));
|
||||
// up_file.transferTo(makeFile);
|
||||
|
||||
//FTP 전송
|
||||
SeedFtpType seedFtpType = new SeedFtpType();
|
||||
//WEB 서버의 경로
|
||||
seedFtpType.setDestFilePath(siteIdx + "/upload/editor");
|
||||
//WAS 서버의 경로
|
||||
seedFtpType.setSrcFilePath(rootPath + "/" + siteIdx + "/upload/editor");
|
||||
//WAS 파일명
|
||||
seedFtpType.setFileName(reFileName + up_file.getOriginalFilename().substring(up_file.getOriginalFilename().lastIndexOf(".")));
|
||||
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||
seedFtpType.setFtpType("regFile");
|
||||
seedFtpType.setSeedFtp();
|
||||
// SeedFtpType seedFtpType = new SeedFtpType();
|
||||
// //WEB 서버의 경로
|
||||
// seedFtpType.setDestFilePath(siteIdx + "/upload/editor");
|
||||
// //WAS 서버의 경로
|
||||
// seedFtpType.setSrcFilePath(rootPath + "/" + siteIdx + "/upload/editor");
|
||||
// //WAS 파일명
|
||||
// seedFtpType.setFileName(reFileName + up_file.getOriginalFilename().substring(up_file.getOriginalFilename().lastIndexOf(".")));
|
||||
// //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
|
||||
// seedFtpType.setFtpType("regFile");
|
||||
// seedFtpType.setSeedFtp();
|
||||
|
||||
map.put("success", "1");
|
||||
map.put("url", "/site/"+siteIdx+"/upload/editor/"+reFileName + up_file.getOriginalFilename().substring(up_file.getOriginalFilename().lastIndexOf(".")));
|
||||
|
||||
//
|
||||
|
||||
String atchFileId = "";
|
||||
String isThumbFile = "";
|
||||
final Map<String, MultipartFile> files = multiRequest.getFileMap();
|
||||
if (!files.isEmpty()) {
|
||||
|
||||
List<FileVO> result = fileUtil.parseFileInf(files, "EDT_", 0, atchFileId, "", isThumbFile);
|
||||
|
||||
atchFileId = fileMngService.insertFileInfs(result);
|
||||
map.put("url", "/uss/ion/pwm/getImage.do"+"?atchFileId="+atchFileId+"&fileSn=");
|
||||
}
|
||||
|
||||
map.put("alt", up_file.getOriginalFilename().toString());
|
||||
map.put("title", up_file.getOriginalFilename().toString().substring(0, up_file.getOriginalFilename().toString().lastIndexOf(".")));
|
||||
|
||||
}catch(IOException e){
|
||||
}catch(Exception e){
|
||||
log.error("CHECK ERROR:",e);
|
||||
}
|
||||
|
||||
|
||||
@ -32,4 +32,6 @@
|
||||
url="jdbc:oracle:thin:@192.168.0.60:1523/XE"
|
||||
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
|
||||
/>
|
||||
<!-- 심볼릭링크 걸린 폴더를 tomcat이 허용하도록 설정(보안상 기본값 false) -->
|
||||
<Resources allowLinking="true"/>
|
||||
</Context>
|
||||
|
||||
@ -4,10 +4,13 @@
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xmlns:mvc="http://www.springframework.org/schema/mvc"
|
||||
xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
|
||||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
|
||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
|
||||
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">
|
||||
xmlns:util="http://www.springframework.org/schema/util"
|
||||
xsi:schemaLocation="
|
||||
http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd
|
||||
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd
|
||||
http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd
|
||||
http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd">
|
||||
|
||||
<!-- 패키지 내 Controller, Service, Repository 클래스의 auto detect를 위한 mvc 설정 -->
|
||||
<context:component-scan base-package="egovframework, kcc, seed ">
|
||||
@ -105,4 +108,40 @@
|
||||
<mvc:resources mapping="/html/**" location="/html/" />
|
||||
<mvc:resources mapping="/innorix/**" location="/innorix/" />
|
||||
|
||||
|
||||
|
||||
<!-- 소셜인증(네이버, 카카오) -->
|
||||
<context:component-scan base-package="com.barocert.example" />
|
||||
|
||||
<util:properties id="NAVER_CONFIG">
|
||||
<prop key="LinkID">KOFAIR_BC</prop>
|
||||
<prop key="SecretKey">r5fQ5qFzWzolkxMBpXyOXwy1L17RJN01tjotQ7Kzhuk=</prop>
|
||||
<prop key="ClientCode">024110000010</prop>
|
||||
<prop key="IsIPRestrictOnOff">true</prop>
|
||||
<prop key="UseStaticIP">true</prop>
|
||||
</util:properties>
|
||||
|
||||
<bean id="navercertService" class="com.barocert.navercert.NavercertServiceImp">
|
||||
<property name="linkID" value="#{NAVER_CONFIG.LinkID}"/>
|
||||
<property name="secretKey" value="#{NAVER_CONFIG.SecretKey}"/>
|
||||
<property name="IPRestrictOnOff" value="#{NAVER_CONFIG.IsIPRestrictOnOff}"/>
|
||||
<property name="useStaticIP" value="#{NAVER_CONFIG.UseStaticIP}"/>
|
||||
</bean>
|
||||
|
||||
<util:properties id="KAKAO_CONFIG">
|
||||
<prop key="LinkID">KOFAIR_BC</prop>
|
||||
<prop key="SecretKey">r5fQ5qFzWzolkxMBpXyOXwy1L17RJN01tjotQ7Kzhuk=</prop>
|
||||
<prop key="ClientCode">024110000009</prop>
|
||||
<prop key="IsIPRestrictOnOff">true</prop>
|
||||
<prop key="UseStaticIP">true</prop>
|
||||
</util:properties>
|
||||
|
||||
<bean id="kakaocertService" class="com.barocert.kakaocert.KakaocertServiceImp">
|
||||
<property name="linkID" value="#{KAKAO_CONFIG.LinkID}"/>
|
||||
<property name="secretKey" value="#{KAKAO_CONFIG.SecretKey}"/>
|
||||
<property name="IPRestrictOnOff" value="#{KAKAO_CONFIG.IsIPRestrictOnOff}"/>
|
||||
<property name="useStaticIP" value="#{KAKAO_CONFIG.UseStaticIP}"/>
|
||||
</bean>
|
||||
<!-- 소셜인증(네이버, 카카오) 끝 -->
|
||||
|
||||
</beans>
|
||||
9
src/main/webapp/WEB-INF/jsp/uat/uia/KCert.jsp
Normal file
9
src/main/webapp/WEB-INF/jsp/uat/uia/KCert.jsp
Normal file
@ -0,0 +1,9 @@
|
||||
<%@ 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="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
|
||||
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<!DOCTYPE html>
|
||||
kakaoCert
|
||||
20
src/main/webapp/WEB-INF/jsp/uat/uia/NCert.jsp
Normal file
20
src/main/webapp/WEB-INF/jsp/uat/uia/NCert.jsp
Normal file
@ -0,0 +1,20 @@
|
||||
<%@ 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="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
|
||||
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<!DOCTYPE html>
|
||||
<div id="content">
|
||||
<p class="heading1">Response</p>
|
||||
<br/>
|
||||
<fieldset class="fieldset1">
|
||||
<legend>${requestScope['javax.servlet.forward.request_uri']}</legend>
|
||||
<ul>
|
||||
<li>접수아이디 (ReceiptID) : ${result.receiptID}</li>
|
||||
<li>앱스킴 (Scheme) : ${result.scheme}</li>
|
||||
<li>앱다운로드URL (MarketURL) : ${result.marketUrl}</li>
|
||||
</ul>
|
||||
</fieldset>
|
||||
</div>
|
||||
Loading…
Reference in New Issue
Block a user