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