게시판 글 작성 시 서로 다른 내용의 알림톡을 서로 다른 사람에게 보내려고 합니다. 

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
게시판 글 작성 시 서로 다른 내용의 알림톡을 서로 다른 사람에게 보내려고 합니다. 

QA

게시판 글 작성 시 서로 다른 내용의 알림톡을 서로 다른 사람에게 보내려고 합니다. 

본문

안녕하세요.


발송킹이라는 알림톡 업체 API를 사용해서 게시판 글 등록 시 
관리자와 작성자에게 서로 다른 내용의 알림톡을 발송하려고 합니다. 

 

작성자가 글을 작성하면 관리자와 작성자에게 알림톡이 보내지긴 하는데 
설정에 따라서 알림톡이 이중으로 가거나 한가지 내용만 보내집니다.

 

아래 3개의 소스가 있는데 
1은 발송킹 제공 API이고
2처럼 수정하면 글 작성 시 관리자와 작성자에게 알림톡이 오긴 하는데 둘 다 내용이 작성자 관련 알림톡으로만 발송됩니다.
3처럼 수정하면 작성자에게 작성자 관련 알림톡이 오는데 관리자에게 관리자 관련 알림톡 + 작성자 관련 알림톡 이렇게 2개가 동시에 옵니다.

 

문자를 이용할때는 이런식으로 해도 원하는대로 발송이 되었는데 이건 안되네요.
혹시 어디를 수정하면 제가 원하는 대로 알림톡이 각각 발송되는지 아시는 분 계시면 도움 좀 부탁드립니다.


감사합니다.

 

1.

// 요청변수 설정 (변수 및 값 대소문자 구분)
$Post_Data['UserID']            = 'TESTID';         // 사용자 계정
$Post_Data['UserPW']            = 'TESTPW';         // 사용자 암호
$Post_Data['Service']           = 'ATALK';          // ATALK 기입
$Post_Data['Type']              = 'Send';           // Send 기입
$Post_Data['Template_Seq']      = '250';            // 템플릿 고유번호
$Post_Data['Fail_To']           = 'LMS';            // 알림톡 실패 시 문자로 전환 발송 (빈값:전환발송 안함, SMS:단문으로 발송, LMS:장문으로 발송)
$Post_Data['Send_Date']         = '';               // 발송시각 - 미입력 시 즉시발송, 예약 날짜형식) YYYY-MM-DD HH:NN
$Post_Data['Callback']          = '*** 개인정보보호를 위한 전화번호 노출방지 ***';      // 발신번호
$Post_Data['Subject']           = 'API 알림톡 발송 테스트 예제입니다.'; // 발송 제목
$Post_Data['Main_Text']         = 'API 알림톡 발송 테스트 예제\n\n기본 내용입니다.'; // 기본 내용
$Post_Data['Fail_To_Main_Text'] = '#{이름}님 안녕하세요.....'; // 문자로 전환 발송 시 내용, 전환발송 시 필수
$Post_Data['Fail_To_Template']  = 1; // 문자로 전환 발송 시 Fail_To_Main_Text 값 대신 템플릿 내용으로 발송, 0:Fail_To_Main_Text 값으로 발송, 1:템플릿 내용으로 발송
 
// 수신처 정보 추가
$Dest[] = Array("Company" => "발송킹1", "Name" => "수신자1", "Phone" => "*** 개인정보보호를 위한 휴대폰번호 노출방지 ***",
    "Replace_Datas" => Array(
        Array("Key" => "#{이름}",       "Value" => "홍길동"),
        Array("Key" => "#{이용년월}",   "Value" => "2020년 01월")
    )
);            
 
// PHP 버전에 따른 JSON 변환 시 한글처리
$phpVersion = substr(phpversion(), 0, 3) * 1;
if ( $phpVersion >= 5.4 ) {
    $Destination = json_encode($Dest, JSON_UNESCAPED_UNICODE);
} else {
    function han($s) { return reset(json_decode('{"s":"'.$s.'"}')); }
    function to_han($str) { return preg_replace('/(\\\u[a-f0-9]+)+/e','han("$0")',$str); }
    $Destination = to_han(json_encode($Dest));
}
 
$Post_Data["Destination"] = $Destination;
 
// CURL 시작
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://balsongking.com/Linkage/API/');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data'));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $Post_Data);
 
$response = curl_exec($ch);
 
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
 
if ( $status != 200 ) {
    die("Error: call to URL $url failed with status $status, response $json_response, curl_error " . curl_error($ch) . ", curl_errno " . curl_errno($ch));
}
 
curl_close($ch);
 
$jsonDecodeArr = json_decode($response, true); // json문자를  PHP 배열로 변환
 
if ( $jsonDecodeArr['Result'] != 'OK' ) { //발송 실패 시
    echo iconv("UTF-8", "EUC-KR", $jsonDecodeArr['Message']);
    exit;
}
 
$resultTh = "접수번호";
$resultTd = $jsonDecodeArr['Job_No'];

2.

// 요청변수 설정 (변수 및 값 대소문자 구분)
$Post_Data['UserID']            = 'TESTID';         // 사용자 계정
$Post_Data['UserPW']            = 'TESTPW';         // 사용자 암호
$Post_Data['Service']           = 'ATALK';          // ATALK 기입
$Post_Data['Type']              = 'Send';           // Send 기입
$Post_Data['Callback']          = '*** 개인정보보호를 위한 전화번호 노출방지 ***';      // 발신번호
$Post_Data['Send_Date']         = '';               // 발송시각 - 미입력 시 즉시발송, 예약 날짜형식) YYYY-MM-DD HH:NN
$Post_Data['Fail_To_Template']  = 1; // 문자로 전환 발송 시 Fail_To_Main_Text 값 대신 템플릿 내용으로 발송, 0:Fail_To_Main_Text 값으로 발송, 1:템플릿 내용으로 발송

if( $w=="" && !$is_admin ) {

// 글등록시 관리자에게 발송 //
// 요청변수 설정 (변수 및 값 대소문자 구분)
$Post_Data['Template_Seq']      = '250';            // 템플릿 고유번호
$Post_Data['Fail_To']           = 'LMS';            // 알림톡 실패 시 문자로 전환 발송 (빈값:전환발송 안함, SMS:단문으로 발송, LMS:장문으로 발송)
$Post_Data['Subject']           = '관리자에게'; // 발송 제목
$Post_Data['Main_Text']         = '관리자에게 보내는 내용'; // 기본 내용
    
// 수신처 정보 추가
$Dest[] = Array("Company" => "회사명", "Name" => "관리자", "Phone" => "관리자전화번호",
  "Replace_Datas" => Array(
    Array("Key" => "#{이름}", "Value" => ""),
    Array("Key" => "#{내용}", "Value" => "")
  )
);

// 글등록시 작성자에게 발송 //
// 요청변수 설정 (변수 및 값 대소문자 구분)
$Post_Data['Template_Seq']      = '251';            // 템플릿 고유번호
$Post_Data['Fail_To']           = 'LMS';            // 알림톡 실패 시 문자로 전환 발송 (빈값:전환발송 안함, SMS:단문으로 발송, LMS:장문으로 발송)
$Post_Data['Subject']           = '작성자에게'; // 발송 제목
$Post_Data['Main_Text']         = '작성자에게 보내는 내용'; // 기본 내용
    
// 수신처 정보 추가
$Dest[] = Array("Company" => "회사명", "Name" => "작성자", "Phone" => "작성자전화번호",
  "Replace_Datas" => Array(
    Array("Key" => "#{이름}", "Value" => ""),
    Array("Key" => "#{내용}", "Value" => "")
  )
);

}

// PHP 버전에 따른 JSON 변환 시 한글처리
$phpVersion = substr(phpversion(), 0, 3) * 1;
if ( $phpVersion >= 5.4 ) {
    $Destination = json_encode($Dest, JSON_UNESCAPED_UNICODE);
} else {
    function han($s) { return reset(json_decode('{"s":"'.$s.'"}')); }
    function to_han($str) { return preg_replace('/(\\\u[a-f0-9]+)+/e','han("$0")',$str); }
    $Destination = to_han(json_encode($Dest));
}
 
$Post_Data["Destination"] = $Destination;

// CURL 시작
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://balsongking.com/Linkage/API/');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data'));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $Post_Data);
 
$response = curl_exec($ch);
 
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
 
if ( $status != 200 ) {
    die("Error: call to URL $url failed with status $status, response $json_response, curl_error " . curl_error($ch) . ", curl_errno " . curl_errno($ch));
}
curl_close($ch);
$jsonDecodeArr = json_decode($response, true); // json문자를  PHP 배열로 변환
 
if ( $jsonDecodeArr['Result'] != 'OK' ) { //발송 실패 시
    echo iconv("UTF-8", "EUC-KR", $jsonDecodeArr['Message']);
    exit;
}
 
$resultTh = "접수번호";
$resultTd = $jsonDecodeArr['Job_No'];

3.

// 요청변수 설정 (변수 및 값 대소문자 구분)
$Post_Data['UserID']            = 'TESTID';         // 사용자 계정
$Post_Data['UserPW']            = 'TESTPW';         // 사용자 암호
$Post_Data['Service']           = 'ATALK';          // ATALK 기입
$Post_Data['Type']              = 'Send';           // Send 기입
$Post_Data['Callback']          = '*** 개인정보보호를 위한 전화번호 노출방지 ***';      // 발신번호
$Post_Data['Send_Date']         = '';               // 발송시각 - 미입력 시 즉시발송, 예약 날짜형식) YYYY-MM-DD HH:NN
$Post_Data['Fail_To_Template']  = 1; // 문자로 전환 발송 시 Fail_To_Main_Text 값 대신 템플릿 내용으로 발송, 0:Fail_To_Main_Text 값으로 발송, 1:템플릿 내용으로 발송

if( $w=="" && !$is_admin ) {
// 글등록시 관리자에게 발송 //
// 요청변수 설정 (변수 및 값 대소문자 구분)
$Post_Data['Template_Seq']      = '250';            // 템플릿 고유번호
$Post_Data['Fail_To']           = 'LMS';            // 알림톡 실패 시 문자로 전환 발송 (빈값:전환발송 안함, SMS:단문으로 발송, LMS:장문으로 발송)
$Post_Data['Subject']           = '관리자에게'; // 발송 제목
$Post_Data['Main_Text']         = '관리자에게 보내는 내용'; // 기본 내용
    
// 수신처 정보 추가
$Dest[] = Array("Company" => "회사명", "Name" => "관리자", "Phone" => "관리자전화번호",
  "Replace_Datas" => Array(
    Array("Key" => "#{이름}", "Value" => ""),
    Array("Key" => "#{내용}", "Value" => "")
  )
);
// PHP 버전에 따른 JSON 변환 시 한글처리
$phpVersion = substr(phpversion(), 0, 3) * 1;
if ( $phpVersion >= 5.4 ) {
    $Destination = json_encode($Dest, JSON_UNESCAPED_UNICODE);
} else {
    function han($s) { return reset(json_decode('{"s":"'.$s.'"}')); }
    function to_han($str) { return preg_replace('/(\\\u[a-f0-9]+)+/e','han("$0")',$str); }
    $Destination = to_han(json_encode($Dest));
}
 
$Post_Data["Destination"] = $Destination;

// CURL 시작
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://balsongking.com/Linkage/API/');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data'));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $Post_Data);
 
$response = curl_exec($ch);
 
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ( $status != 200 ) {
    die("Error: call to URL $url failed with status $status, response $json_response, curl_error " . curl_error($ch) . ", curl_errno " . curl_errno($ch));
}
 
curl_close($ch);
 
$jsonDecodeArr = json_decode($response, true); // json문자를  PHP 배열로 변환
if ( $jsonDecodeArr['Result'] != 'OK' ) { //발송 실패 시
    echo iconv("UTF-8", "EUC-KR", $jsonDecodeArr['Message']);
    exit;
}
 
$resultTh = "접수번호";
$resultTd = $jsonDecodeArr['Job_No'];
 
 
// 글등록시 작성자에게 발송 //
// 요청변수 설정 (변수 및 값 대소문자 구분)
$Post_Data['Template_Seq']      = '251';            // 템플릿 고유번호
$Post_Data['Fail_To']           = 'LMS';            // 알림톡 실패 시 문자로 전환 발송 (빈값:전환발송 안함, SMS:단문으로 발송, LMS:장문으로 발송)
$Post_Data['Subject']           = '작성자에게'; // 발송 제목
$Post_Data['Main_Text']         = '작성자에게 보내는 내용'; // 기본 내용
    
// 수신처 정보 추가
$Dest[] = Array("Company" => "회사명", "Name" => "작성자", "Phone" => "작성자전화번호",
  "Replace_Datas" => Array(
    Array("Key" => "#{이름}", "Value" => ""),
    Array("Key" => "#{내용}", "Value" => "")
  )
);
// PHP 버전에 따른 JSON 변환 시 한글처리
$phpVersion = substr(phpversion(), 0, 3) * 1;
if ( $phpVersion >= 5.4 ) {
    $Destination = json_encode($Dest, JSON_UNESCAPED_UNICODE);
} else {
    function han($s) { return reset(json_decode('{"s":"'.$s.'"}')); }
    function to_han($str) { return preg_replace('/(\\\u[a-f0-9]+)+/e','han("$0")',$str); }
    $Destination = to_han(json_encode($Dest));
}
 
$Post_Data["Destination"] = $Destination;

// CURL 시작
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://balsongking.com/Linkage/API/');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data'));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $Post_Data);
 
$response = curl_exec($ch);
 
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
 
if ( $status != 200 ) {
    die("Error: call to URL $url failed with status $status, response $json_response, curl_error " . curl_error($ch) . ", curl_errno " . curl_errno($ch));
}
 
curl_close($ch);
 
$jsonDecodeArr = json_decode($response, true); // json문자를  PHP 배열로 변환
if ( $jsonDecodeArr['Result'] != 'OK' ) { //발송 실패 시
    echo iconv("UTF-8", "EUC-KR", $jsonDecodeArr['Message']);
    exit;
}
 
$resultTh = "접수번호";
$resultTd = $jsonDecodeArr['Job_No'];
}

이 질문에 댓글 쓰기 :

답변 2

저의 메모리 공간이 작아서,

님의 긴 코드와 수많은 설명, 특정 전문성 요구에 대한 작업 공간이 부족함을 느낍니다.

 

발송킹(API)의 공식 지원 채널을 적극적으로 활용하시어,

API 연동 방법의 문제로부터 시작하시는 것이 더 효과적일 수 있습니다.

""" 저의 메모리 공간이 작아서,
님의 긴 코드와 수많은 설명, 특정 전문성 요구에 대한 작업 공간이 부족함을 느낍니다."""
 = 질문을 보고 느낀, 저의 뇌피셜, 추상적인 표현입니다.

님의 질문을 대하는 순간,
문제의 핵심이 한눈에 들어오지 않는다는 느낌을 받았습니다.

'빌송킹'을 사용한 적은 없지만,
서버측 스크립트 문제가 핵심이 아닌 둣하여 ~

제가 질문을 어렵게 했나요?
나름 잘 정리해서 올렸다고 생각했는데...

게시판에 글 등록시 알림톡이 발송되게 하려고 합니다.
1. 관리자에게 1111란 내용이
2. 작성자에게 2222란 내용이...

그런데 제가 실력이 미천한지라 예전에 문자 발송하던 방법으로 소스를 수정해 봤는데
아래처럼 정상적으로 보내지지 않아서 질문을 올렸습니다.

2번처럼 수정하면
관리자에게 2222란 내용이 작성자에게도 2222란 내용으로 알림톡이 오고

3번처럼 수정하면
관지라에게 1111, 2222 알림톡이 2개가 오고
작성자에게는 2222란 내용의 알림톡이 정상적으로 옵니다.

서버측 스크립트의 문제가 아니라 제가 뭘 잘못해서 발송이 안되는지를 알고 싶어서요.

답변을 작성하시기 전에 로그인 해주세요.
전체 35
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT