HTTP GET API SMS Gönderimi İstek yapılacak adres: http://api.idasms.com/v1/send-sms/get/ Yapılacak olan istek örneği: http://api.idasms.com/v1/sendsms/get/?username=kullanici_adi&password=kullanici_sifresi&text=lorem%20ipsum %20dolor%20sit%20amet&receipents=5301234569, 5301234570&sender=PROAKTIF İstekte gönderilen parametrelerin açıklamaları username: www.idasms.com a giriş yaparken kullanılan kullanıcı adıdır. Genellikle kayıt aşamasında verilen cep telefonu numarasıdır. İstek yapılırken gönderilmesi zorunludur. password: www.idasms.com a giriş yaparken kullanılan şifredir. İstek yapılırken gönderilmesi zorunludur. text: Gönderilecek olan SMS metnini içerir. İstek yapılırken gönderilmesi zorunludur. URL encode işleminden geçirilmelidir. receipents: Alıcının cep telefonu numarasını içerir. Numara formatı 5xxxxxxxxx şeklinde olmalıdır. İstek yapılırken gönderilmesi zorunludur. Belirtilen mesaj metni için birden fazla alıcı tanımlanacaksa numaralar virgül ile ayrılmalıdır. sender: www.idasms.com yönetim panelinden tanımlamış ve www.idasms.com tarafından onaylanmış, maksimum 11 karakterden oluşan başlık bilgisidir. Gönderilen mesaj, alıcıya bu parametre ile belirtilen başlık ile yollanır. İstek yapılırken gönderilmesi zorunludur. URL encode işleminden geçirilmelidir.
HTTP XML POST API SMS Gönderimi İstek yapılacak adres: http://api.idasms.com/v1/send-sms Yapılacak olan isteğin genel XML yapısı: <username></username> <password></password> <sender></sender> <senddatetime></senddatetime> <text><![cdata[...]]></text> <receipents> <number></number> <number></number> </receipents> Sunucuya yapılacak olan istek request etiketi ile sarmalanmalıdır. Bu etiketin alt etiketlerinin tanımları authentication: İstek yapılan işleme dair yetki alabilmek için gönderilmesi gereken kullanıcı bilgileridir. Alt etiketleri username: www.idasms.com a giriş yaparken kullanılan kullanıcı adıdır. Genellikle kayıt aşamasında verilen cep telefonu numarasıdır. İstek yapılırken gönderilmesi zorunludur.
password: www.idasms.com a giriş yaparken kullanılan şifredir. İstek yapılırken gönderilmesi zorunludur. order: Gönderilecek olan SMSler bir sipariş olarak kabul edilir ve istek yapıldıktan sonra bu şekilde raporlanmaya başlanır. Bu sipariş bazı zamanlar tek alıcıya tek mesaj içerebileceği gibi birden fazla alıcıya birden fazlı mesaj da içerebilir. Alt etiketleri sender: www.idasms.com yönetim panelinden tanımlamış ve www.idasms.com tarafından onaylanmış, maksimum 11 karakterden oluşan başlık bilgisidir. Gönderilen mesaj, alıcıya bu parametre ile belirtilen başlık ile yollanır. İstek yapılırken gönderilmesi zorunludur. senddatetime: Mesajın gönderim tarihini ifade eder. İleri tarihli mesaj gönderimleri için kullanılır. Formatı GG/AA/YYYY SS:DD şeklindedir. İstek yapılırken gönderilmesi zorunlu değildir. Varsayılan değeri, istek yapılan zamandır. message: Gönderilecek olan mesaj bilgisini içerir. Alt etiketleri text: Gönderilecek olan SMS metnini içerir. İstek yapılırken gönderilmesi zorunludur. receipents: Gönderilecek olan SMSlerin alıcılarını içerir. Alıcılar aşağıdaki etiket ile belirtilir: number: Alıcının cep telefonu numarasını içerir. 905xxxxxxxxx, +90 5xx xxx xx xx, 5xxxxxxxxx gibi formatlar kullanılabilir. İstek yapılırken gönderilmesi zorunludur. Belirtilen mesaj metni için birden fazla alıcı tanımlanacaksa bu etiket alıcı sayısı kadar tekrarlanmalıdır. Tek sipariş içinde farklı mesaj gönderilmek isteniyorsa message etiketi gönderilmek istenen farklı mesaj sayısı kadar tekrarlanmalıdır. order etiketi tekrarlanabilir bir etiket değildir. İstek başına yalnızca bir sipariş gönderilebilir.
Sunucu yanıtının XML yapısı: <response> <code></code> <id></id> Sunucudan gelen yanıt her zaman response etiketi ile sarmalanmıştır. Bu etiketi alt etiketlerinin tanımı,status: İşlem durumu ile ilgili bilgi içerir. Bu etiket ile döndürülen değerler aynı zamanda HTTP yanıtının başlık bilgisine bakılarak da elde edilebilir. Bu etiket, yapılan her istekte standart olarak döndürülür. Alt etiketleri code: İşlem durumunu belirten numerik değerdir. message: İşlem durumu hakkında bilgi mesajı içerir. order: İşlem başarılı olarak tamamlandıysa oluşturulan sipariş bilgisini içerir. İşlem başarısızsa bu etiket döndürülmez. Alt etiketi id: Siparişi ifade eden eşsiz numerik değerdir. order etiketi tekrarlanabilir bir etiket değildir. İstek başına yalnızca bir sipariş gönderilebilir.
Örnek İstek <?xml version="1.0" encoding="utf-8"?> <username>kullanici_adi</username> <password>kullanici_sifresi</password> <sender>proaktif</sender> <senddatetime>13/01/2014 09:00</sendDateTime> <text><![cdata[lorem ipsum dolor sit amet, consectetur adipiscing elit.]]></text> <receipents> <number>5301234567</number> <number>5301234568</number> </receipents> <text><![cdata[nunc non mauris lectus. Vivamus non est enim.]]></text> <receipents> <number>5301234569</number> <number>5301234560</number> </receipents> Örnek Yanıt
<?xml version="1.0" encoding="utf-8"?> <response> <code>200</code> İşlem başarılı <id>428</id> Sipariş İptali İstek yapılacak adres: http://api.idasms.com/v1/cancel-order Yapılacak olan isteğin genel XML yapısı: <username></username> <password></password> <id></id> Sunucuya yapılacak olan istek request etiketi ile sarmalanmalıdır. Bu etiketin alt etiketlerinin tanımları authentication: İstek yapılan işleme dair yetki alabilmek için gönderilmesi gereken kullanıcı bilgileridir. Alt etiketleri username: www.idasms.com a giriş yaparken kullanılan kullanıcı adıdır. Genellikle kayıt aşamasında verilen cep telefonu numarasıdır. İstek yapılırken gönderilmesi zorunludur. password: www.idasms.com a giriş yaparken kullanılan şifredir. İstek yapılırken gönderilmesi zorunludur. order: İptal edilecek sipariş bilgisini içerir. Alt etiketi id: Siparişi ifade eden eşsiz numerik değerdir.
order etiketi tekrarlanabilir bir etiket değildir. İstek başına yalnızca bir sipariş gönderilebilir. Sunucu yanıtının XML yapısı: <response> <code></code> Sunucudan gelen yanıt her zaman response etiketi ile sarmalanmıştır. Bu etiketi alt etiketlerinin tanımı status: İşlem durumu ile ilgili bilgi içerir. Bu etiket ile döndürülen değerler aynı zamanda HTTP yanıtının başlık bilgisine bakılarak da elde edilebilir. Bu etiket, yapılan her istekte standart olarak döndürülür. Alt etiketleri code: İşlem durumunu belirten numerik değerdir. message: İşlem durumu hakkında bilgi mesajı içerir. Örnek İstek <?xml version="1.0" encoding="utf-8"?> <username>kullanici_adi</username> <password>kullanici_sifresi</password> <id>428</id> Örnek Yanıt
<?xml version="1.0" encoding="utf-8"?> <response> <code>200</code> İşlem başarılı Bakiye Sorgulama İstek yapılacak adres: http://api.idasms.com/v1/get-balance Yapılacak olan isteğin genel XML yapısı: <username></username> <password></password> Sunucuya yapılacak olan istek request etiketi ile sarmalanmalıdır. Bu etiketin alt etiketlerinin tanımları authentication: İstek yapılan işleme dair yetki alabilmek için gönderilmesi gereken kullanıcı bilgileridir. Alt etiketleri username: www.idasms.com a giriş yaparken kullanılan kullanıcı adıdır. Genellikle kayıt aşamasında verilen cep telefonu numarasıdır. İstek yapılırken gönderilmesi zorunludur. password: www.idasms.com a giriş yaparken kullanılan şifredir. İstek yapılırken gönderilmesi zorunludur. Sunucu yanıtının XML yapısı: <response> <code></code> <balance> <amount></amount> <sms></sms> </balance>
Sunucudan gelen yanıt her zaman response etiketi ile sarmalanmıştır. Bu etiketi alt etiketlerinin tanımı status: İşlem durumu ile ilgili bilgi içerir. Bu etiket ile döndürülen değerler aynı zamanda HTTP yanıtının başlık bilgisine bakılarak da elde edilebilir. Bu etiket, yapılan her istekte standart olarak döndürülür. Alt etiketleri code: İşlem durumunu belirten numerik değerdir. message: İşlem durumu hakkında bilgi mesajı içerir. balance: Bakiye bilgilerini içerir. Alt etiketleri amount: Kullanıcı hesabında bulunan bakiye miktarını TL cinsinden içerir. sms: Kullanıcı hesabında bulunan SMS miktarını içerir. Örnek İstek <?xml version="1.0" encoding="utf-8"?> <username>kullanici_adi</username> <password>kullanici_sifresi</password> Örnek Yanıt <?xml version="1.0" encoding="utf-8"?> <response> <code>200</code> İşlem başarılı <balance> <amount>134.0000</amount> <sms>7538</sms> </balance> Sipariş Raporu Sorgulama İstek yapılacak adres: http://api.idasms.com/v1/get-report Yapılacak olan isteğin genel XML yapısı:
<username></username> <password></password> <id></id> <page></page> <rowcount></rowcount> Sunucuya yapılacak olan istek request etiketi ile sarmalanmalıdır. Bu etiketin alt etiketlerinin tanımları authentication: İstek yapılan işleme dair yetki alabilmek için gönderilmesi gereken kullanıcı bilgileridir. Alt etiketleri username: www.idasms.com a giriş yaparken kullanılan kullanıcı adıdır. Genellikle kayıt aşamasında verilen cep telefonu numarasıdır. İstek yapılırken gönderilmesi zorunludur. password: www.idasms.com a giriş yaparken kullanılan şifredir. İstek yapılırken gönderilmesi zorunludur. order: Raporu sorgulanacak olan siparişin bilgisini içerir. Alt etiketleri id: Siparişi ifade eden eşsiz numerik değerdir. page: Rapor sayfasını ifade eder. İstek yapılırken gönderilmesi zorunlu değildir. Varsayılan değeri 1 dir. rowcount: Bir rapor sayfasındaki mesaj adedini belirtir. İstek yapılırken gönderilmesi zorunlu değildir. Varsayılan değeri 1000 dir. Maksimum değeri 1000 dir. Bir siparişte 1000 den fazla mesaj gönderilmişse ayrı bir istek ile diğer rapor sayfaları sorgulanmalıdır. order etiketi tekrarlanabilir bir etiket değildir. İstek başına yalnızca bir sipariş gönderilebilir. Sunucu yanıtının XML yapısı:
<response> <code></code> <number></number> Sunucudan gelen yanıt her zaman response etiketi ile sarmalanmıştır. Bu etiketi alt etiketlerinin tanımı status: İşlem durumu ile ilgili bilgi içerir. Bu etiket ile döndürülen değerler aynı zamanda HTTP yanıtının başlık bilgisine bakılarak da elde edilebilir. Bu etiket, yapılan her istekte standart olarak döndürülür. Alt etiketleri code: İşlem durumunu belirten numerik değerdir. message: İşlem durumu hakkında bilgi mesajı içerir. order: İşlem başarılı olarak tamamlandıysa oluşturulan sipariş bilgisini içerir. İşlem başarısızsa bu etiket döndürülmez. Alt etiketleri id: Siparişi ifade eden eşsiz numerik değerdir. status: Siparişin genel gönderim durumunu belirten numerik değerdir. message: Raporlanan mesaj bilgilerini içerir. Sorgulanan sayfadaki mesaj sayısı kadar tekrarlanır. Alt etiketleri number: Alıcının cep telefonu numarasını içerir. status: Mesajın gönderim durumunu belirten numerik değerdir. Örnek İstek
<?xml version="1.0" encoding="utf-8"?> <username>kullanici_adi</username> <password>kullanici_sifresi</password> <id>428</id> <page>1</page> <rowcount>5</rowcount> Örnek Yanıt <?xml version="1.0" encoding="utf-8"?> <response> <code>200</code> İşlem başarılı <id>428</id> 113 <number>5301234567</number> 110 <number>5301234568</number> 111 <number>5301234569</number> 110 <number>5301234560</number> 111 <number>5301234561</number> 111
Durum Kodları ve Mesajları Durum Kodu Durum Mesajı 110 Mesaj gönderiliyor 111 Mesaj gönderildi 112 Mesaj gönderilemedi 113 Siparişin gönderimi devam ediyor 114 Siparişin gönderimi tamamlandı 115 Sipariş gönderilemedi 200 İşlem başarılı 400 İstek çözümlenemedi 401 Üyelik bilgileri hatalı 402 Bakiye yetersiz 404 API istek yapılan yönteme sahip değil 450 Gönderilen başlık kullanıma uygun değil 451 Tekrar eden sipariş 452 Mesaj alıcıları hatalı 453 Sipariş boyutu aşıldı 454 Mesaj metni boş 455 Sipariş bulunamadı 456 Sipariş gönderim tarihi henüz gelmedi 457 Mesaj gönderim tarihinin formatı hatalı 503 Sunucu geçici olarak servis dışı
Örnek PHP Kodu <?php function sendrequest($site_name,$send_xml,$header_type) { //die('sitename:'.$site_name.'send XML:'.$send_xml.'HEADER TYPE '.var_export($header_type,true)); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$site_name); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS,$send_xml); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,1); 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; } $username = ''; $password = ''; $orgin_name = 'PROAKTIF'; $xml = <<<EOS <username>{$username}</username> <password>{$password}</password> <sender>{$orgin_name}</sender> <senddatetime>01/05/2013 18:00</sendDateTime> <text>test mesaji api denemesi 1</text> <receipents> <number>5312773308</number> </receipents> EOS; $result = sendrequest('http://api.idasms.com/v1/send-sms',$xml,array('content-type: text/xml'));die('<pre>'.var_export($result,1).'</pre>'); //Donen xml degerini sisteminizde parse etmek icin //http://www.lalit.org/lab/convert-xml-to-array-in-php-xml2array/ //adresindeki kutuphaneyi oneririz?>