Here is a code sample for PHP developers who would like to connect to our SMS API using either JSON or XML.
<?php
$json_url = "https://www.naijasmsportal.com/api/sendsms.json";
$xml_url = "https://www.naijasmsportal.com/api/sendsms.xml";
$username = '';
$apikey = '';
if (isset($_POST['button'])) {
$username = $_POST['username'];
$apikey = $_POST['apikey'];
$sendername = substr($_POST['sender_name'], 0, 11);
$recipients = $_POST['telephone'];
$message = $_POST['message'];
$flash = 0;
if (get_magic_quotes_gpc()) {
$message = stripslashes($_POST['message']);
}
$message = substr($_POST['message'], 0, 160);
#Use the next line for HTTP POST with JSON
$result = useJSON($json_url, $username, $apikey, $flash, $sendername, $message, $recipients);
#Uncomment the next line and comment the one above if you want to use HTTP POST with XML
//$result = useXML($xml_url, $username, $apikey, $flash, $sendername, $message, $recipients);
}
function useJSON($url, $username, $apikey, $flash, $sendername, $messagetext, $recipients) {
$gsm = array();
$country_code = '234';
$arr_recipient = explode(',', $recipients);
foreach ($arr_recipient as $recipient) {
$mobilenumber = trim($recipient);
if (substr($mobilenumber, 0, 1) == '0'){
$mobilenumber = $country_code . substr($mobilenumber, 1);
}
elseif (substr($mobilenumber, 0, 1) == '+'){
$mobilenumber = substr($mobilenumber, 1);
}
$generated_id = uniqid('int_', false);
$generated_id = substr($generated_id, 0, 30);
$gsm['gsm'][] = array('msidn' => $mobilenumber, 'msgid' => $generated_id);
}
$message = array(
'sender' => $sendername,
'messagetext' => $messagetext,
'flash' => "{$flash}",
);
$request = array('SMS' => array(
'auth' => array(
'username' => $username,
'apikey' => $apikey
),
'message' => $message,
'recipients' => $gsm
));
$json_data = json_encode($request);
if ($json_data) {
$response = doPostRequest($url, $json_data, array('Content-Type: application/json'));
$result = json_decode($response);
return $result->response->status;
} else {
return false;
}
}
function useXML($url, $username, $apikey, $flash, $sendername, $messagetext, $recipients) {
$country_code = '234';
$arr_recipient = explode(',', $recipients);
$count = count($arr_recipient);
$msg_ids = array();
$recipients = '';
$xml = new SimpleXMLElement('<SMS></SMS>');
$auth = $xml->addChild('auth');
$auth->addChild('username', $username);
$auth->addChild('apikey', $apikey);
$msg = $xml->addChild('message');
$msg->addChild('sender', $sendername);
$msg->addChild('messagetext', $messagetext);
$msg->addChild('flash', $flash);
$rcpt = $xml->addChild('recipients');
for ($i = 0; $i < $count; $i++) {
$generated_id = uniqid('int_', false);
$generated_id = substr($generated_id, 0, 30);
$mobilenumber = trim($arr_recipient[$i]);
if (substr($mobilenumber, 0, 1) == '0') {
$mobilenumber = $country_code . substr($mobilenumber, 1);
} elseif (substr($mobilenumber, 0, 1) == '+') {
$mobilenumber = substr($mobilenumber, 1);
}
$gsm = $rcpt->addChild('gsm');
$gsm->addchild('msidn', $mobilenumber);
$gsm->addchild('msgid', $generated_id);
}
$xmlrequest = $xml->asXML();
if ($xmlrequest) {
$result = doPostRequest($url, $xmlrequest, array('Content-Type: application/xml'));
$xmlresponse = new SimpleXMLElement($result);
return $xmlresponse->status;
}
return false;
}
//Function to connect to SMS sending server using HTTP POST
function doPostRequest($url, $data, $headers = array('Content-Type: application/x-www-form-urlencoded')) {
$php_errormsg = '';
if (is_array($data)) {
$data = http_build_query($data, '', '&');
}
$params = array('http' => array(
'method' => 'POST',
'content' => $data)
);
if ($headers !== null) {
$params['http']['header'] = $headers;
}
$ctx = stream_context_create($params);
$fp = fopen($url, 'rb', false, $ctx);
if (!$fp) {
return "Error: gateway is inaccessible";
}
//stream_set_timeout($fp, 0, 250);
try {
$response = stream_get_contents($fp);
if ($response === false) {
throw new Exception("Problem reading data from $url, $php_errormsg");
}
return $response;
} catch (Exception $e) {
$response = $e->getMessage();
return $response;
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Send SMS JSON API</title>
</head>
<body>
<h2 style="text-align: center">SMS Integration Sample Code</h2>
<div style="border: 1px solid #333; padding: 5px 10px; width: 40%; margin: 0 auto">
<form id="form1" name="form1" method="post" action="">
<?php
if (!empty($_POST)) {
if ($result == 'SUCCESS') {?>
<p style="border: 1px dotted #333; background: #33ff33; padding: 5px;">Message sent</p>
<?php
}
else {?>
<p style="border: 1px dotted #333; background: #FFDACC; padding: 5px;">Message not sent</p>
<?php
}
}
?>
<p>
<label>Username:
<input name="username" type="text" id="username"/>
</label>
</p>
<p>
<label>API Key:
<input name="apikey" type="password" id="passwd" />
</label>
</p>
<p>
<label>Sender name:
<input name="sender_name" type="text" id="name" value="Integration" />
</label>
</p>
<p>
<label>Recipients
<textarea name="telephone" id="telephone" cols="45" rows="2"></textarea>
</label>
</p>
<p>
<label>Message
<textarea name="message" id="message" cols="45" rows="5"></textarea>
</label>
</p>
<p>
<label>
<input type="submit" name="button" id="button" value="Submit" />
</label>
<label>
<input type="reset" name="button2" id="button2" value="Reset" />
</label>
</p>
</form>
</div>
</body>
</html>