카페24 플러그인을 이용한 sms전송 > 공책

본문 바로가기
010.6356.7610
  • design1001@naver.com
  • @design1001
작업물 전체보기

PHP

PHP 카페24 플러그인을 이용한 sms전송

페이지 정보

  • 작성자후야
  • 조회 : 181
  • 작성일 : 2021-02-15 02:47

본문

카페24 플러그인을 이용한 sms전송 소스입니다.

카페24에서 먼저 문자서비스 가입 후, 아이디, 인증키를 받으시기 바랍니다.

//common.lib.php 혹은 user.extend.php파일을 만들어 아래 코드 삽입
function send_sms($rphone, $sphone1, $sphone2, $sphone3, $msg){

	/******************** 인증정보 ********************/
	$sms_url = "http://sslsms.cafe24.com/sms_sender.php"; // 전송요청 URL
	// $sms_url = "https://sslsms.cafe24.com/sms_sender.php"; // HTTPS 전송요청 URL

	$sms['user_id'] = base64_encode("###"); //SMS 아이디.
	$sms['secure'] = base64_encode("######") ;//인증키

	$sms['msg'] = base64_encode(stripslashes($msg));

	$sms['rphone'] = base64_encode($rphone);
	$sms['sphone1'] = base64_encode($sphone1);
	$sms['sphone2'] = base64_encode($sphone2);
	$sms['sphone3'] = base64_encode($sphone3);
	$sms['rdate'] = base64_encode('');
	$sms['rtime'] = base64_encode('');
	$sms['mode'] = base64_encode("1"); // base64 사용시 반드시 모드값을 1로 주셔야 합니다.
	$sms['returnurl'] = base64_encode('');
	$sms['testflag'] = base64_encode('');
	$sms['destination'] = base64_encode('');
	//$returnurl = $_POST['returnurl'];
	$returnurl='';
	$sms['repeatFlag'] = base64_encode('1');
	$sms['repeatNum'] = base64_encode('1');
	$sms['repeatTime'] = base64_encode('1');
	$sms['smsType'] = base64_encode('L'); // LMS일경우 L
	$nointeractive = 1; //사용할 경우 : 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";
	}

}


//write.skin.php에 삽입
<?php $ext1 = explode('|',$write['wr_1']); ?>
<div class="bo_w_info write_div">
	<label for="wr_1">핸드폰<strong class="sound_only">필수</strong></label>
	<input type="text" name="ext1[0]" value="010" id="ext1[0]" class="frm_input tel_input" placeholder="핸드폰">
	<input type="text" name="ext1[1]" value="<?php echo $ext1[1]; ?>" id="ext1[1]" class="frm_input tel_input" placeholder="">
	<input type="text" name="ext1[2]" value="<?php echo $ext1[2]; ?>" id="ext1[2]" class="frm_input tel_input" placeholder="">
</div>


//write_update.skin.php에 삽입
$sms1 = $ext1[0].$ext1[1].$ext1[2];
$ext1 = $ext1[0]."|".$ext1[1]."|".$ext1[2];
$sql = " update {$write_table} set	wr_1 = '$ext1' where wr_id = '$wr_id' ";
sql_query($sql);


//sms보내기 버튼 링크
$ext1 = explode('|',$list[$i]['wr_1']); //받는전화번호
<a href="send_sms.php?name=<?php echo $list[$i]['wr_name'] ?>&phone1=<?php echo $ext1[0]; ?>&phone2=<?php echo $ext1[1]; ?>&phone3=<?php echo $ext1[2]; ?>&memo=<?php echo $list[$i]['wr_content'] ?>" id="btn_sms_send" class="btn_send">전달</a>


//send.php에 삽입
$sms_content = "본사접수건\n이름:".$name."\n전화번호:".$phone1."-".$phone2."-".$phone3."\n메모:".$memo;
echo $sms_content;
send_sms('받는번호('-'없이입력)','***','****','****',$sms_content); //운영자 번호 입력
alert_close('문자가 정상적으로 전달되었습니다.');