카폐24 문자 보내기 채택완료
카페24 sms api 를 이용해 문자를 보내려고 합니다.
write_update_skin.php 에 함수를 넣어서
글이 작성되면 알림문자가 되게 하려고 합니다.
일단 아래와 같이 작성하였고
Copy
아래는 cafe24 참고 소스입니다.
Copy
//입력폽
sms - php
function setPhoneNumber(val){
var numList = val.split("-");
document.smsForm.sphone1.value=numList[0];
document.smsForm.sphone2.value=numList[1];
if(numList[2] != undefined){
document.smsForm.sphone3.value=numList[2];
}
}
function loadJSON(){
var data_file = "/calljson.php";
var http_request = new XMLHttpRequest();
try{
// Opera 8.0+, Firefox, Chrome, Safari
http_request = new XMLHttpRequest();
}catch (e){
// Internet Explorer Browsers
try{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}catch (e) {
try{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}catch (e){
// Eror
alert("지원하지 않는브라우저!");
return false;
}
}
}
http_request.onreadystatechange = function(){
if (http_request.readyState == 4 ){
// Javascript function JSON.parse to parse JSON data
var jsonObj = JSON.parse(http_request.responseText);
if(jsonObj['result'] == "Success"){
var aList = jsonObj['list'];
var selectHtml = "";
selectHtml += "발신번호를 선택해주세요";
for(var i=0; i aList.length; i++){
selectHtml += "";
selectHtml += aList[i];
selectHtml += "";
}
selectHtml += "";
document.getElementById("sendPhoneList").innerHTML = selectHtml;
}
}
}
http_request.open("GET", data_file, true);
http_request.send();
}
발송타입 단문(SMS)장문(LMS)
제목 : 장문(LMS)인 경우(한글30자이내)
전송메세지 내용입력
단문(SMS) : 최대 90byte까지 전송할 수 있으며, 잔여건수 1건이 차감됩니다.
장문(LMS) : 한번에 최대 2,000byte까지 전송할 수 있으며 1회 발송당 잔여건수 3건이 차감됩니다.
받는 번호 예) 011-011-111 , '-' 포함해서 입력.
이름삽입번호 예) 010-000-0000|홍길동
보내는 번호
예약 날짜 예)20090909
예약 시간 예)173000 ,오후 5시 30분,예약시간은 최소 10분 이상으로 설정.
return url
test flag 예) 테스트시: Y
nointeractive 예) 사용할 경우 : 1, 성공시 대화상자(alert)를 생략.
반복설정
반복횟수
1
2
3
예) 1~10회 가능.
전송간격 예)15분 이상부터 가능.
15
20
25
분마다
이통사 정책에 따라 발신번호와 수신번호가 같은 경우 발송되지 않습니다.
Copy
if($_POST['action']=='go'){
/******************** 인증정보 ********************/
$sms_url = "https://sslsms.cafe24.com/sms_sender.php"; // HTTPS 전송요청 URL
// $sms_url = "http://sslsms.cafe24.com/sms_sender.php"; // 전송요청 URL
$sms['user_id'] = base64_encode("bareunsms"); //SMS 아이디.
$sms['secure'] = base64_encode("인증후 사용하세요") ;//인증키
$sms['msg'] = base64_encode(stripslashes($_POST['msg']));
if( $_POST['smsType'] == "L"){
$sms['subject'] = base64_encode($_POST['subject']);
}
$sms['rphone'] = base64_encode($_POST['rphone']);
$sms['sphone1'] = base64_encode($_POST['sphone1']);
$sms['sphone2'] = base64_encode($_POST['sphone2']);
$sms['sphone3'] = base64_encode($_POST['sphone3']);
$sms['rdate'] = base64_encode($_POST['rdate']);
$sms['rtime'] = base64_encode($_POST['rtime']);
$sms['mode'] = base64_encode("1"); // base64 사용시 반드시 모드값을 1로 주셔야 합니다.
$sms['returnurl'] = base64_encode($_POST['returnurl']);
$sms['testflag'] = base64_encode($_POST['testflag']);
$sms['destination'] = strtr(base64_encode($_POST['destination']), '+/=', '-,');
$returnurl = $_POST['returnurl'];
$sms['repeatFlag'] = base64_encode($_POST['repeatFlag']);
$sms['repeatNum'] = base64_encode($_POST['repeatNum']);
$sms['repeatTime'] = base64_encode($_POST['repeatTime']);
$sms['smsType'] = base64_encode($_POST['smsType']); // LMS일경우 L
$nointeractive = $_POST['nointeractive']; //사용할 경우 : 1, 성공시 대화상자(alert)를 생략
$host_info = explode("/", $sms_url);
$host = $host_info[2];
$path = $host_info[3]."/".$host_info[4];
srand((double)microtime()*1000000);
$boundary = "---------------------".substr(md5(rand(0,32000)),0,10);
//print_r($sms);
// 헤더 생성
$header = "POST /".$path ." HTTP/1.0\r\n";
$header .= "Host: ".$host."\r\n";
$header .= "Content-type: multipart/form-data, boundary=".$boundary."\r\n";
// 본문 생성
foreach($sms AS $index => $value){
$data .="--$boundary\r\n";
$data .= "Content-Disposition: form-data; name=\"".$index."\"\r\n";
$data .= "\r\n".$value."\r\n";
$data .="--$boundary\r\n";
}
$header .= "Content-length: " . strlen($data) . "\r\n\r\n";
$fp = fsockopen($host, 80);
if ($fp) {
fputs($fp, $header.$data);
$rsp = '';
while(!feof($fp)) {
$rsp .= fgets($fp,8192);
}
fclose($fp);
$msg = explode("\r\n\r\n",trim($rsp));
$rMsg = explode(",", $msg[1]);
$Result= $rMsg[0]; //발송결과
$Count= $rMsg[1]; //잔여건수
//발송결과 알림
if($Result=="success") {
$alert = "성공";
$alert .= " 잔여건수는 ".$Count."건 입니다.";
}
else if($Result=="reserved") {
$alert = "성공적으로 예약되었습니다.";
$alert .= " 잔여건수는 ".$Count."건 입니다.";
}
else if($Result=="3205") {
$alert = "잘못된 번호형식입니다.";
}
else if($Result=="0044") {
$alert = "스팸문자는발송되지 않습니다.";
}
else {
$alert = "[Error]".$Result;
}
}
else {
$alert = "Connection Failed";
}
if($nointeractive=="1" && ($Result!="success" && $Result!="Test Success!" && $Result!="reserved") ) {
echo "alert('".$alert ."')";
}
else if($nointeractive!="1") {
echo "alert('".$alert ."')";
}
echo "location.href='".$returnurl."';";
}
Copy
$oCurl = curl_init();
$url = "https://sslsms.cafe24.com/smsSenderPhone.php";
$aPostData['userId'] = "bareunsms"; // SMS 아이디
$aPostData['passwd'] = "인증후 사용하세요"; // 인증키
curl_setopt($oCurl, CURLOPT_URL, $url);
curl_setopt($oCurl, CURLOPT_POST, 1);
curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($oCurl, CURLOPT_POSTFIELDS, $aPostData);
curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, 0);
$ret = curl_exec($oCurl);
echo $ret;
curl_close($oCurl);
예제소스를 넣으니 소스가 기네요. 조언 부탁드립니다.
답변 1개
1년 전
예를 들어, write_update_skin.php 파일에 글이 작성되는 부분에 알림 문자를 보내는 코드를 추가하면, 글이 작성될 때마다 알림 문자가 전송되지 않을까 생각합니다.
예를 들어 아래와 같이 하면 되지 않을까요?
Copy
// 글이 작성되는 부분
// 여기서 알림 문자를 보내고 싶다면
$message = "새로운 글이 작성되었습니다."; // 보낼 메시지 설정
sendSMS($message); // 알림 문자 보내기
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인