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개
댓글을 작성하려면 로그인이 필요합니다.
아래와 소스와 같이 하시면 됩니다. 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); // 파일 닫음
하시고 나서 위에 적용 하세요 ..
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인