· 6 years ago · Sep 18, 2019, 08:40 AM
1<?php
2$json_url = "http://api.ebulksms.com:8080/sendsms.json";
3$xml_url = "http://api.ebulksms.com:8080/sendsms.xml";
4$http_get_url = "http://api.ebulksms.com:8080/sendsms";
5$username = '';
6$apikey = '';
7
8if (isset($_POST['button'])) {
9 $username = $_POST['username'];
10 $apikey = $_POST['apikey'];
11 $sendername = substr($_POST['sender_name'], 0, 11);
12 $recipients = $_POST['telephone'];
13 $message = $_POST['message'];
14 $flash = 0;
15 if (get_magic_quotes_gpc()) {
16 $message = stripslashes($_POST['message']);
17 }
18 $message = substr($_POST['message'], 0, 160);
19#Use the next line for HTTP POST with JSON
20 $result = useJSON($json_url, $username, $apikey, $flash, $sendername, $message, $recipients);
21#Uncomment the next line and comment the one above if you want to use HTTP POST with XML
22 //$result = useXML($xml_url, $username, $apikey, $flash, $sendername, $message, $recipients);
23
24#Uncomment the next line and comment the ones above if you want to use simple HTTP GET
25 //$result = useHTTPGet($http_get_url, $username, $apikey, $flash, $sendername, $message, $recipients);
26}
27
28function useJSON($url, $username, $apikey, $flash, $sendername, $messagetext, $recipients) {
29 $gsm = array();
30 $country_code = '234';
31 $arr_recipient = explode(',', $recipients);
32 foreach ($arr_recipient as $recipient) {
33 $mobilenumber = trim($recipient);
34 if (substr($mobilenumber, 0, 1) == '0'){
35 $mobilenumber = $country_code . substr($mobilenumber, 1);
36 }
37 elseif (substr($mobilenumber, 0, 1) == '+'){
38 $mobilenumber = substr($mobilenumber, 1);
39 }
40 $generated_id = uniqid('int_', false);
41 $generated_id = substr($generated_id, 0, 30);
42 $gsm['gsm'][] = array('msidn' => $mobilenumber, 'msgid' => $generated_id);
43 }
44 $message = array(
45 'sender' => $sendername,
46 'messagetext' => $messagetext,
47 'flash' => "{$flash}",
48 );
49
50 $request = array('SMS' => array(
51 'auth' => array(
52 'username' => $username,
53 'apikey' => $apikey
54 ),
55 'message' => $message,
56 'recipients' => $gsm
57 ));
58 $json_data = json_encode($request);
59 if ($json_data) {
60 $response = doPostRequest($url, $json_data, array('Content-Type: application/json'));
61 $result = json_decode($response);
62 return $result->response->status;
63 } else {
64 return false;
65 }
66}
67
68function useXML($url, $username, $apikey, $flash, $sendername, $messagetext, $recipients) {
69 $country_code = '234';
70 $arr_recipient = explode(',', $recipients);
71 $count = count($arr_recipient);
72 $msg_ids = array();
73 $recipients = '';
74
75 $xml = new SimpleXMLElement('<SMS></SMS>');
76 $auth = $xml->addChild('auth');
77 $auth->addChild('username', $username);
78 $auth->addChild('apikey', $apikey);
79
80 $msg = $xml->addChild('message');
81 $msg->addChild('sender', $sendername);
82 $msg->addChild('messagetext', $messagetext);
83 $msg->addChild('flash', $flash);
84
85 $rcpt = $xml->addChild('recipients');
86 for ($i = 0; $i < $count; $i++) {
87 $generated_id = uniqid('int_', false);
88 $generated_id = substr($generated_id, 0, 30);
89 $mobilenumber = trim($arr_recipient[$i]);
90 if (substr($mobilenumber, 0, 1) == '0') {
91 $mobilenumber = $country_code . substr($mobilenumber, 1);
92 } elseif (substr($mobilenumber, 0, 1) == '+') {
93 $mobilenumber = substr($mobilenumber, 1);
94 }
95 $gsm = $rcpt->addChild('gsm');
96 $gsm->addchild('msidn', $mobilenumber);
97 $gsm->addchild('msgid', $generated_id);
98 }
99 $xmlrequest = $xml->asXML();
100
101 if ($xmlrequest) {
102 $result = doPostRequest($url, $xmlrequest, array('Content-Type: application/xml'));
103 $xmlresponse = new SimpleXMLElement($result);
104 return $xmlresponse->status;
105 }
106 return false;
107}
108
109//Function to connect to SMS sending server using HTTP GET
110function useHTTPGet($url, $username, $apikey, $flash, $sendername, $messagetext, $recipients) {
111 $query_str = http_build_query(array('username' => $username, 'apikey' => $apikey, 'sender' => $sendername, 'messagetext' => $messagetext, 'flash' => $flash, 'recipients' => $recipients));
112 return file_get_contents("{$url}?{$query_str}");
113}
114
115//Function to connect to SMS sending server using HTTP POST
116function doPostRequest($url, $arr_params, $headers = array('Content-Type: application/x-www-form-urlencoded')) {
117 $response = array();
118 $final_url_data = $arr_params;
119 if (is_array($arr_params)) {
120 $final_url_data = http_build_query($arr_params, '', '&');
121 }
122 $ch = curl_init();
123 curl_setopt($ch, CURLOPT_URL, $url);
124 curl_setopt($ch, CURLOPT_POSTFIELDS, $final_url_data);
125 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
126 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
127 curl_setopt($ch, CURLOPT_POST, 1);
128 curl_setopt($ch, CURLOPT_NOSIGNAL, 1);
129 curl_setopt($ch, CURLOPT_VERBOSE, 1);
130 curl_setopt($ch, CURLOPT_TIMEOUT, 30);
131 $response['body'] = curl_exec($ch);
132 $response['code'] = curl_getinfo($ch, CURLINFO_HTTP_CODE);
133 curl_close($ch);
134 return $response['body'];
135}
136
137?>
138
139<!DOCTYPE html>
140<html lang="en">
141 <head>
142 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
143 <title>EbulkSMS Send SMS API Sample</title>
144 </head>
145
146 <body>
147 <h2 style="text-align: center">Ebulk SMS Integration Sample Code</h2>
148 <div style="border: 1px solid #333; padding: 5px 10px; width: 40%; margin: 0 auto">
149 <form id="form1" name="form1" method="post" action="">
150
151 <?php
152 if (!empty($_POST)) {
153 if ($result == 'SUCCESS') {?>
154 <p style="border: 1px dotted #333; background: #33ff33; padding: 5px;">Message sent</p>
155 <?php
156 }
157 else {?>
158 <p style="border: 1px dotted #333; background: #FFDACC; padding: 5px;">Message not sent - <?php echo $result;?></p>
159 <?php
160 }
161 }
162 ?>
163
164 <p>
165 <label>Username:
166 <input name="username" type="text" id="username"/>
167 </label>
168 </p>
169 <p>
170 <label>API Key:
171 <input name="apikey" type="password" id="passwd" />
172 </label>
173 </p>
174 <p>
175 <label>Sender name:
176 <input name="sender_name" type="text" id="name" value="Integration" />
177 </label>
178 </p>
179 <p>
180 <label>Recipients
181 <textarea name="telephone" id="telephone" cols="45" rows="2"></textarea>
182 </label>
183 </p>
184 <p>
185 <label>Message
186 <textarea name="message" id="message" cols="45" rows="5"></textarea>
187 </label>
188 </p>
189 <p>
190 <label>
191 <input type="submit" name="button" id="button" value="Submit" />
192 </label>
193 <label>
194 <input type="reset" name="button2" id="button2" value="Reset" />
195 </label>
196 </p>
197 </form>
198 </div>
199 </body>
200</html>