1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
|
<? // 글자 짜르는 함수 function str_cut($str, $number){ $length = strlen($str);
for($k = 0; $k < $number; $k++) if(ord(substr($str, $k, 1)) > 127) $k++;
if($length > $number) $return_str = substr($str, 0, $k).".."; else $return_str = $str;
return $return_str; }
// sms 전송 함수(사용자ID, 받는사람핸드폰, 보내는사람(회신전화번호), 발송일, 메세지, 현재포인트) function SendSMS($userId, $totel, $fromtel, $msg, $point) { global $conn; // DB Connect 정보를 가진 변수 호출 global $sms_no; // SMS 고유번호를 가진 변수 호출 $check = 0; // insert 성공 여부를 확인하기 위한 변수 $sendOkCount = 0; // 전송 성공 갯수 담는 변수 $sendFailCount = 0; // 전송 실패 갯수 담는 변수 $totellist = explode(",", $totel); // 받는 대상이 여러명일 때 , 단위로 짜른다 $retunMsg = ""; // return 메세지 $num = 1; // 뒤에 붙이는 숫자 $charSet_sql = "set names utf8"; @mysql_query($charSet_sql, $conn); if(count($totellist) <= $point){ // 사용자의 포인트와 sms발송건수가 같을 때 발송 // sms는 80자 까지로 제한 $msg = str_cut($msg, 80); // SMS 고유번호 $sql = @mysql_query("SELECT SP_SMS_NO()"); while($row = @mysql_fetch_assoc($rs)){ $sms_no = $row['SP_SMS_NO()']; } // 포인트 차감 $point = $point - count($totellist); $sql = "UPDATE smsuser SET restcnt = (restcnt - ".count($totellist).") WHERE userid = '{$userId}'"; @mysql_query($sql, $conn); // 전송예약 테이블에 DATA insert foreach($totellist as $value){ // 고유키 생성(yymmddhhmmss + 프로시저6자리 + 순번매긴것) $num = $num == 100 ? 1 : $num; $num = sprintf("%02d", $num); $sMsgId = date('ymdHis', time()); $sMsgId = $sMsgId.$sms_no.$num; // 전화번호에 hyphen(-) 을 제거 하는 작업 $value = str_replace("-", "", $value); $fromtel = str_replace("-", "", $fromtel); // 실제 전송 Query $sql = "INSERT telink_sms SET CMP_MSG_ID = '{$sMsgId}', WRT_DTTM = DATE_FORMAT(NOW(), '%Y%m%d%H%i%s'), SND_DTTM = DATE_FORMAT(NOW(), '%Y%m%d%H%i%s'), SND_PHN_ID = '{$userId}', RCV_PHN_ID = '{$value}', CALLBACK = '{$fromtel}', SND_MSG = '{$msg}' "; @mysql_query($sql, $conn); $check = @mysql_affected_rows(); // 성공적인 발송이면 전송 횟수 카운트 실패하면 실패횟수 카운트 if($check != 0){ $sendOkCount++; }else{ $sendFailCount++; } $num++; } @mysql_close(); $retunMsg = "[ok];pt=".$point.";"; }else{ $retunMsg = "잔여포인트가 부족합니다."; } return $retunMsg; }
// mms 전송 함수(사용자ID, 받는사람핸드폰, 보내는사람(회신전화번호), 발송일, 메세지, 현재포인트) function SendMMS($userId, $totel, $fromtel, $msg, $point) { global $conn; // DB Connect 정보를 가진 변수 호출 $check = 0; // insert 성공 여부를 확인하기 위한 변수 $sendOkCount = 0; // 전송 성공 갯수 담는 변수 $sendFailCount = 0; // 전송 실패 갯수 담는 변수 $totellist = explode(",", $totel); // 받는 대상이 여러명일 때 , 단위로 짜른다 $retunMsg = ""; // return 메세지 $num = 1; // 뒤에 붙이는 숫자 $charSet_sql = "set names utf8"; @mysql_query($charSet_sql, $conn); if((count($totellist) * 3) <= $point){ // 사용자의 포인트와 sms발송건수가 같을 때 발송 // mms는 80자 까지로 제한 $msg = str_cut($msg, 2000); // MMS 고유번호 $sql = @mysql_query("SELECT SP_SMS_NO()"); while($row = @mysql_fetch_assoc($rs)){ $sms_no = $row['SP_SMS_NO()']; } // 포인트 차감 $point = $point - (count($totellist) * 3); $sql = "UPDATE smsuser SET restcnt = (restcnt - ".(count($totellist) * 3).") WHERE userid = '{$userId}'"; @mysql_query($sql, $conn); // 전송예약 테이블에 DATA insert foreach($totellist as $value){ // 고유키 생성(yymmddhhmmss + 프로시저6자리 + 순번매긴것) $num = $num == 100 ? 1 : $num; $num = sprintf("%02d", $num); $sMsgId = date('ymdHis', time()); $sMsgId = $sMsgId.$sms_no.$num; // 전화번호에 hyphen(-) 을 제거 하는 작업 $value = str_replace("-", "", $value); $fromtel = str_replace("-", "", $fromtel);
// 실제 전송 Query $sql = "INSERT tbl_submit_queue SET CMP_MSG_ID = '{$sMsgId}', USR_ID = 'HH053112', USED_CD = '10', RESERVED_FG = 'I', RESERVED_DTTM = DATE_FORMAT(NOW(), '%Y%m%d%H%i%s'), RCV_PHN_ID = '{$value}', SND_PHN_ID = '{$fromtel}', SND_MSG = '{$msg}', CONTENT_CNT = 1, CONTENT_MIME_TYPE = 'text/plain', MSG_TITLE = NULL, ETC_CHAR_1 = '{$userId}' "; @mysql_query($sql, $conn); $check = @mysql_affected_rows(); // 성공적인 발송이면 전송 횟수 카운트 실패하면 실패횟수 카운트 if($check != 0){ $sendOkCount++; }else{ $sendFailCount++; } $num++; } @mysql_close(); $retunMsg = "[ok];pt=".$point.";"; }else{ $retunMsg = "잔여포인트가 부족합니다."; } return $retunMsg; } ?>
|