테스트 사이트 - 개발 중인 베타 버전입니다

sms발송 결과 코드값을 알고 싶어요 채택완료

알리고 라는 사이트에서 sms를 보내고 있습니다. 웹페이지에서 sms를 보내고 나면 

정상 발송인지 문제가 생겼는지 결과값이 오는데 아래과 같습니다. 응답 바디는 JSON 객체로 구성된다고 합니다.

 

// CURL 요청 설정 $host_info = explode("/", $sms_url); $port = $host_info[0] == 'https:' ? 443 : 80; $oCurl = curl_init(); curl_setopt($oCurl, CURLOPT_PORT, $port); curl_setopt($oCurl, CURLOPT_URL, $sms_url); curl_setopt($oCurl, CURLOPT_POST, 1); curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($oCurl, CURLOPT_POSTFIELDS, http_build_query($sms)); // POST 데이터를 인코딩하여 전송 curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE); $ret = curl_exec($oCurl); curl_close($oCurl); // 결과 확인 echo $ret; $retArr = json_decode($ret, true); // 결과 배열 print_r($retArr); // Response 출력 (연동작업시 확인용)

 

 

그리고 정상발송되면 이런 메세지가 출력이 됩니다.

 

{"result_code":"1","message":"success","msg_id":"917549656","success_cnt":1,"error_cnt":0,"msg_type":"LMS"}Array ( [result_code] => 1 [message] => success [msg_id] => 917549656 [success_cnt] => 1 [error_cnt] => 0 [msg_type] => LMS )

 

 

제가 궁금한것은

 

메세지 발송후에 조건문을 써서 정상발송되었습니다를 띄우려고 하는데 그것을 구별하는 변수를 못찾겠습니다.

[result_code] => 1  를 보고 $result_code 를 해보았으나 값이 찍히지를 않구요

 

result_code 값이 1이면 정상이라고 합니다.

 

정상유무를 판단할수 있는 변수를 찾을 수 없을까요?

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트

$retArr['result_code'] 로 하시면 될겁니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

아래와 소스와 같이 하시면 됩니다. if( $retArr['result_code'] == 1){     if( $retArr['success_cnt'] == 1) {

        echo "발송 성공";

   }else if($retArr['error_cnt'] == 1){

        echo "발송실패(오류)";

   }else {

        echo "알수없는 오류";    }

}else {

        echo "발송실패(오류)";

}

 

추가 팁 바로 불려 오지 마시고 캐쉬 형태로 파일함수를 이용해서 텍스트 파일 만들시는것 추천 드립니다. 실시간 데이타 같은 경우 누락되는 경우가 있어요 그것은 방지 하려면 아래와 같이 만들어주시면 후단 처리 하시기가 편해져요 ^^;  

$fp = fopen( $retArr['msg_id'].".txt", 'a'); // 파일을 쓰기 전용으로 열고 반환된 파일 포인터를 $fp에 저장. $str = $ret"; fwrite($fp, $str); // 파일에 $str 변수를 저장함.

fclose($fp); // 파일 닫음

 

 

하시고 나서 위에 적용 하세요 ..

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인

전체 질문 목록

🐛 버그신고