api 사용가이드 작성중

This commit is contained in:
hehihoho3@gmail.com 2025-09-10 14:12:43 +09:00
parent f4c137a8c7
commit d201592372
13 changed files with 1330 additions and 852 deletions

View File

@ -250,11 +250,6 @@ public class EgovMypageRESTAPIController{
return "web/api/apiSpec";
}
/**
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value="/web/api/apiAtSpec.do")
public String apiAtSpec(ModelMap model)
throws Exception {
@ -265,9 +260,28 @@ public class EgovMypageRESTAPIController{
}
model.addAttribute("loginVO", loginVO);
return "web/api/at/apiSpec";
// return "web/api/apiAtSpec";
return "web/api/apiAtSpec";
}
/**
* @param model
* @return
* @throws Exception
*/
/* @RequestMapping(value="/web/api/apiAtSpec.do")
public String apiAtSpec(ModelMap model)
throws Exception {
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
if(loginVO == null) {
return "redirect:/web/user/login/login.do";
}
model.addAttribute("loginVO", loginVO);
return "web/api/at/apiSpec";
}*/
/**
* @param model
* @return

View File

@ -36,6 +36,11 @@
<link rel="stylesheet" href="/publish/js/datepicker/classic.css">
<link rel="stylesheet" href="/publish/js/datepicker/classic.date.css">
<link rel="stylesheet" href="/publish/js/highlight/styles/default.min.css">
<link rel="stylesheet" href="/publish/js/highlight/styles/arta.css">
<script type="text/javascript" src="/publish/js/jquery-3.5.0.js"></script>
<script type="text/javascript" src="/publish/js/jquery.mCustomScrollbar.concat.min.js"></script>
<script type="text/javascript" src="/publish/js/common.js?date=202507210001"></script>
@ -80,6 +85,9 @@
<!-- Uncaught TypeError: e.widget is not a function로 인해 가장 마지막에 선언_이준호_220510 -->
<script type="text/javascript" src="/dist/js/tabulator/jquery_wrapper.js"></script>
<script type="text/javascript" src="/publish/js/highlight/highlight.min.js"></script>
<%-- 20240110 matomo 사용 안함으로 인하여 주석처리 함
<c:if test="${fn:contains(pageContext.request.requestURL, 'munjaon.co.kr')}">

View File

@ -0,0 +1,178 @@
<%@ 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"%>
<head>
</head>
<script language=javascript>
$(document).ready(function(){
// 현재 url 추출
/* var url = window.location.pathname;
// 현재 url에서 uri만 추출
var lastPart = url.split('/').pop();
$('.tabType4 .tab').each(function(index) {
var $btn = $(this).children("button");
var id = $btn.attr("id");
// 개발가이드 그룹
if (id === 'apiSpec' && /api.*Spec\.do$/.test(lastPart)) {
$(this).addClass('active');
}
// 나머지 기본 처리
else if (lastPart.indexOf(id) > -1) {
$(this).addClass('active');
}
}); */
});
hljs.highlightAll();
</script>
<style>
.padding_add > p
{
padding-left: 30px;
padding-bottom: 8px;
}
.padding_add > div > p
{
padding-left: 60px;
padding-bottom: 8px;
}
</style>
<!-- content 영역 -->
<div class="inner">
<!-- send top -->
<div class="send_top">
<c:import url="./top_tepMenu.jsp" /><!--// tab button -->
<!-- tab button -->
<div class="api_guide_cont current">
<div class="heading">
<h2>REST API 개발 가이드</h2>
</div>
<!--// sub tab button -->
<c:import url="./top_subTepMenu.jsp" />
<!-- REST API 개발 가이드 > 문자 -->
<%-- <div class="api_guide current" id="tab5_1">
<div class="list_tab_wrap2 type3">
<!-- tab button -->
<ul class="list_tab">
<li class="tab active"><button type="button" onclick="TabType1(this,'1')">문자보내기</button></li>
<li class="tab"><button type="button" onclick="TabType1(this,'2')" id="btnEstimate">문자보내기(대량)</button></li>
<li class="tab"><button type="button" onclick="TabType1(this,'3')" id="btnEstimate3">전송내역조회</button></li>
<li class="tab"><button type="button" onclick="TabType1(this,'4')" id="btnEstimate4">전송결과조회(상세)</button></li>
<li class="tab"><button type="button" onclick="TabType1(this,'5')" id="btnEstimate5">발송가능건수</button></li>
</ul><!--// tab button -->
</div>
<!-- 문자보내기 -->
<div class="fee_cont current" id="tab1_1">
<c:import url="./msg/apiSpec_tab1.jsp" />
</div>
<!-- 문자보내기(대량) -->
<div class="fee_cont" id="tab1_2">
<c:import url="./msg/apiSpec_tab2.jsp" />
</div>
<!-- 전송내역조회 -->
<div class="fee_cont" id="tab1_3">
<c:import url="./msg/apiSpec_tab3.jsp" />
</div>
<!-- 전송결과조회(상세) -->
<div class="fee_cont" id="tab1_4">
<c:import url="./msg/apiSpec_tab4.jsp" />
</div>
<!-- 발송가능건수 -->
<div class="fee_cont" id="tab1_5">
<c:import url="./msg/apiSpec_tab5.jsp" />
</div>
</div> --%>
<!-- //REST API 개발 가이드 > 문자 -->
<!-- REST API 개발 가이드 > 알림톡 -->
<div class="api_guide current" id="tab5_1">
<div class="list_tab_wrap2 type3">
<!-- tab button -->
<ul class="list_tab">
<li class="tab active"><button type="button" onclick="TabType1(this,'6');">채널 ID 조회</button></li>
<li class="tab"><button type="button" onclick="TabType1(this,'7');">템플릿 ID 조회</button></li>
<li class="tab"><button type="button" onclick="TabType1(this,'8');">템플릿상세조회</button></li>
<li class="tab"><button type="button" onclick="TabType1(this,'9');">알림톡 보내기</button></li>
<li class="tab"><button type="button" onclick="TabType1(this,'11');">전송내역조회</button></li>
<li class="tab"><button type="button" onclick="TabType1(this,'12');">전송내역조회(상세)</button></li>
<li class="tab"><button type="button" onclick="TabType1(this,'13');">발송가능건수</button></li>
</ul><!--// tab button -->
</div>
<!-- 채널 ID 조회 -->
<div class="fee_cont current" id="tab1_6">
<c:import url="./at/apiSpec_tab1.jsp" />
</div>
<!-- 템플릿 ID 조회 -->
<div class="fee_cont" id="tab1_7">
<c:import url="./at/apiSpec_tab2.jsp" />
</div>
<!-- 템플릿상세조회 -->
<div class="fee_cont" id="tab1_8">
<c:import url="./at/apiSpec_tab3.jsp" />
</div>
<!-- 알림톡 보내기 -->
<div class="fee_cont" id="tab1_9">
<c:import url="./at/apiSpec_tab4.jsp" />
</div>
<!-- 전송내역조회 -->
<div class="fee_cont" id="tab1_11">
<c:import url="./at/apiSpec_tab6.jsp" />
</div>
<!-- 전송내역조회(상세) -->
<div class="fee_cont" id="tab1_12">
<c:import url="./at/apiSpec_tab7.jsp" />
</div>
<!-- 발송가능건수 -->
<div class="fee_cont" id="tab1_13">
<c:import url="./at/apiSpec_tab8.jsp" />
</div>
</div>
<!-- //REST API 개발 가이드 > 알림톡 -->
<!-- REST API 개발 가이드 > 친구톡 -->
<!-- <div class="api_guide kakao" id="tab5_3">
<div class="list_tab_wrap2 type3">
<ul class="list_tab">
<li class="tab active"><button type="button" onclick="TabType2(this,'6');">채널 ID 조회</button></li>
<li class="tab"><button type="button" onclick="TabType2(this,'7');">친구톡 보내기</button></li>
<li class="tab"><button type="button" onclick="TabType2(this,'8');">전송내역조회</button></li>
<li class="tab"><button type="button" onclick="TabType2(this,'9');">전송내역조회(상세)</button></li>
<li class="tab"><button type="button" onclick="TabType2(this,'10');">발송가능건수</button></li>
</ul>
</div>
</div> -->
<!-- //REST API 개발 가이드 > 친구톡 -->
</div>
</div><!--// send top -->
</div>

View File

@ -2,11 +2,21 @@
<%@ 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"%>
<head>
</head>
<script language=javascript>
$(document).ready(function(){
$('.topBtn').click(function(){
location.href=$(this).data('info');
});
});
hljs.highlightAll();
</script>
<style>
@ -25,6 +35,7 @@ $(document).ready(function(){
</style>
<!-- content 영역 -->
<div class="inner">
<!-- send top -->
@ -38,14 +49,8 @@ $(document).ready(function(){
<h2>REST API 개발 가이드</h2>
</div>
<!--사용안내 내용-->
<div class="pay_tab_wrap">
<ul class="tabType1">
<li class="tab active"><button type="button" onclick="TabType5(this,'1');TabType2(this,'1');$('.list_tab li:nth-child(1)').addClass('active').siblings().removeClass('active');">문자</button></li>
<li class="tab"><button type="button" onclick="TabType5(this,'2');TabType2(this,'6');$('.list_tab li:nth-child(1)').addClass('active').siblings().removeClass('active');">알림톡</button></li>
<li class="tab"><button type="button" onclick="TabType5(this,'3');TabType2(this,'13');$('.list_tab li:nth-child(1)').addClass('active').siblings().removeClass('active');">친구톡</button></li>
</ul>
</div>
<!--// sub tab button -->
<c:import url="./top_subTepMenu.jsp" />
<!-- REST API 개발 가이드 > 문자 -->
<div class="api_guide current" id="tab5_1">
@ -60,15 +65,11 @@ $(document).ready(function(){
</ul><!--// tab button -->
</div>
<!-- 문자보내기 -->
<!-- 문자보내기 -->
<!-- 문자보내기 -->
<div class="fee_cont current" id="tab1_1">
<c:import url="./msg/apiSpec_tab1.jsp" />
</div>
<!-- 문자보내기(대량) -->
<!-- 문자보내기(대량) -->
<!-- 문자보내기(대량) -->
<div class="fee_cont" id="tab1_2">
<c:import url="./msg/apiSpec_tab2.jsp" />

View File

@ -7,7 +7,6 @@
<!-- <li>- 발신번호는 문자온 사이트를 통해 사전등록 후 이용하실 수 있습니다.(마이페이지-발신번호 관리 메뉴 이용)</li> -->
<!-- <li>- 문자 내용이 "90byte"를 초과하는 경우 장문(LMS)으로 자동 전환됩니다.</li> -->
</ul>
<div class="re_cont">
<!-- Request -->
<div class="req_title">Request</div>
@ -15,8 +14,7 @@
<div class="text">
<h4>Request</h4>
<table>
<caption>API Request Http Method, 프로토콜, HOST, Service Port
정보 테이블</caption>
<caption>API Request Http Method, 프로토콜, HOST, Service Port, Endpoint 정보 테이블</caption>
<colgroup>
<col style="width:20%;">
<col style="width:80%;">
@ -27,7 +25,7 @@
</tr>
<tr>
<th>프로토콜</th>
<td>HTTP/1.1</td>
<td>HTTPS/1.1</td>
</tr>
<tr>
<th>HOST</th>
@ -37,12 +35,17 @@
<th>Service Port</th>
<td>443</td>
</tr>
<tr>
<th>Endpoint</th>
<td>/api/kakao/inqry/chnlId</td>
</tr>
</table>
</div>
</div>
<div class="type_table">
<table>
<caption>문자발송 API Request 키 종류 및 설명, 타입, 필수 여부 테이블</caption>
<caption>채널ID 조회 API Request 키 종류 및 설명, 타입, 필수 여부 테이블</caption>
<colgroup>
<col style="width:20%;">
<col style="width:45%;">
@ -70,34 +73,44 @@
<td>String</td>
<td><span class="select_o">O</span></td>
</tr>
<tr>
<td><span class="font_b">test_yn</span></td>
<td>테스트 데이터 여부 (YS: 성공 테스트, YF: 실패 테스트)</td>
<td>String</td>
<td><span class="select_x">X</span></td>
</tr>
</tbody>
</table>
<div class="table_info">
<p>※ HTTPS 프로토콜을 사용하여 POST로 요청합니다.</p>
<p>※ 문자 텍스트 용량(byte) : 한글 1자당 2byte, 영문/숫자 1자당 1byte</p>
<p>※ Content-Type: application/json</p>
</div>
</div>
<div class="box">
<div class="title">[Example]</div>
<div class="code_view">
<p>&#65371;</p>
<div class="indent">
<p>
<span>"mberId"</span>:"홍길동"
</p>
<p>
,<span>"accessKey"</span>:"XXXXXXXXXXXXXX414050694b953"
</p>
</div>
<p class="l_code">&#65373;</p>
<pre>
<code class="language-json">
{
"mberId": "문자온",
"accessKey": "XXXXXXXXXXXXXXXXXXXXbaa01d8d91",
"test_yn": ""
}
</code>
</pre>
</div>
</div>
<!-- // Request -->
<!-- Response -->
<div class="res_title">Response</div>
<div class="type_table">
<table>
<caption>문자발송 API Response 키 종류 및 설명, 타입 테이블</caption>
<caption>채널ID 조회 API Response 키 종류 및 설명, 타입 테이블</caption>
<colgroup>
<col style="width:20%;">
<col style="width:60%;">
@ -113,104 +126,114 @@
<tbody>
<tr>
<td><span class="font_b">resultCode</span></td>
<td>성공 여부 ("0" 이면 성공, 그 외는 실패)</td>
<td>성공 여부("0" 이외는 실패)</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">data</span></td>
<td>응답 결과 객체 (성공 시 배열, 실패 시 메시지)</td>
<td>Array&lt;Object&gt;</td>
<td>조회 결과 목록(성공 시 배열, 실패 시 오류 메시지)</td>
<td>Array | String</td>
</tr>
<tr>
<td><span class="font_b">data[].userId</span></td>
<td>사용자 ID</td>
<td><span class="font_b">[data][i].senderKey</span></td>
<td>발신 프로필 SenderKey</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">data[].senderKey</span></td>
<td>발신자 키</td>
<td><span class="font_b">[data][i].phoneNumber</span></td>
<td>대표 전화번호</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">data[].phoneNumber</span></td>
<td>수신자 전화번호</td>
<td><span class="font_b">[data][i].yellowId</span></td>
<td>카카오 채널(옐로아이디)</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">data[].yellowId</span></td>
<td>카카오톡 채널 ID</td>
<td><span class="font_b">[data][i].frstRegistPnttm</span></td>
<td>최초 등록 일시(YYYY-MM-DD HH:mm:ss)</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">data[].firstRegistPnttm</span></td>
<td>최초 등록 시각 (yyyyMMdd HH:mm:ss)</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">data[].firstRegisterId</span></td>
<td><span class="font_b">[data][i].frstRegisterId</span></td>
<td>최초 등록자 ID</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">localDateTime</span></td>
<td>서버 처리 일시(ISO-8601)</td>
<td>String</td>
</tr>
</tbody>
</table>
<div class="table_info">
<p>※ JSON 객체로 응답합니다.</p>
</div>
</div>
<div class="box">
<div class="title_t1">
<span class="ex">[Example]</span><span class="ex_success">O 성공
예시</span>
</div>
<div class="title_t1"><span class="ex">[Example]</span><span class="ex_success">O 성공 예시</span></div>
<div class="code_view">
<p>&#65371;</p>
<div class="indent">
<p>
<span>"resultCode"</span>:"0"
</p>
<p>
,<span>"data"</span>&#65371;
</p>
<div class="indent_t1">
<p>
,<span>"senderKey"</span>:"6691434xxxxxxxxxxxxxxxxxxxxxxxxx"
</p>
<p>
,<span>"phoneNumber"</span>:"010xxxxxxxx"
</p>
<p>
,<span>"yellowId"</span>:"@ID"
</p>
<p>
,<span>"firstRegistPnttm"</span>:"2025-10-05 18:08:58"
</p>
<p>
,<span>"firstRegisterId"</span>:"userId"
</p>
</div>
<p>&#65373;</p>
</div>
<p class="l_code">&#65373;</p>
<pre>
<code class="language-json">
{
"resultCode": "0",
"data": [
{
"senderKey": "test_sender_key_001",
"phoneNumber": "02-1234-0000",
"yellowId": "@test_channel_001",
"frstRegistPnttm": "2025-09-09 12:44:21",
"frstRegisterId": "test_id_one"
},
{
"senderKey": "test_sender_key_002",
"phoneNumber": "02-1234-0001",
"yellowId": "@test_channel_002",
"frstRegistPnttm": "2025-09-09 12:44:21",
"frstRegisterId": "test_id_tow"
}
],
"localDateTime": "2025-09-09T12:44:21.624464"
}
</code>
</pre>
</div>
</div>
<div class="box">
<div class="title_t1">
<span class="ex">[Example]</span><span class="ex_fail">X 실패 예시</span>
</div>
<div class="title_t1"><span class="ex">[Example]</span><span class="ex_fail">X 실패 예시</span></div>
<div class="code_view">
<p>&#65371;</p>
<div class="indent">
<p>
<span>"resultCode"</span>:"401"
</p>
<p>
,<span>"message"</span>:"Unauthorized"
</p>
</div>
<p class="l_code">&#65373;</p>
<pre><code class="language-json">
{
"resultCode": "4010",
"data": "인증 정보가 올바르지 않습니다.(mberId/accessKey)"
}
</code></pre>
</div>
</div>
<!-- // Response -->
</div>
<!--// Response-->

View File

@ -1,11 +1,13 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<ul class="info">
<li>- API를 통해서 다른 내용의 문자를 대량으로 전송할 수 있습니다.</li>
<li>- 발신번호는 문자온 사이트를 통해 사전등록 후 이용하실 수 있습니다.(마이페이지-발신번호 관리 메뉴 이용)</li>
<li>- 문자 내용이 "90byte"를 초과하는 경우 장문(LMS)으로 자동 전환됩니다.</li>
<li>- API를 통해서 템플릿 목록을 조회할 수 111있습니다.</li>
<li>- API를 통해서 템플릿 목록을 조회할 수 111있습니다.</li>
<li>- API를 통해서 템플릿 목록을 조회할 수 111있습니다.</li>
<li>- API를 통해서 템플릿 목록을 조회할 수 111있습니다.</li>
</ul>
<div class="re_cont">
<!-- Request -->
<div class="req_title">Request</div>
@ -13,7 +15,7 @@
<div class="text">
<h4>Request</h4>
<table>
<caption>API Request Http Method, 프로토콜, HOST, Service Port 정보 테이블</caption>
<caption>API Request Http Method, 프로토콜, HOST, Service Port, Endpoint 정보 테이블</caption>
<colgroup>
<col style="width:20%;">
<col style="width:80%;">
@ -24,7 +26,7 @@
</tr>
<tr>
<th>프로토콜</th>
<td>HTTP/1.1</td>
<td>HTTPS/1.1</td>
</tr>
<tr>
<th>HOST</th>
@ -34,12 +36,17 @@
<th>Service Port</th>
<td>443</td>
</tr>
<tr>
<th>Endpoint</th>
<td>/api/kakao/inqry/templates/list</td>
</tr>
</table>
</div>
</div>
<div class="type_table">
<table>
<caption>문자발송 API Request 키 종류 및 설명, 타입, 필수 여부 테이블</caption>
<caption>템플릿 목록 조회 API Request 키 종류 및 설명, 타입, 필수 여부 테이블</caption>
<colgroup>
<col style="width:20%;">
<col style="width:45%;">
@ -69,34 +76,50 @@
</tr>
<tr>
<td><span class="font_b">senderKey</span></td>
<td>발신 프로필 Key</td>
<td>발신 프로필 SenderKey</td>
<td>String</td>
<td><span class="select_o">O</span></td>
</tr>
<tr>
<td><span class="font_b">test_yn</span></td>
<td>테스트 데이터 여부 (YS: 성공 테스트, YF: 실패 테스트)</td>
<td>String</td>
<td><span class="select_x">X</span></td>
</tr>
</tbody>
</table>
<div class="table_info">
<p>※ 문자 텍스트 용량(byte) : 한글 1자당 2byte, 영문/숫자 1자당 1byte</p>
<p>※ HTTPS 프로토콜을 사용하여 POST로 요청합니다.</p>
<p>※ Content-Type: application/json</p>
</div>
</div>
<div class="box">
<div class="title">[Example]</div>
<div class="code_view">
<p>&#65371;</p>
<div class="indent">
<p><span>"mberId"</span>:"홍길동"</p>
<p>,<span>"accessKey"</span>:"414050694b953XXXXXXXXXXXXXX"</p>
<p>,<span>"senderKey"</span>:"669143473b1af459628b8bdXXXXXXXXXXXXXX"</p>
</div>
<p class="l_code">&#65373;</p>
<pre>
<code class="language-json">
{
"mberId": "dudgusw",
"accessKey": "3429312e6a2c732188d4cc7d15d8a1baa01d8d91",
"senderKey": "669143473b1af459628b8bdf2f48da090c8895de",
"test_yn": ""
}
</code>
</pre>
</div>
</div>
<!-- // Request -->
<!-- Response -->
<div class="res_title">Response</div>
<div class="type_table">
<table>
<caption>문자발송(대량) API Response 키 종류 및 설명, 타입 테이블</caption>
<caption>템플릿 목록 조회 API Response 키 종류 및 설명, 타입 테이블</caption>
<colgroup>
<col style="width:20%;">
<col style="width:60%;">
@ -112,44 +135,47 @@
<tbody>
<tr>
<td><span class="font_b">resultCode</span></td>
<td>성공 여부("0" 아니면 실패)</td>
<td>성공 여부("0" 이외는 실패)</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">data</span></td>
<td>템플릿 정보 리스트</td>
<td>Array</td>
<td>조회 결과 목록(성공 시 배열, 실패 시 오류 메시지)</td>
<td>Array | String</td>
</tr>
<tr>
<td><span class="font_b">[data].senderKey</span></td>
<td>발신 프로필 키</td>
<td><span class="font_b">[data][i].senderKey</span></td>
<td>발신 프로필 SenderKey</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].templateCode</span></td>
<td><span class="font_b">[data][i].templateCode</span></td>
<td>템플릿 코드</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].templateName</span></td>
<td>템플릿 이름</td>
<td><span class="font_b">[data][i].templateName</span></td>
<td>템플릿 명</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].createdAt</span></td>
<td>생성일시</td>
<td><span class="font_b">[data][i].createdAt</span></td>
<td>템플릿 생성 일시</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].modifiedAt</span></td>
<td>수정일시</td>
<td><span class="font_b">[data][i].modifiedAt</span></td>
<td>템플릿 수정 일시</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].serviceStatus</span></td>
<td>템플릿 상태 <br>(REG: 등록, REQ: 검수요청, REJ: 반려,
STP: 차단, RDY: 발송전, ACT: 정상, DMT: 휴면, BLK:
차단)</td>
<td><span class="font_b">[data][i].serviceStatus</span></td>
<td>서비스 상태(등록완료, 승인대기 등)</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">localDateTime</span></td>
<td>서버 처리 일시(ISO-8601)</td>
<td>String</td>
</tr>
</tbody>
@ -158,75 +184,89 @@ STP: 차단, RDY: 발송전, ACT: 정상, DMT: 휴면, BLK:
<p>※ JSON 객체로 응답합니다.</p>
</div>
</div>
<div class="box">
<div class="title_t1"><span class="ex">[Example]</span><span class="ex_success">O 성공 예시</span></div>
<div class="code_view">
<p>&#65371;</p>
<div class="indent">
<p>
<span>"resultCode"</span>:"0"
</p>
<p>
,<span>"data"</span>&#65371;
</p>
<div class="indent_t1">
<p>
,<span>"senderKey"</span>:"669143473b1af459628xxxxxxxxxxxxxxxxxxxxx"
</p>
<p>
,<span>"templateCode"</span>:"bizp_20250527112232xxxxxxxxxxxxx"
</p>
<p>
,<span>"templateName"</span>:"템플릿 명"
</p>
<p>
,<span>"createdAt"</span>:"2025-05-27 11:22:33"
</p>
<p>
,<span>"modifiedAt"</span>:"2025-05-27 11:22:33"
</p>
<p>
,<span>"serviceStatus"</span>:"REG(등록완료)"
</p>
</div>
<p>&#65373;</p>
<p>,&#65371;</p>
<div class="indent_t1">
<p>
,<span>"senderKey"</span>:"669143473b1af459628xxxxxxxxxxxxxxxxxxxxx"
</p>
<p>
,<span>"templateCode"</span>:"bizp_20250527112232xxxxxxxxxxxxx"
</p>
<p>
,<span>"templateName"</span>:"템플릿 명2"
</p>
<p>
,<span>"createdAt"</span>:"2025-05-27 11:22:33"
</p>
<p>
,<span>"modifiedAt"</span>:"2025-05-27 11:22:33"
</p>
<p>
,<span>"serviceStatus"</span>:"RDY(대기)"
</p>
</div>
<p>&#65373;</p>
</div>
<p class="l_code">&#65373;</p>
<pre>
<code class="language-json">
{
"resultCode": "0",
"data": [
{
"senderKey": "test_sender_key_001",
"templateCode": "TEST_TEMPLATE_001",
"templateName": "테스트 템플릿 001",
"createdAt": "2025-01-01 10:00:00",
"modifiedAt": "2025-01-01 10:00:00",
"serviceStatus": "REG(등록완료)"
},
{
"senderKey": "test_sender_key_001",
"templateCode": "TEST_TEMPLATE_002",
"templateName": "테스트 템플릿 002",
"createdAt": "2025-01-01 11:00:00",
"modifiedAt": "2025-01-01 11:00:00",
"serviceStatus": "REG(등록완료)"
},
{
"senderKey": "test_sender_key_002",
"templateCode": "TEST_TEMPLATE_003",
"templateName": "테스트 템플릿 003",
"createdAt": "2025-01-01 12:00:00",
"modifiedAt": "2025-01-01 12:00:00",
"serviceStatus": "PENDING(승인대기)"
}
],
"localDateTime": "2025-09-09T14:18:38.445175"
}
</code>
</pre>
</div>
</div>
<div class="box">
<div class="title_t1"><span class="ex">[Example]</span><span class="ex_fail">X 실패 예시</span></div>
<div class="code_view">
<p>&#65371;</p>
<div class="indent">
<p><span>"resultCode"</span>:"4099"</p>
<p>,<span>"msg"</span>:"기타 시스템 오류"</p>
</div>
<p class="l_code">&#65373;</p>
<pre><code class="language-json">
{
"resultCode": "4010",
"data": "인증 정보가 올바르지 않습니다.(mberId/accessKey)"
}
</code></pre>
</div>
</div>
<!-- // Response -->
</div>
<!--// Response-->

View File

@ -1,10 +1,12 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<ul class="info">
<li>- 전송결과 조회의 "msgGroupId"를 사용하여 전송된 문자의 상세결과를 수신번호별로 조회할 수 있습니다.</li>
<li>- 전송결과가 "대기"인 경우에는 최종 결과 확인까지 최대 72시간까지 소요됩니다.</li>
<li>- API를 통해서 알림톡을 발송할 수 있습니다.</li>
<li>- 사전에 등록된 SenderKey 및 승인된 템플릿을 사용해야 합니다.</li>
<li>- 대체문자(subMsgTxt) 발송 여부는 subMsgSendYn으로 제어합니다.</li>
</ul>
<div class="re_cont">
<!-- Request -->
<div class="req_title">Request</div>
@ -12,7 +14,7 @@
<div class="text">
<h4>Request</h4>
<table>
<caption>API Request Http Method, 프로토콜, HOST, Service Port 정보 테이블</caption>
<caption>API Request Http Method, 프로토콜, HOST, Service Port, Endpoint 정보 테이블</caption>
<colgroup>
<col style="width:20%;">
<col style="width:80%;">
@ -23,7 +25,7 @@
</tr>
<tr>
<th>프로토콜</th>
<td>HTTP/1.1</td>
<td>HTTPS/1.1</td>
</tr>
<tr>
<th>HOST</th>
@ -33,12 +35,17 @@
<th>Service Port</th>
<td>443</td>
</tr>
<tr>
<th>Endpoint</th>
<td>/api/kakao/at/sendMsg</td>
</tr>
</table>
</div>
</div>
<div class="type_table">
<table>
<caption>상세결과 조회 API Request 키 종류 및 설명, 타입, 필수 여부 테이블</caption>
<caption>알림톡 발송 API Request 키 종류 및 설명, 타입, 필수 여부 테이블</caption>
<colgroup>
<col style="width:20%;">
<col style="width:45%;">
@ -67,26 +74,56 @@
<td><span class="select_o">O</span></td>
</tr>
<tr>
<td><span class="font_b">msgGroupId</span></td>
<td>메시지 그룹 ID</td>
<td><span class="font_b">senderKey</span></td>
<td>발신 프로필 SenderKey</td>
<td>String</td>
<td><span class="select_o">O</span></td>
</tr>
<tr>
<td><span class="font_b">page</span></td>
<td>페이지 번호</td>
<td><span class="font_b">templateCode</span></td>
<td>알림톡 템플릿 코드</td>
<td>String</td>
<td><span class="select_o">O</span></td>
</tr>
<tr>
<td><span class="font_b">subMsgSendYn</span></td>
<td>대체문자 발송 여부 (Y: 발송, N: 미발송)</td>
<td>String</td>
<td><span class="select_x">X</span></td>
</tr>
<tr>
<td><span class="font_b">pageSize</span></td>
<td>페이지당 출력 개수</td>
<td><span class="font_b">callFrom</span></td>
<td>발신자 번호</td>
<td>String</td>
<td><span class="select_o">O</span></td>
</tr>
<tr>
<td><span class="font_b">callTo_[i]</span></td>
<td>수신자 번호(다건 가능)</td>
<td>String</td>
<td><span class="select_o">O</span></td>
</tr>
<tr>
<td><span class="font_b">templateTitle_[i]</span></td>
<td>치환용 템플릿 타이틀</td>
<td>String</td>
<td><span class="select_x">X</span></td>
</tr>
<tr>
<td><span class="font_b">templateContent_[i]</span></td>
<td>치환용 템플릿 내용</td>
<td>String</td>
<td><span class="select_o">O</span></td>
</tr>
<tr>
<td><span class="font_b">subMsgTxt_[i]</span></td>
<td>대체문자 내용</td>
<td>String</td>
<td><span class="select_x">X</span></td>
</tr>
<tr>
<td><span class="font_b">test_yn</span></td>
<td>테스트 데이터 여부</td>
<td>테스트 데이터 여부 (YS: 성공 테스트, YF: 실패 테스트)</td>
<td>String</td>
<td><span class="select_x">X</span></td>
</tr>
@ -94,29 +131,58 @@
</table>
<div class="table_info">
<p>※ HTTPS 프로토콜을 사용하여 POST로 요청합니다.</p>
<p>※ Content-Type: application/json</p>
</div>
</div>
<div class="box">
<div class="title">[Example]</div>
<div class="code_view">
<p>&#65371;</p>
<div class="indent">
<p><span>"mberId"</span>:"홍길동"</p>
<p>,<span>"accessKey"</span>:"XXXXXXXXXXXXXX414050694b953"</p>
<p>,<span>"msgGroupId"</span>:"MSGGID_0000000011452"</p>
<p>,<span>"page"</span>:""</p>
<p>,<span>"pageSize"</span>:""</p>
<p>,<span>"test_yn"</span>:""</p>
</div>
<p class="l_code">&#65373;</p>
<pre>
<code class="language-json">
{
"mberId": "dudgusw",
"accessKey": "3429312e6a2c732188d4cc7d15d8a1baa01d8d91",
"senderKey": "669143473b1af459628b8bdf2f48da090c8895de",
"templateCode": "bizp_2025031410525347794704159",
"subMsgSendYn": "Y",
"callFrom": "010-9341-4986",
"callTo_1": "01083584250",
"callTo_2": "01011111111",
"templateTitle_1": "테스트 이호영2222",
"templateTitle_2": "테스트 이호영2111",
"templateContent_1": "테스트 이호영\\n타이틀 버튼 치환 테스트입니다.",
"templateContent_2": "테스트 이호영2\\n타이틀 버튼 치환 테스트입니다.",
"subMsgTxt_1": "대체문자 발송",
"subMsgTxt_2": "대체문자 발송2",
"test_yn": "YS"
}
</code>
</pre>
</div>
</div>
<!-- // Request -->
<!-- Response -->
<div class="res_title">Response</div>
<div class="type_table">
<table>
<caption>상세결과 조회 API Response 키 종류 및 설명, 타입 테이블</caption>
<caption>알림톡 발송 API Response 키 종류 및 설명, 타입 테이블</caption>
<colgroup>
<col style="width:20%;">
<col style="width:60%;">
@ -132,132 +198,52 @@
<tbody>
<tr>
<td><span class="font_b">resultCode</span></td>
<td>성공 여부("0" 아니면 실패)</td>
<td>성공 여부("0" 이외는 실패)</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">data</span></td>
<td>결과값 객체(성공 : 데이터, 실패 : 메시지)</td>
<td>발송 결과 객체</td>
<td>Object</td>
</tr>
<tr>
<td><span class="font_b">[data].message</span></td>
<td>문자</td>
<td><span class="font_b">[data].resultCode</span></td>
<td>성공 여부("0" 이외는 실패)</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].next_yn</span></td>
<td>다음 페이지 여부</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].objectList</span></td>
<td>결과값 목록</td>
<td>Object List</td>
</tr>
<tr>
<td><span class="font_b">[data].msgGroupId</span></td>
<td>메시지 그룹 ID</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].msgId</span></td>
<td>메시지 ID</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].msgTypeName</span></td>
<td>문자 구분명(단문, 장문, 그림)</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].msgType</span></td>
<td>메시지 타입(4 : 단문, 6 : 장문)</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].callFrom</span></td>
<td>발신자 번호</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].callTo</span></td>
<td>수신자 번호</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].msgGroupCnt</span></td>
<td>문자 발송 건수</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].sCnt</span></td>
<td><span class="font_b">[data].successCnt</span></td>
<td>성공 건수</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].fCnt</span></td>
<td>실패 건수</td>
<td><span class="font_b">[data].blockCnt</span></td>
<td>수신거부 건수</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].wCnt</span></td>
<td>대기 건수</td>
<td><span class="font_b">[data].failCnt</span></td>
<td>전송 실패 건수</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].msgResult</span></td>
<td>발송 결과(성공 : S, 실패 : F)</td>
<td><span class="font_b">[data].msgType</span></td>
<td>메시지 타입(AT: 알림톡)</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].smsTxt</span></td>
<td>문자 내용</td>
<td><span class="font_b">[data].test_yn</span></td>
<td>테스트 여부</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].subject</span></td>
<td>제목</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].reqdate</span></td>
<td>발송 일자</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].curState</span></td>
<td>전송 처리 결과값</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].userId</span></td>
<td>사용자 ID</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].regdate</span></td>
<td>등록 일자</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].reserveCYn</span></td>
<td>예약 취소 여부</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].ttlCnt</span></td>
<td>전체 요청 수</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].remainMsgCnt</span></td>
<td>남은 문자 건수</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].totMsgCnt</span></td>
<td>전체 문자 개수</td>
<td><span class="font_b">localDateTime</span></td>
<td>서버 처리 일시(ISO-8601)</td>
<td>String</td>
</tr>
</tbody>
@ -266,88 +252,56 @@
<p>※ JSON 객체로 응답합니다.</p>
</div>
</div>
<div class="box">
<div class="title_t1"><span class="ex">[Example]</span><span class="ex_success">O 성공 예시</span></div>
<div class="code_view">
<p>&#65371;</p>
<div class="indent">
<p><span>"resultCode"</span>:"0"</p>
<p>,<span>"data"</span>:&#65339;</p>
<p>&#65371;</p>
<div class="indent_t1">
<p><span>"resultCode"</span>:"0"</p>
<p>,<span>"message"</span>: null</p>
<p>,<span>"next_yn"</span>:"n"</p>
<p>,<span>"msgGroupId"</span>:"MSGGID_0000000000000"</p>
<p>,<span>"objectList"</span>:&#65339;</p>
<p>&#65371;</p>
<div class="indent_t2">
<p><span>"msgTypeName"</span>:"단문(SMS)"</p>
<p>,<span>"msgType"</span>:"4"</p>
<p>,<span>"callFrom"</span>:"01011112222"</p>
<p>,<span>"callTo"</span>:"01011112223"</p>
<p>,<span>"msgGroupCnt"</span>:"2"</p>
<p>,<span>"msgGroupId"</span>:"MSGGID_0000000013340"</p>
<p>,<span>"msgId"</span>:"MSGID_0000000000001"</p>
<p>,<span>"scnt"</span>:null</p>
<p>,<span>"fcnt"</span>:null</p>
<p>,<span>"wcnt"</span>:null</p>
<p>,<span>"msgResult"</span>:"S"</p>
<p>,<span>"smsTxt"</span>:"문자 내용 단문 예제"</p>
<p>,<span>"subject"</span>:null</p>
<p>,<span>"reqdate"</span>:"2023-06-13 17:48:08"</p>
<p>,<span>"curState"</span>:"3"</p>
<p>,<span>"userId"</span>:"testuser"</p>
<p>,<span>"regdate"</span>:"2023-06-13 17:48:07"</p>
<p>,<span>"reserveCYn"</span>:"N"</p>
<p>,<span>"ttlCnt"</span>:"10"</p>
<p>,<span>"remainMsgCnt"</span>:"0"</p>
<p>,<span>"totMsgCnt"</span>:"10"</p>
</div>
<p>&#65373;</p>
<p>,&#65371;</p>
<div class="indent_t2">
<p><span>"msgTypeName"</span>:"단문(SMS)"</p>
<p>,<span>"msgType"</span>:"4"</p>
<p>,<span>"callFrom"</span>:"01011112222"</p>
<p>,<span>"callTo"</span>:"01011112223"</p>
<p>,<span>"msgGroupCnt"</span>:"2"</p>
<p>,<span>"msgGroupId"</span>:"MSGGID_0000000013340"</p>
<p>,<span>"msgId"</span>:"MSGID_0000000000002"</p>
<p>,<span>"scnt"</span>:null</p>
<p>,<span>"fcnt"</span>:null</p>
<p>,<span>"wcnt"</span>:null</p>
<p>,<span>"msgResult"</span>:"S"</p>
<p>,<span>"smsTxt"</span>:"문자 내용 단문 예제"</p>
<p>,<span>subject"</span>:null</p>
<p>,<span>reqdate"</span>:"2023-06-13 17:48:09"</p>
<p>,<span>"curState"</span>:"3"</p>
<p>,<span>"userId"</span>:"testuser"</p>
<p>,<span>"regdate"</span>:"2023-06-13 17:48:07"</p>
<p>,<span>"reserveCYn"</span>:"N"</p>
<p>,<span>"ttlCnt"</span>:"10"</p>
<p>,<span>"remainMsgCnt"</span>:"0"</p>
<p>,<span>"totMsgCnt"</span>:"10"</p>
<p>&#65373;</p>
</div>
<p>&#65341;</p>
</div>
<p class="l_code_t2">&#65373;</p>
<p>&#65341;</p>
</div>
<p class="l_code">&#65373;</p>
<pre>
<code class="language-json">
{
"resultCode": "0",
"data": {
"resultCode": "0",
"msgGroupId": "MSGGID_AT_1757467849001",
"successCnt": "2",
"blockCnt": "0",
"failCnt": "0",
"msgType": "AT",
"test_yn": "YS"
},
"localDateTime": "2025-09-10T10:30:49.001636"
}
</code>
</pre>
</div>
</div>
<div class="box">
<div class="title_t1"><span class="ex">[Example]</span><span class="ex_fail">X 실패 예시</span></div>
<div class="code_view">
<p>&#65371;</p>
<div class="indent">
<p><span>"resultCode"</span>:"4099"</p>
<p>,<span>"data"</span>:"기타 시스템 오류"</p>
</div>
<p class="l_code">&#65373;</p>
<pre><code class="language-json">
{
"resultCode": "2080",
"data": "친구톡은 20시 50분부터 익일 08시까지 발송이 제한됩니다."
}
</code></pre>
</div>
</div>
<!-- // Response -->
</div>
<!--// Response-->
</div>

View File

@ -1,7 +1,7 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<ul class="info">
<li>- 보유캐시로 발송 가능한 문자의 건수를 단문(SMS), 장문(LMS), 그림(MMS)별로 각각 확인할 수 있습니다.</li>
<li>- 보11유캐시로 발송 가능한 문자의 건수를 단문(SMS), 장문(LMS), 그림(MMS)별로 각각 확인할 수 있습니다.</li>
<li>- 위 문자유형별 발송 가능건수는 개인별로 적용된 단가를 기준으로 산출되며, "첫결제 이벤트"는 적용되지 않습니다.</li>
</ul>

View File

@ -1,8 +1,9 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<ul class="info">
<li>- 보유캐시로 발송 가능한 문자의 건수를 단문(SMS), 장문(LMS), 그림(MMS)별로 각각 확인할 수 있습니다.</li>
<li>- 위 문자유형별 발송 가능건수는 개인별로 적용된 단가를 기준으로 산출되며, "첫결제 이벤트"는 적용되지 않습니다.</li>
<li>- 문자온 사이트 및 API를 통해 전송된 발송내역을 조회할 수 있습니다.</li>
<li>- 문자 발송내역은 날짜별로 조회되며, 최근 3개월까지만 조회 가능합니다.</li>
<li>- 발신번호별 문자 발송내역 조회 기능은 제공되지 않습니다.</li>
</ul>
<div class="re_cont">
@ -33,12 +34,16 @@
<th>Service Port</th>
<td>443</td>
</tr>
<tr>
<th>Endpoint</th>
<td>/api/inqry/hstry</td>
</tr>
</table>
</div>
</div>
<div class="type_table">
<table>
<caption>발송가능 건수 API Request 키 종류 및 설명, 타입, 필수 여부 테이블</caption>
<caption>전송결과 조회 API Request 키 종류 및 설명, 타입, 필수 여부 테이블</caption>
<colgroup>
<col style="width:20%;">
<col style="width:45%;">
@ -66,6 +71,36 @@
<td>String</td>
<td><span class="select_o">O</span></td>
</tr>
<tr>
<td><span class="font_b">page</span></td>
<td>페이지 번호</td>
<td>String</td>
<td><span class="select_x">X</span></td>
</tr>
<tr>
<td><span class="font_b">pageSize</span></td>
<td>페이지당 출력 개수</td>
<td>String</td>
<td><span class="select_x">X</span></td>
</tr>
<tr>
<td><span class="font_b">startDate</span></td>
<td>시작 일자</td>
<td>String</td>
<td><span class="select_x">X</span></td>
</tr>
<tr>
<td><span class="font_b">endDate</span></td>
<td>마감 일자</td>
<td>String</td>
<td><span class="select_x">X</span></td>
</tr>
<tr>
<td><span class="font_b">test_yn</span></td>
<td>테스트 데이터 여부</td>
<td>String</td>
<td><span class="select_x">X</span></td>
</tr>
</tbody>
</table>
<div class="table_info">
@ -77,8 +112,13 @@
<div class="code_view">
<p>&#65371;</p>
<div class="indent">
<p><span>"mberId"</span>:"String"</p>
<p>,<span>"accessKey"</span>:"String"</p>
<p><span>"mberId"</span>:"홍길동"</p>
<p>,<span>"accessKey"</span>:"XXXXXXXXXXXXXX414050694b953"</p>
<p>,<span>"page"</span>:""</p>
<p>,<span>"pageSize"</span>:""</p>
<p>,<span>"startDate"</span>:""</p>
<p>,<span>"endDate"</span>:""</p>
<p>,<span>"test_yn"</span>:""</p>
</div>
<p class="l_code">&#65373;</p>
</div>
@ -88,7 +128,7 @@
<div class="res_title">Response</div>
<div class="type_table">
<table>
<caption>발송가능 건수 API Response 키 종류 및 설명, 타입 테이블</caption>
<caption>전송결과 조회 API Response 키 종류 및 설명, 타입 테이블</caption>
<colgroup>
<col style="width:20%;">
<col style="width:60%;">
@ -112,44 +152,124 @@
<td>결과값 객체(성공 : 데이터, 실패 : 메시지)</td>
<td>Object</td>
</tr>
<tr>
<td><span class="font_b">[data].longPrice</span></td>
<td>장문 단가</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].longSendPsbltEa</span></td>
<td>장문 발송 가능 건수</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].mberMoney</span></td>
<td>현재 보유 금액</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].message</span></td>
<td>문자</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].picturePrice</span></td>
<td>그림문자 단가</td>
<td><span class="font_b">[data].next_yn</span></td>
<td>다음 페이지 여부</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].pictureSendPsbltEa</span></td>
<td>그림문자 발송 가능 건수</td>
<td><span class="font_b">[data].objectList</span></td>
<td>결과값 목록</td>
<td>Object List</td>
</tr>
<tr>
<td><span class="font_b">[data].msgGroupId</span></td>
<td>메시지 그룹 ID</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].shortPrice</span></td>
<td>단문 단가</td>
<td><span class="font_b">[data].msgId</span></td>
<td>메시지 ID</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].shortSendPsbltEa</span></td>
<td>단문 발송 가능 건수</td>
<td><span class="font_b">[data].msgTypeName</span></td>
<td>문자 구분명(단문, 장문, 그림)</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].msgType</span></td>
<td>메시지 타입(4 : 단문, 6 : 장문)</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].callFrom</span></td>
<td>발신자 번호</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].callTo</span></td>
<td>수신자 번호</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].msgGroupCnt</span></td>
<td>문자 발송 건수</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].sCnt</span></td>
<td>성공 건수</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].fCnt</span></td>
<td>실패 건수</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].wCnt</span></td>
<td>대기 건수</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].msgResult</span></td>
<td>발송 결과(성공 : S, 실패 : F)</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].smsTxt</span></td>
<td>문자 내용</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].subject</span></td>
<td>제목</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].reqdate</span></td>
<td>발송 일자</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].curState</span></td>
<td>전송 처리 결과값</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].userId</span></td>
<td>사용자 ID</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].regdate</span></td>
<td>등록 일자</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].reserveCYn</span></td>
<td>예약 취소 여부</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].ttlCnt</span></td>
<td>전체 요청 수</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].remainMsgCnt</span></td>
<td>남은 문자 건수</td>
<td>String</td>
</tr>
<tr>
<td><span class="font_b">[data].totMsgCnt</span></td>
<td>전체 문자 개수</td>
<td>String</td>
</tr>
</tbody>
@ -164,18 +284,68 @@
<p>&#65371;</p>
<div class="indent">
<p><span>"resultCode"</span>:"0"</p>
<p>,<span>"data"</span>&#65371;</p>
<p>,<span>"data"</span>:&#65339;</p>
<p>&#65371;</p>
<div class="indent_t1">
<p><span>"longPrice"</span>:"50"</p>
<p>,<span>"longSendPsbltEa"</span>:"19651"</p>
<p>,<span>"mberMoney"</span>:"982586.7"</p>
<p><span>"resultCode"</span>:"0"</p>
<p>,<span>"message"</span>: null</p>
<p>,<span>"picturePrice"</span>:"90"</p>
<p>,<span>"pictureSendPsbltEa"</span>:"10917"</p>
<p>,<span>"shortPrice"</span>:"18"</p>
<p>,<span>"shortSendPsbltEa"</span>:"54588"</p>
<p>,<span>"next_yn"</span>:"n"</p>
<p>,<span>"msgGroupId"</span>:"MSGGID_0000000000000"</p>
<p>,<span>"objectList"</span>:&#65339;</p>
<p>&#65371;</p>
<div class="indent_t2">
<p><span>"msgTypeName"</span>:"단문(SMS)"</p>
<p>,<span>"msgType"</span>:"4"</p>
<p>,<span>"callFrom"</span>:"01011112222"</p>
<p>,<span>"callTo"</span>:"01011112223"</p>
<p>,<span>"msgGroupCnt"</span>:"2"</p>
<p>,<span>"msgGroupId"</span>:"MSGGID_0000000013340"</p>
<p>,<span>"msgId"</span>:"MSGID_0000000000001"</p>
<p>,<span>"scnt"</span>:"2"</p>
<p>,<span>"fcnt"</span>:"0"</p>
<p>,<span>"wcnt"</span>:"0"</p>
<p>,<span>"msgResult"</span>:"S"</p>
<p>,<span>"smsTxt"</span>:"문자 내용 단문 예제"</p>
<p>,<span>"subject"</span>:null</p>
<p>,<span>"reqdate"</span>:"2023-06-13 17:48:07"</p>
<p>,<span>"curState"</span>:"3"</p>
<p>,<span>"userId"</span>:"testuser"</p>
<p>,<span>"regdate"</span>:"2023-06-13 17:48:07"</p>
<p>,<span>"reserveCYn"</span>:"N"</p>
<p>,<span>"ttlCnt"</span>:"1"</p>
<p>,<span>"remainMsgCnt"</span>:"40"</p>
<p>,<span>"totMsgCnt"</span>:"70"</p>
</div>
<p>&#65373;</p>
<p>,&#65371;</p>
<div class="indent_t2">
<p><span>"msgTypeName"</span>:"장문(LMS)"</p>
<p>,<span>"msgType"</span>:"6"</p>
<p>,<span>"callFrom"</span>:"01011112222"</p>
<p>,<span>"callTo"</span>:"01011112223"</p>
<p>,<span>"msgGroupCnt"</span>:"1"</p>
<p>,<span>"msgGroupId"</span>:"MSGGID_0000000013341"</p>
<p>,<span>"msgId"</span>:"MSGID_0000000000002"</p>
<p>,<span>"scnt"</span>:"1"</p>
<p>,<span>"fcnt"</span>:"0"</p>
<p>,<span>"wcnt"</span>:"0"</p>
<p>,<span>"msgResult"</span>:"S"</p>
<p>,<span>"smsTxt"</span>:"문자 내용 장문 예제"</p>
<p>,<span>subject"</span>:null</p>
<p>,<span>reqdate"</span>:"2023-06-02 11:46:50"</p>
<p>,<span>"curState"</span>:"3"</p>
<p>,<span>"userId"</span>:"testuser"</p>
<p>,<span>"regdate"</span>:"2023-06-02 11:46:49"</p>
<p>,<span>"reserveCYn"</span>:"N"</p>
<p>,<span>"ttlCnt"</span>:"1"</p>
<p>,<span>"remainMsgCnt"</span>:"40"</p>
<p>,<span>"totMsgCnt"</span>:"70"</p>
<p>&#65373;</p>
</div>
<p>&#65341;</p>
</div>
<p class="l_code_t2">&#65373;</p>
<p>&#65341;</p>
</div>
<p class="l_code">&#65373;</p>
</div>
@ -185,7 +355,7 @@
<div class="code_view">
<p>&#65371;</p>
<div class="indent">
<p><span>"resultCode"</span>:"5099"</p>
<p><span>"resultCode"</span>:"3099"</p>
<p>,<span>"data"</span>:"기타 시스템 오류"</p>
</div>
<p class="l_code">&#65373;</p>

View File

@ -1,7 +1,7 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<ul class="info">
<li>- 문자온 사이트 및 API를 통해 전송된 문자 발송내역을 조회할 수 있습니다.</li>
<li>- 문자온 사이트 및 API를 통해 전송된 발송내역을 조회할 수 있습니다.</li>
<li>- 문자 발송내역은 날짜별로 조회되며, 최근 3개월까지만 조회 가능합니다.</li>
<li>- 발신번호별 문자 발송내역 조회 기능은 제공되지 않습니다.</li>
</ul>

View File

@ -0,0 +1,83 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<script type="text/javascript">
$(document).ready(function(){
// 현재 url 추출
var url = window.location.pathname;
// 현재 url에서 uri만 추출
var lastPart = url.split('/').pop();
console.log('lastPart : ', lastPart);
/*
* top 메뉴중 onclick에 있는 uri을 가져와
* 현재 호출된 페이지와 uri와 비교해서 맞다면
* active로 활성화 시킴
*/
$('.tabType1 .tab').each(function(index) {
var $btn = $(this).children("button");
var info = $btn.attr("data-info");
console.log('info : ', info);
console.log('lastPart : ', lastPart);
if (info.indexOf(lastPart) > -1) {
$(this).addClass('active');
}
});
// 페이지 이동 이벤트
$('.goSubPage').click(function(){
location.href=$(this).data('info');
});
});
// 기업회원 체크
function usrDeptChk(){
var usrDept = '${LoginVO.dept}';
return true;
/* 2023.09.25 JSPark 개인, 기업 모두 허용
// 기업회원 전용체크
if(usrDept != 'c'){
//기업회원 전용 메세지 팝업 띄워주기
$('#btnDeptPop').click();
return false;
}else{
return true;
}
*/
}
// 튤팁에서 취소 클릭 시 이벤트
function customPopup(){
// 현재 url 추출
var url = window.location.pathname;
// 현재 url에서 uri만 추출
var lastPart = url.split('/').pop();
// URL을 치고 들어왔을 경우 '문자 API소개' 페이지로 이동
if('appMgmt.do'.indexOf(lastPart) > -1){
location.href='<c:url value="/web/api/intrdView.do" />';
}
}
</script>
<!--사용안내 내용-->
<div class="pay_tab_wrap">
<ul class="tabType1">
<li class="tab"><button type="button" class="goSubPage" data-info="<c:url value="/web/api/apiSpec.do" />">문자</button></li>
<li class="tab"><button type="button" class="goSubPage" data-info="<c:url value="/web/api/apiAtSpec.do" />">알림톡</button></li>
<li class="tab"><button type="button" class="goSubPage" data-info="<c:url value="/web/api/apiFtSpec.do" />">친구톡</button></li>
</ul>
</div>

View File

@ -17,10 +17,15 @@ $(document).ready(function(){
* active로 활성화 시킴
*/
$('.tabType4 .tab').each(function(index) {
var idAttr = $(this).children("button").attr("id");
idAttr += '.do';
var $btn = $(this).children("button");
var id = $btn.attr("id");
if(idAttr.indexOf(lastPart) > -1){
// 개발가이드 그룹
if (id === 'apiSpec' && /api.*Spec\.do$/.test(lastPart)) {
$(this).addClass('active');
}
// 나머지 기본 처리
else if (lastPart.indexOf(id) > -1) {
$(this).addClass('active');
}
});
@ -99,7 +104,6 @@ function customPopup(){
<ul class="tabType4">
<li class="tab"><button type="button" class="goPage" id="intrdView" data-info="<c:url value="/web/api/intrdView.do" />">연동 안내</button></li>
<li class="tab"><button type="button" class="goPage" id="apiSpec" data-info="<c:url value="/web/api/apiSpec.do" />">개발 가이드</button></li>
<%-- <li class="tab"><button type="button" class="goPage" id="apiAtSpec" data-info="<c:url value="/web/api/apiAtSpec.do" />">알림톡 사용안내</button></li> --%>
<li class="tab"><button type="button" class="goPage" id="examDown" data-info="<c:url value="/web/api/examDown.do" />">예제 다운로드</button></li>
<li class="tab"><button type="button" class="goPage" id="appMgmt" data-info="<c:url value="/web/api/appMgmt.do" />" >신청/관리</button></li>
</ul>

View File

@ -739,11 +739,14 @@ function TabType2(obj, tabId) {
$('.tab_depth3.tDep2_cateCode a').removeClass('on');
$('.tab_depth3.tDep2_cateCode a').eq(0).addClass('on');
//해시태그
$('.tab_depth4 .tDep2_hashTag a').removeClass('on');
$('.tab_depth4 .tDep2_hashTag a').eq(0).addClass('on');
// $('.tab_depth4 .tDep2_hashTag a').removeClass('on');
// $('.tab_depth4 .tDep2_hashTag a').eq(0).addClass('on');
//
// $(".api_guide_con").not($tabCn).removeClass("current");
// $(".api_guide_con").not($tabCn).fadeOut(0);
$(".api_guide_con").not($tabCn).removeClass("current");
$(".api_guide_con").not($tabCn).fadeOut(0);
+ $(".api_guide_con").not($tabCn).removeClass("current").fadeOut(0);
+ $(".api_guide").not($tabCn).removeClass("current").fadeOut(0);
$(".api_guide_con").not($tabCn).removeClass("current");
$(".api_guide_con").not($tabCn).fadeOut(0);