웹에서 약관(서비스이용약관)을 연동하기 위해 가이드 합니다.
웹에서 약관(서비스) 연동은 웹에 런처 실행의 정책 및 동선에 따라 연동에 대해 선택 할 수 있습니다.런처에서 게임실행 시 약관(서비스이용약관) 동의를 받습니다.웹에서 런처실행 전 약관(서비스이용약관) 동의를 받아야 할 경우에 연동하면 됩니다.
01. CDN 라이브러리
•
환경 별 CDN 도메인 정보
•
CDN 라이브러리 Path 정보
lib Path |
/libs/stove-js-service/latest/stove-terms.js |
02. 라이브러리 연결하기
•
라이브러리 script 위치
◦
script 태그 위치는 head 태그 또는 body 태그 가장 하단에 정의 합니다.
defer 옵션
script 태그 옵션은 defer로 설정해서
모든 컨텐츠가 다운로드 완료된 후 script가 실행되도록 합니다.
A. head 태그 정의
•
예시코드
<html>
<head>
<meta charset="UTF-8">
<title>Stove Terms</title>
<script src="https://js-cdn.gate8.com/libs/stove-js-service/latest/stove-terms.js" defer />
<script>
function checkTermsAgreeState() {
// 약관 상태 체크 코드
}
</script>
</head>
<body>
<button onclick="checkTermsAgreeState">약관 동의 체크</button>
</body>
</html>
HTML
복사
B. body 하단 정의
•
예시 코드
<html>
<head>
<meta charset="UTF-8">
<title>Stove Terms</title>
<script>
function checkTermsAgreeState() {
// 약관 상태 체크 코드
}
</script>
</head>
<body>
<button onclick="checkTermsAgreeState">약관 동의 체크</button>
<script src="https://js-cdn.gate8.com/libs/stove-js-service/latest/stove-terms.js" defer />
</body>
</html>
HTML
복사
03. 약관 체크
•
약관체크 메서드(stoveTerms.checkAgreeState({}))를 통해서 사용자의 약관(서비스이용약관) 동의 여부 상태를 확인하기 위해 사용됩니다.
A. Parameter
Parameter | Type | Requirement | Default Value | Description |
service_id | String | Y | - | 서비스 기본정보인 game_id 을 전달하면 됩니다.예시) service_id=‘STOVE_EPIC7’ |
viewarea_id | String | Y | SVC_AG | 약관(서비스이용동의)체크- 공홈에서 서비스 이용약관 연동 시 SVC_AG 코드가 디폴드 값 입니다. |
nation | String | Y | - | nation 매개변수는 필수값이며, 대문자 국가 코드를 전달합니다.- e.g.) KR |
B. Example
•
약관의 checkAgreeState 메서드를 호출하면 응답값으로 Promise 객체의 then 과 catch 메서드를 통해 결과값을 받을 수 있습니다.
window.stoveJsService.stoveTerms.checkAgreeState({
service_id: 'STOVE_EPIC7',
viewarea_id: 'SVC_AG',
nation: 'KR'
})
.then(isAgreeState => {
console.log('약관 동의 유무 체크 성공 시 처리');
})
.catch(error => {
console.log('약관 동의 유무 체크 실패 시 처리');
});
JavaScript
복사
•
사용예제
<html>
<head>
<meta charset="UTF-8">
<title>Stove Terms</title>
<script src="https://js-cdn.gate8.com/libs/stove-js-service/latest/stove-terms.js" defer />
<script>
function initializeJsService() {
window.stoveJsService = window.stoveJsService || {};
}
function errorHandler( errorCode ) {
switch (errorCode) {
case 40103:
// 서비스 이용 시간이 너무 오래되었습니다. 다시 로그인해 주세요.break;
case 70051:
// 요청 정보가 올바르지 않습니다. 입력값을 확인해 주세요.break;
case 70800:
// 등록된 약관이 존재하지 않습니다.break;
case 'API 리턴 오류 코드':
// api 호출 시 발생한 오류에 대한 처리가 필요한 경우 case 추가 정의break;
default:
// 기타 오류 공통 처리break;
}
}
function moveToExternalWeb() {
// 약관 미동의 시 통합약관 페이지로 이동합니다.window.location.href = 'https://policy.gate8.com/?inflow_path=STOVE_EPIC7&game_id=STOVE_EPIC7';
}
function checkTermsAgreeState() {
if (!window.stoveJsService.stoveTerms) {
alert('현재 약관 동의 상태 조회 준비가 되어 있지 않습니다!')
return;
}
window.stoveJsService.stoveTerms.checkAgreeState({
service_id: 'STOVE_EPIC7',
viewarea_id: 'SVC_AG',
nation: 'KR'
}).then(isAgreeState => {
// 약관 동의 상태 조회 성공 시 처리
}).catch(error => {
// 약관 동의 상태 조회 실패 시 처리errorHandler(error.code)
});
}
window.addEventListener('DOMContentLoaded', initializeJsService);
</script>
</head>
<body>
<button onclick="checkTermsAgreeState">약관 상태 체크</button>
</body>
</html>
HTML
복사
약관 체크 후 약관(서비스이용약관)이 동의 되지 않은 상태(false) 라면?
- 약관 동의를 받기 위해 통합약관 페이지로 이동하여 약관 동의를 받도록 처리 합니다.
- 통합 약관 연동
C. Error Code
Error Code | Constant | Description |
40103 | EXPIRED_ACCESS_TOKEN | 토큰이 만료되었습니다. |
70051 | INVALID_REQUEST | 잘못된 입력값입니다. |
70800 | NOT_EXIST_TERMS | 약관이 존재하지 않습니다. |
70804 | GS_NETWORK_ERROR | GS 연동 네트워크 에러가 발생했습니다. |
70805 | GUID_NETWORK_ERROR | guid 연동 네트워크 에러가 발생했습니다. |
70806 | NOT_EXIST_SERVICE_ID | service id 정보를 찾을 수 없습니다. |
70807 | UNKNOWN_GUID_SERVER | guid 서비스에 문제가 있습니다. 잠시 후 다시 시도해 주세요. |
70870 | NOT_EXIST_CALLER_ID | caller-id 값을 확인해주세요. |
70871 | NOT_EXIST_CALLER_DETAIL | caller-detail 값을 확인해주세요. |