⚙️ 콜백 설정 상세

기능 개요

IAM 콜백 시스템은 4개의 모달(팝업)로 구성되어 있으며, 각 모달은 서로 연결된 하나의 워크플로우를 이룹니다:

순서모달 ID제목역할
callback_msg_modal콜백 메시지 설정하기진입점 — 포인트 확인 및 결제
callback_making_modal콜백 메시지 등록하기새 메시지 작성 및 등록
callback_list_modal콜백 메시지 리스트등록된 메시지 조회/관리
callback_list_edit_modal콜백 메시지 (수정)기존 메시지 수정/발송

모달 구조 전체 보기

① callback_msg_modal — 콜백 메시지 설정하기

영역클래스기능
헤더modal-title (background: #99cc00)"콜백 메시지 설정하기"
안내modal-header서비스 설명 + 포인트 충전 + 이용내역버튼
포인트settlement_btn포인트로 충전하기 / 보유포인트 / 포인트 쉐어하기
버튼btn-submit콜백리스트보기 / 포인트내역보기
주의border-box300포인트 차감, 디폴트 설정, 변경 가능
푸터modal-footer취소하기 / 콜백 메시지 설정하기 → settlement('callmake')

② callback_making_modal — 콜백 메시지 등록하기

영역기능
헤더"콜백 메시지 등록하기" + AI와 대화하기 버튼
입력제목(textarea), 메시지내용(textarea 152px)
상세타이틀, 콘텐츠, 이미지(file), 링크주소, 단축주소 복사
푸터취소하기 / 등록하기 → form_save_call()
action="/admin/ajax/mms_callback_save.php", enctype="multipart/form-data"

③ callback_list_modal — 콜백 메시지 리스트

영역기능
헤더"콜백 메시지 리스트"
테이블No, 타이틀, 메시지, 이미지, 보기/링크, 조회수, 유지/해지, 등록일, 노출여부, 수정/삭제
데이터AJAX로 /ajax/edit_event_callback.php 에서 HTML 로드
푸터발송 주기 select(a0~a3) + [등록] 버튼

④ callback_list_edit_modal — 콜백 메시지 수정

영역기능
헤더"콜백 메시지"
action="/ajax/edit_event_callback.php" — 아이디, 요청메시지, 콜백 타이틀/메시지, 링크, 이미지, 단축주소, 조회수, 등록일시
발송셀프폰 발송하기 / 푸시형 전송하기 → 수신자 ID 입력 → 전송하기
푸터뒤로가기 / 저장 → save_call_edit_ev()

기술 아키텍처

콜백 메시지 폼 전송 (form_save_call)

function form_save_call() {
  // 1. 입력값 유효성 검증
  if ($("#call_title").val() == "")     → alert + return
  if ($("#call_content").val() == "")   → alert + return
  if ($("#msgtitle_call").val() == "" || $("#msgdesc_call").val() == "") 
    → alert + return

  // 2. AJAX multipart 전송 (파일 업로드 포함)
  var formData = new FormData($("#dForm_call")[0]);
  $.ajax({
    method: "post",
    processData: false,      // FormData 자동 처리
    contentType: false,      // multipart/form-data
    url: "/admin/ajax/mms_callback_save.php",
    data: formData,
    success: function(data) {
      // 3. 단축 URL 파싱 및 저장
      arr = data.split("{");
      data = "{" + arr[1];
      res = JSON.parse(data);
      short_url = res.shorturl;
      $("#call_msg_surl").val(res.shorturl);
      alert("등록되었습니다.");
    }
  });
}

settlement('callmake') 호출 흐름

// settlement('callmake') 실행 시:
// 1. callback_msg_modal 닫기
// 2. callback_making_modal 열기
// 3. 새로운 콜백 메시지 등록 폼 초기화

전체 필드 레퍼런스

필드명 (name)타입모달용도
modehidden② 등록"reg_msg" — 신규 등록 모드
msgtitle_calltextarea② 등록메시지 제목 (중앙 정렬, 큰 글씨)
msgdesc_calltextarea② 등록메시지 본문 내용
call_titletextarea② 등록 / ④ 수정리스트용 타이틀
call_contenttextarea② 등록 / ④ 수정상세 콘텐츠
call_imgfile② 등록첨부 이미지
call_event_imgfile④ 수정이미지 교체
iam_linktext② 등록메시지 내 포함될 링크
call_iam_linktext④ 수정수정용 링크주소
call_msg_surlhidden② 등록자동 생성된 단축 URL
call_short_urltext④ 수정수정용 단축주소
event_title_calltextarea④ 수정요청메시지 제목
event_desc_calltextarea④ 수정요청메시지 내용
call_event_titletextarea④ 수정콜백 타이틀
call_event_desctextarea④ 수정콜백 메시지
call_event_idxhidden④ 수정수정 대상 이벤트 인덱스
call_read_cnttext④ 수정조회수
call_regdate1text④ 수정등록일시
savehidden④ 수정"save" — 저장 모드

API 엔드포인트

엔드포인트메서드주요 파라미터응답
/admin/ajax/mms_callback_save.phpPOSTmode=reg_msg, msgtitle_call, msgdesc_call, call_title, call_content, call_img, iam_linkJSON { shorturl: "..." }
/ajax/edit_event_callback.php (리스트)POSTget_callback_list=Y, mem_idHTML (테이블 행)
/ajax/edit_event_callback.php (수정)POSTsave=save, call_event_idx, event_title_call, event_desc_call, call_event_title, call_event_desc, ...JSON
/ajax/edit_event_callback.php (삭제)POSTdelete=Y, call_event_idxJSON

고급 설정

포인트 차감 정책

  • 콜백 메시지 신청자 1명당 300포인트 차감
  • 캐시포인트로 결제 (씨드포인트는 내부 기능 전용)
  • 콜백 메시지 설정 동의 회원의 메시지함에 디폴트 메시지로 등록
  • 회원이 추후 다른 메시지로 변경 가능

앱 설치 연동

  • 앱 패키지: mms5.onepagebook.com.onlyonesms
  • 커스텀 스킴: onlyone://onlyoneapp
  • 인텐트: intent://onlyone#Intent;scheme=onlyoneapp;package=mms5.onepagebook.com.onlyonesms;end
  • Google Play: 온리원문자 다운로드

접근 제한

  • Android에서만 정상 동작 (navigator.userAgent 검사)
  • PC/iPhone 접속 시 "휴대폰에서 이용해주세요" 안내
  • 앱 미설치 시 confirm() → 플레이스토어 이동