sms 전송내역을 가져오고 싶은데요
본문
알리고라는 곳에서 sms를 사용하고 있습니다.
발송은 잘 되는데요
발송내역을 보는 페이지가 아래와 같습니다.
내용은 이런식으로 나옵니다.
{"result_code":1,"message":"success","list":[{"mid":"931412587","type":"LMS","sender":"*** 개인정보보호를 위한 전화번호 노출방지 ***","sms_count":"1","reserve_state":"","msg":"JB\ubb38\ud654\uacf5\uac04 \uc804\uc8fc-\ud504\ub85c\uadf8\ub7a8 \ucc38\uac00\ub97c \uc2e0\uccad\ud558\uc168\uc2b5\ub2c8\ub2e4. \ud589\uc0ac\uba85 : \uaca8\uc6b8 \ub9c8\uc220\uad50\uc2e4 \ub0a0\uc9dc : 2024-11-28 ~ 2024-12-19 \uc2dc\uac04 : 2:00 PM ~ 3:00 PM","fail_count":"0","reg_date":"2024-11-19 22:09:57","reserve":""},{"mid":"931193243","type":"LMS","sender":"*** 개인정보보호를 위한 전화번호 노출방지 ***","sms_count":"1","reserve_state":"","msg":"JB\ubb38\ud654\uacf5\uac04 \uc804\uc8fc................
여기에 발송내용,성공실패,발송일시등이 나오는것 같은데
이것을 페이지에 뿌리고 싶은데 어떻게 가져와야 할지를 모르겠습니다.
알려주시면 감사하겠습니다.
답변 3
뭘 어떻게 보여주고 싶은건가요? 발송만하면 되는거 아닌가요?
매뉴얼 확인해보세요 보통 매뉴얼에 완료, 실패 이런거 다 나와서요
$result = json_decode($ret, true); // 결과 배열
// 결과 출력을 위한 페이지 구성
$g5['title'] = 'SMS 발송내역';
?>
<div class="tbl_head01 tbl_wrap">
<table>
<caption>SMS 발송내역</caption>
<thead>
<tr>
<th scope="col">번호</th>
<th scope="col">발송유형</th>
<th scope="col">발신번호</th>
<th scope="col">메시지</th>
<th scope="col">발송건수</th>
<th scope="col">실패건수</th>
<th scope="col">발송일시</th>
<th scope="col">상태</th>
</tr>
</thead>
<tbody>
<?php
if ($result['result_code'] == 1 && !empty($result['list'])) {
foreach($result['list'] as $i => $row) {
$num = $result['count'] - $i;
?>
<tr>
<td class="td_num"><?php echo $num ?></td>
<td class="td_type"><?php echo $row['type'] ?></td>
<td class="td_tel"><?php echo $row['sender'] ?></td>
<td class="td_msg"><?php echo $row['msg'] ?></td>
<td class="td_num"><?php echo $row['sms_count'] ?></td>
<td class="td_num"><?php echo $row['fail_count'] ?></td>
<td class="td_datetime"><?php echo $row['reg_date'] ?></td>
<td class="td_status">
<?php
if ($row['fail_count'] > 0) {
echo '<span class="status_fail">실패</span>';
} else {
echo '<span class="status_success">성공</span>';
}
?>
</td>
</tr>
<?php
}
} else {
?>
<tr>
<td colspan="8" class="empty_table">발송내역이 없습니다.</td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
<style>
.td_type { width: 80px; }
.td_tel { width: 120px; }
.td_msg { text-align: left; padding-left: 10px !important; }
.td_num { width: 70px; text-align: center; }
.td_datetime { width: 140px; }
.td_status { width: 80px; }
.status_success { color: #3c763d; }
.status_fail { color: #a94442; }
</style>
※ 알리고(Aligo) SMS 서비스 회원 같으신데~
- API 서비스 사용 신청하셔, 인증키를 발급 받으신 후, 시도하여 보세요.
<?php
$sms_url = "https://apis.aligo.in/list"; // 전송내역 URL
$sms_user_id = "사용자 아이디"; // SMS 아이디
$sms_key = "인증키"; // 인증키
$sms_page = "1"; // 조회 시작번호
$sms_page_size = "10"; // 조회 개수
$sms_start_date = "2024-11-01"; // 조회 시작일
$sms_limit_day = "7"; // 조회 기간
$post_fields = [
'user_id' => $sms_user_id,
'key' => $sms_key,
'page' => $sms_page,
'page_size' => $sms_page_size,
'start_date' => $sms_start_date,
'limit_day' => $sms_limit_day,
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $sms_url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_fields);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($curl);
curl_close($curl);
$data = json_decode($response, true);
if (isset($data['result_code']) && $data['result_code'] == 1) {
echo "발송 내역 조회 성공!\n";
foreach ($data['list'] as $record) {
echo "메시지 ID: " . $record['mid'] . "\n";
echo "메시지 타입: " . $record['type'] . "\n";
echo "발신자: " . $record['sender'] . "\n";
echo "SMS 건수: " . $record['sms_count'] . "\n";
echo "실패 건수: " . $record['fail_count'] . "\n";
echo "메시지 내용: " . $record['msg'] . "\n";
echo "등록 날짜: " . $record['reg_date'] . "\n";
echo str_repeat("-", 40) . "\n";
}
} else {
echo "발송 내역 조회 실패: " . $data['message'] . "\n";
}