Merhaba Arkadaşlar
Sms ile ilgili arkadaşların aklında soru işareti kalmasın diye bu makaleyi açıyorum.
Bu örneğimizde Php ile Sms nasıl gönderilir? bunu anlatmaya çalışacağım. Detaylı anlatımı biraz karışık. Bir servis sağlayıcıdan Sms paketi satın alıyorsunuz belirlenen api adresine php ile xml post edip geri yanıt alıyorsunuz vs vs vs. Bunu işlemleri kısatmak adına Php ile bir Sms class ı hazırladım.Bu class ile php ile sms göndermek mail atmak kadar kolay olacaktır.Yukarıda da belirttiğim gibi öncelikle bir servis sağlayıcıdan api almamız ve başlık kaydettirmeniz gerekiyor.
Şimdilik aşağıdaki linkten aldığımızı varsayıyorum.
Artık kodlamaya başlayalım
Bu örneğimizde Php ile Sms nasıl gönderilir? bunu anlatmaya çalışacağım. Detaylı anlatımı biraz karışık. Bir servis sağlayıcıdan Sms paketi satın alıyorsunuz belirlenen api adresine php ile xml post edip geri yanıt alıyorsunuz vs vs vs. Bunu işlemleri kısatmak adına Php ile bir Sms class ı hazırladım.Bu class ile php ile sms göndermek mail atmak kadar kolay olacaktır.Yukarıda da belirttiğim gibi öncelikle bir servis sağlayıcıdan api almamız ve başlık kaydettirmeniz gerekiyor.
Şimdilik aşağıdaki linkten aldığımızı varsayıyorum.
Toplu SMS Göndermeye Bugün Başlayın
Hemen ücretsiz üye olun ve Toplu SMS göndermeye bugün başlayın! SMS API desteği, izinli veritabanı oluşturma, hızlı ve kesintisiz SMS gönderimi...
www.iletimerkezi.com
sms.class.php
PHP:
class smsGonder
{
private $username = 'API KULLANICI ADI';
private $password = 'API ŞİFRE';
private $title = 'SMS BAŞLIĞINIZ';
private $reqSendLink = 'http://api.iletimerkezi.com/v1/send-sms';
private $reqBalanceLink = 'https://api.iletimerkezi.com/v1/get-balance';
private $reqReportLink = 'https://api.iletimerkezi.com/v1/get-report';
function sendRequest($reqLink,$send_xml,$header_type)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$reqLink);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$send_xml);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,2);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPHEADER,$header_type);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 120);
$result = curl_exec($ch);
return $result;
}
function sendSms($numbers, $message)
{
$xml = <<<EOS
<request>
<authentication>
<username>{$this->username}</username>
<password>{$this->password}</password>
</authentication>
<order>
<sender>{$this->title}</sender>
<sendDateTime></sendDateTime>
<message>
<text>{$message}</text>
<receipents>
<number>{$numbers}</number>
</receipents>
</message>
</order>
</request>
EOS;
$result = $this->sendRequest($this->reqSendLink ,$xml,array('Content-Type: text/xml'));
$xml = simplexml_load_string($result);
return $xml->status->code;
die();
}
function getBalance()
{
$xml = <<<EOS
<?xml version="1.0" encoding="UTF-8" ?>
<request>
<authentication>
<username>{$this->username}</username>
<password>{$this->password}</password>
</authentication>
</request>
EOS;
$result = $this->sendRequest($this->reqBalanceLink,$xml,array('Content-Type: text/xml'));
$xml = simplexml_load_string($result);
if($xml->status->code == '200'){
return $xml->balance->sms;
die();
}
}
}
Dosyamızı oluşturduktan sonra servis sağlayıcının size vermiş olduğu kullanıcı adı, şifre ve başlık parametrelerini private ile tanımlanmış değişkenlerimize aktarıyoruz.
gonder.php
PHP:
require_once ('sms.class.php');
$sms = new smsGonder;
$numara = '05324441122';
$mesaj = 'Bu bir test mesajıdır';
$cevap = $sms->sendSms($numara, $mesaj);
if ($cevap == '200') {
echo "Mesaj Gönderildi";
}else {
echo "Mesaj Gönderme Hatası $cevap";
}
gönder.php dosyamız ile bu mesajı gönderdik. Eğer işlem başarılı ise servis sağlayıcımızdan geri “200” kodu dönecektir. “200” kodu bu işlem başarı anlamına gelmektedir. Diğer sms durum kodlarına SMS API = İletiMerkezi | Python, PHP, C#, Ruby & Java ile SMS Gönder
yukarıdaki linkten ulaşabilirsiniz.
Servis sağlayıcısındaki sms paketinizdeki kalan sms adetini görmek için aşağıdaki kodu yazmanız yeterli.
echo $sms->getBalance();
Yukarıdaki kodlar en basite indirilmiş halidir. Siz kendi isteğiniz ve ihtiyaçlarınız doğrultusunda eklemeler yada çıkarmalar yapabilirsiniz.
İyi Forumlar