AYYILDIZ Kurumsal

Mayıs 2012 yılından itibaren Türkiye’de, yeni nesil operatör olarak faaliyete başlayan AYYILDIZ GSM BTK (Bilgi Teknoloji Kurumu) tarafından temin edilen SMŞH (Sanal Mobil Şebeke Hizmetleri), STH (Sabit Telefon Hizmetleri), ISS (İnternet Servis Sağlayıcı) ve altyapı İşletmeciliği yetki belgeleri ile faaliyet gösteren, Türkiye pazarına girişinden bu yana geniş bir bakış açısıyla benimsenen ulusal bir telekomünikasyon şirketidir.

AYYILDIZ Mobile, iletişim ve haberleşme alanında günümüz toplumunun talep ettiği, istek ve önerilerine karşı duyarlı bir şirkettir. Bu yüzden AYYILDIZ GSM, insanlar arasında iletişimi kolaylaştıracak, onlara en güvenli ve en ileri teknolojiyi sağlayarak daha iyi yaşayabilmeleri ve önerdiklerini elde edebilmeleri için ekonomik araçlar sunmaktadır.

AYYILDIZ Mobile, önde gelen tüm yurt içi ve yurt dışı GSM operatörleri ile SES ve SMS sonlandırma ara bağlantı sözleşmeleri imzalamış olup, Türkiye geneline yayılmış tamamı fiber noktadan noktaya sınırsız kapasiteli Metro Ethernet altyapısıyla milyonlarca müşterisine, ihtiyacına yönelik seçim yapma kabiliyetini sunmaktadır. Muazzam bir teknolojik potansiyele sahip yenilikçi bir işletme özelliğiyle, çözüm ortaklarına ve abonelerine yüksek kalitede kesintisiz hizmet sağlamaktadır.

Şirketimiz, sunduğu benzersiz dijital ürünler ve servisler ile büyüme potansiyeline sahip pazarlarda yatırım yaparak, ülke deki telekomünikasyon pazarının geliştirilmesine öncülük etmektedir.

AYYILDIZ Mobile LTD Gürcistan (Tiflis), Azerbaycan (Bakü), Hollanda ve Türkiye Pazarın’da AYYILDIZ GSM olmak üzere, 4 ülke de faaliyet göstermektedir. Ortalama 250 üzerinde çalışanı bulunmaktadır.

Teknik Altyapı

Lisanslar ve Operatörler Arası Doğrudan Bağlantı

BTK (Bilgi Teknolojileri ve İletişim Kurumu)'ndan düzenli olarak denetlenen firmamız; BTK bağlantıları ve doğrudan operatörlere olan bağlantılarını aracısız ve yedekli olarak kurmuştur. FKM (Felaket Kurtarma Merkezi) ile de kesintisiz iletişim sunmaktadır.

Altyapı Güvenliği

AYYILDIZ NET platformu çok katmanlı güvenlik ile korunurken, verilerinizi ve iletişiminizi korumak için özen gösteriyoruz.

AYYILDIZ NET altyapı güvenliği için; Firewall ve Session Border kontrolleri, Birden fazla kimlik doğrulama düzeyi, Saldırı tespit ve dolandırıcılık önleme analizi,Fraud çağrı engeli, Operasyonel işlemlerde; trafik izleme, sistem güçlendirme ve güvenlik taramaları,Ödeme süreci; 128bit SSL - 3D Sanal alt önlemleri sunmaktadır.

Fiziksel ve Çevresel Güvenlik

AYYILDIZ NET platformu sağlam elektronik önleme sistemleri ile mühendis-network uzmanları tarafından korunan ISO 27001 ve ISO 9001 belgelerinin gerekliliklerini yerine getirmektedir.

Belgeler; ISO 27001 , ISO 9001, ISO 10002, OHSAS 18001, ISO 22301, ISO/IEC 20000

API Dokümanı

  • API ile kullanılabilir hizmetlere doküman üzerinden ulaşabilirsiniz.
  • API servisine gönderilebilir istekleri ve servisten tarafınıza dönen örnek yanıtları inceleyebilirsiniz.
  • Örnek kodlamalara ulaşabilirsiniz.
  • API Servisini kullanabilmek için, API erişim izniniz olması gerekmektedir. Bu işlemi, www.ayyildiz.net adresinden giriş yaptıktan sonra, kullanıcı İşlemleri / API Talep İşlemleri menüsünden sağlayabilirsiniz.

İletişim
destek@ayyildiz.net
0212 553 53 53

SMS Gönderimi

  • API ile SMS göndermek için www.ayyildiz.net adresinden giriş yaptıktan sonra, kullanıcı işlemleri / API Talep İşlemleri menüsünden API talebinde bulununuz.
  • API servisine erişimde hesabınızda alt kullanıcı tanımlamanız gerekmektedir, Kullancı İşlemleri / Alt Kullanıcı Tanımla menüsü ile oluşturacağınız alt kullanıcıya API servisi yetkilerini verebilirsiniz.
  • PI ile ilgili teknik değişiklik ve gelişmelerden haberdar olmak için Kullanıcı İşlemleri / API Talep İşlemleri menüsündeki API yetkilisi bölümüne API entegrasyonunu sağlayan kişinin bilgilerini girmeniz gerekmektedir.
  • API servisi kullanımına IP adres sınırlaması getirmek için Kullanıcı İşlemleri / API Talep İşlemleri menüsündeki IP Erişimini Sınırla butonunu kullanabilirsiniz.
  • Mesaj başlığı kısmına kullanıcı hesabınızda tanımlı gönderici adlarından(mesaj başlığı) birini giriniz. Hesabınızda tanımlı olan gönderici adlarınızı API ile Gönderici Adı Sorgula menüsündeki sorgulama ile listeyebilirsiniz. Ayrıca web ara yüzde Kullanıcı İşlemleri / Gönderici Adı Talep menüsünden de kontrol edebilirsiniz.
  • Yurt dışına SMS gönderiminde numara başına '00' eklenmelidir.
  • Enter karakterli SMS gönderimlerinde, gönderilen metin içinde string olarak " \n " veya " \\n " karakterleri kullanılmalıdır.
  • SMS'lerinizi 3 yöntemle API servisine teslim edebilirsiniz: SOAP Servisi, XML POST ve HTTP GET metodu.

XML SMS API

AYYILDIZ XML Interfaces, XML belgeleriyle çalışan yazılım geliştiricilerin, uygulamalarına SMS gönderimini XML üzerinden entegre etmelerini sağlamak amacıyla geliştirilmiştir.

Her işletim sistemi platformunun desteklediği bir araç olması ve her IDE ile kullanılabilir olması nedeniyle, yazılım geliştiricilerin tercih ettiği çözümümüzdür.

Yazılım geliştiriciler, bu belgede belirtilen şekilde hazırlamış oldukları XML ifadelerini, http://web.ayyildiz.net/services/SendSmsGet.aspx adresine, kendi çözümlerinde bir XMLHTTP isteği oluşturarak gönderirler.

Gönderilen XML ifadesi AYYILDIZ XML Parser tarafından işlenir. Eğer XML ifadesinde ya da XML ifadesi içinde bulunan parametre düğümlerinin herhangi birinde bir hata oluşmuşsa, yakalanan hata HTTP üzerinden önceden tanımlı bir kod olarak göndericiye iletilir. Eğer bir hata oluşmamışsa gönderilmiş olan XML ifadesinin işlevine uygun geri donuş ifadesi hazırlanıp HTTP üzerinden göndericiye iletilir. Önceden tanımlı hata kodları, belgenin ilgili ayrımında ayrıntılı olarak açıklanacaktır.


Sistem Gereksinimleri

AYYILDIZ XML API çözümünü kullanabilmeniz için gereken minimum sistem gereksinimleri aşağıda belirtilmiştir.

  • Windows Serisi, UNIX, Linux ya da MacOS İşletim Sistemi
  • Internet Explorer 6,7,8,9,10,11,12 ve Edge SP1,SP2, Firefox, Chrome, Opera, Safari (Windows Platformu için)

Kullanıcı Bilgilerinin Kontrolü

SMS gönderimine başlamadan önce SMS kullanıcı bilgilerinin kontrolü sağlanmalıdır. Mevcut SMS hesabınız bulunmuyor ise AYYILDIZ'dan öncelikle numara almanız gereklidir. Alacağınız numara sonrasında, sms paketlerinden birini satın almalısınız.

http://web.ayyildiz.net'e yollanan kullanıcı bilgilerinin doğruluğu sistem tarafından kontrol edilerek kullanıcı hesabına ait kredi bilgisi ve orijinatör bilgisi sistem tarafından gönderilir. Kullanıcı bilgilerinin kontrolü sırasında UserName, PassWord, CompanyCode ve Originator bilgileri kontrol edilir.

Öznitelik Yorum
Username Bayiniz tarafından sağlanılacak olan kullanıcı adı
Password Bayiniz tarafından sağlanılacak olan şifre
CompanyCode Bayiniz tarafından sağlanılacak olan bayi kodu
MesgBody Mesaj Metni
SMS Type: Sms gönderim sırasında mesajın hangi tip ve kaç karakter gönderileceğini bildirir.
Type
  • 160 Karakter Sms için type: 1 kullanılır.
  • 612 Karakter Sms için type: 5 kullanılır.
  • 155 Karakter (Türkçe) Sms için type: 12 kullanılır.
  • 745 Karakter (Türkçe) Sms için type:12 kullanılır.
Version Yazılım firması tarafından en çok 12 karakter verilebilen özel kod.
Originator Gönderici başlığı en az 3 en fazla 11 karakter kullanılabilir.Türkçe karakter kullanılamaz.
Numbers Mesaj gönderilecek numaralar her bir numara ülke kodunu da içeren uluslararası formatta olmalı ve numaralar arasında ayıraç olarak virgule(,) kullanılmalı,ülke ve operator kodları.Ülke kodunun verilmemesi durumunda (532….. gibi) ülke kodu varsayılan olarak 90 kabul edilecektir.
SDate Mesajın gönderilmeye başlanacağı tarihi gösterir.Formatı ddmmyyyyhhmm dir.Bu değer girilmediği durumda an itibariyle gönderim başlayacaktır.
EDate Mesajın gönderilme işleminin sonlandırılacağı zamandır.Bu tarihten sonar mesaj gönderme durdurulacak ve beklemeye alınan mesajlar zaman aşımı(timeout) olacaktır.

Kullanıcı bilgilerinin kontrolünde olması gereken XML ifadesi aşağıdaki gibidir:

POST http://sms.ayyildiz.net/SendSmsMany.aspx
<?xml version="1.0" encoding="UTF-8"?>
<MainmsgBody>
    <UserName>test</UserName>
    <PassWord> pass</PassWord>
    <CompanyCode>Bayi Kodu</CompanyCode>
    <Type>5</Type>
    <Developer></Developer>
    <Originator><![CDATA[TEST]]></Originator >
    <Version>xVer.2016</Version>
    <Mesgbody><![test mesajıdır]]></Mesgbody>
    <Numbers>905……, 905……..</Numbers>
    <SDate></SDate>
    <EDate></EDate>
</MainmsgBody>

Kullanılacak Karakterler

Gönderim sırasında;

  • Türkçe karakterler (ç,ş,ü,ö,ğ,Ç,Ü,Ş,Ğ,Ö,İ) .
  • ~, ^^, &, <, >, €, £, ã, Ã, ‰, €, ©, ®, ∞, ° simgeleri
  • LineFeed, Enter, Tab komutları

kesinlikle kullanılmamalıdır. Mesaj metni içerisinde sadece ( ), [ ], { }, =, *, ?, \, /, %, +, #, !, ", :, ;, _, | simgeleri kullanılabilir.

“&”,”<”,”>” Karakterlerinin Kullanımı

Karakter XML Formatı
&
&amp;
<
&lt;
>
&gt;
Replace Yönetimi
public string xmlreplace(string inString)
    {
        inString = inString.Replace("&", "&amp;");
        inString = inString.Replace("<", "&lt;");
        inString = inString.Replace(">", "&gt;");
        inString = inString.Replace("’", "&apos;");
        inString = inString.Replace("“", "&quot;");
        inString = inString.Replace("“", "&#8364;");
        inString = inString.Replace('"'.ToString(), "&quot;");
        return inString;
    }

GSM Numarası Formatı

GSM numaraları 05xxxxxxx, 5xxxxxxx, 905xxxxxxx şeklinde ve Numbers parametre düğümü içerisinde yazılmalıdır. GSM numaraları uygun olmayan formatta yazılırsa 04 Hata Kodu alınır. Boş ise, Hata Kodu 15, GSM numarası formatının hatalı olduğu anlamına gelir. Bu durumda GSM Numarası Formatına İlişkin Uyarılar başlığı altındaki bilgileri kontrol etmelisiniz.

Kullanım Örnekleri:
<Numbers>905xxxxxxx</Numbers>
<Numbers>5xxxxxxx</Numbers>
<Numbers>05xxxxxxx</Numbers>
<Numbers>905xxxxxxx, 905xxxxxxx</Numbers>

Not: +905xxxxxxx, 5xx 5xx xx xx, +05xxxxxxxx. şeklinde ve -, ( ), [ ], { } vb. karakterlerle gönderim yapılamaz!

Standart Dil Çevrime

Mesaj metni oluşumunda ASCII (Bilgi Değişimi İçin Amerikan Standart Kodlama Sistemi) karakterleri dışında karakter kullanımı varsa Dil Çevirici kullanılması gerekmektedir.

Not : Türkçe Sms Gönderimlerinde dikkat edilmesi gereken nokta encoding alanı UTF-8 şeklinde olmalıdır.

public static string MsgConvert
          (string message){
          message = message.Replace("Ü", "U");
          message = message.Replace("ü", "u");
          message = message.Replace("Ğ", "G");
          message = message.Replace("ğ", "g");
          message = message.Replace("İ", "I");
          message = message.Replace("ı", "i");
          message = message.Replace("Ş", "S");
          message = message.Replace("ş", "s");
          message = message.Replace("Ç", "C");
          message = message.Replace("ç", "c");
          message = message.Replace("Ö", "O");
          message = message.Replace("ö", "o");
          message = message.Replace("é", "e");
          message = message.Replace("`", "'");
          message = message.Replace("^", "'");
          message = message.Replace("…", ".");
          message = message.Replace("ˆ", "'");
          message = message.Replace("'", "'");
          message = message.Replace("'", "'");
          message = message.Replace("'", "'");
          message = message.Replace("\r", "");
          message = message.Replace("\n", "");
          message = message.Replace("\r\n", "");
          message = message.Replace("?", "##S##");
          message = System.Text.Encoding.ASCII.GetString(System.Text.Encoding.ASCII.GetBytes(message));
          message = message.Replace("?", "");
          message = message.Replace("##S##", "?");
          message = message.Replace("&", "&");
          message = message.Replace("<", "<");
          message = message.Replace(">", ">");
          return message;
          }
          
          string msg= MsgConvert(Request.Form["data"]);          
          <Mesgbody>"+msg+"</Mesgbody>
          

Originator Bilgisi ve Kullanımı

Gönderen Bilgisi (Alfanumerik/Originator), mesaj gönderimlerinde gönderici kısmında yer alan; firmaya özel tanımlanmış 11 karakterden oluşan gönderici adıdır.

Gönderim sırasında hesap aktivasyonunda aktivasyon biriminin tanımladığı Gönderen Bilgisi'nin aynısı Originator Parametre düğümü içerisinde yazılmalıdır. Gönderen Bilgisi tanımlı bilgiyle eşleşmezse 05 Hata Kodu alınır. Hata Kodu 05, Tanımsız Originator bilgisi anlamına gelir.

Büyük ve Küçük Harfli Örnek Kullanım:

        
          <Originator>AYYILDIZ</Originator>
           <Originator>ayyildiz</Originator>
          

Not: Originator ifadesinde Türkçe karakterler ve &, <, >, -, ( ), [ ], / gibi simgeler kesinlikle kullanılmamalıdır!

ORIGINATOR SORGULAMA

Kullanıcı kullanabileceği Originator’ları sorgulamak istediği durumlarda kullanılır.Bunun için aşağıda verilen Xml ’un aşağıdaki adrese Post Edilmesi gerekmektedir.

POST http://sms.ayyildiz.net/QueryOrigin.aspx
<?xml version='1.0' encoding='UTF-8'?>
<OriginMain>
     <UserName>Company Username</UserName>
     <PassWord>Company Password</PassWord>
     <CompanyCode >Bayi Kodu</CompanyCode>
     <User>User</User>
     <Originator>DENEME</Originator>
</OriginMain>

Örnek Dönüş

OK(İlk satırda Başarılı Durum Kontrolü)
ORIGINATOR 1
ORIGINATOR 2

Originator Sorgulamada Alınabilecek Hata Kodları
Bu servisin kullanimi sonucu donecek olan cevaplar asagidaki gibidir.
KodAçıklama
01Hatalı Kullanıcı Adı ya da şifresi
100 XML Hatası

Mesaj Karakter Sayısı

SMS paketi 160 karakter altı ve 160 karakter üstü mesaj metinlerinden oluşuyorsa gönderim öncesi karakter kontrolü yapılarak TYPE parametresi ayarlanmalıdır. 160 karakter altı mesajlar ayrı, 160 karakter üstü mesajlar ayrı paketler halinde gönderilmelidir.

160 Karakter Altı Mesaj Metinleri İçin TYPE Kullanımı:
160 karakter altındaki mesajlar için aynı mesaj mesaj birden fazla GSM numarasına gönderilecekse: type:1

612 karakter mesajlar için farklı mesajlar farklı GSM numaralarına gönderilecekse: type:5

155 Türkçe Karakter Mesaj Metinleri İçin Type Kullanımı:
155 Türkçe karakter olarak birden fazla GSM numarasına mesaj gönderilecekse: type:12

745 Türkçe karakter üzerindeki mesajlar için farklı mesajlar farklı GSM numaralarına gönderilecekse: type:12

SMS Type: Sms gönderim sırasında mesajın hangi tip ve kaç karakter gönderileceğini bildirir.

Sms gönderim sırasında mesajın hangi tip olarak gönderileceğini bildirir.

KarakterType
160 Karakter Sms1
918 Karakter Sms5
155 Karakter Sms ve Tüm Diller12
894 Karakter Sms ve Tüm Diller12
70 Karakter Türkçe Gönderim6
402 Karakter Türkçe Gönderim7
402 Karakter Uluslararası Gönderim13

Not: Türkçe Sms Gönderimlerinde dikkat edilmesi gereken nokta encoding alanı UTF-8 şeklinde olmalıdır.

  • Başlıklı SMS (Standart): 1 boy SMS 155, 2 boy SMS 301, 3 boy SMS 454, 4 boy SMS 607, 5 boy SMS 760, 6 boy SMS 913 karakterdir.
  • Başlıklı SMS (Türkçe Karakterli): 1 boy SMS 150, 2 boy SMS 296, 3 boy SMS 449, 4 boy SMS 602, 5 boy SMS 755, 6 boy SMS 908 karakterdir.
  • Abone Numaralı SMS (Standart): 1 boy SMS 160, 2 boy SMS 306, 3 boy SMS 459, 4 boy SMS 612, 5 boy SMS 765, 6 boy SMS 918 karakterdir.
  • Abone Numaralı SMS (Türkçe Karakterli): 1 boy SMS 155, 2 boy SMS 301, 3 boy SMS 454, 4 boy SMS 607, 5 boy SMS 761, 6 boy SMS 913 karakterdir.
  • Gönderici adı en az 3 en fazla 11 karakterden oluşur.

Toplu SMS Gönderimi

Toplu olarak gönderilecek mesajlar tek tek paketler halinde değil toplu paketler halinde gönderilmelidir. Tek tek gönderilen paketler sistemde yoğunluk oluşturmakta ve bu yoğunluk mesajların gitmesinde gecikmeye neden olmaktadır. Gönderilecek mesajlar mümkün olduğunca tek bir XML ifadesi hazırlanarak AYYILDIZ'a yollanmalıdır. İnternet bağlantısı ve sistem yoğunluğu nedenleriyle olası gecikmeleri önlemek için önerilen SMS paketi boyutu 30.000 adettir.

XML SMS API gönderimi için farklı metotlar bulunmaktadır.

  • Aynı mesajı birden fazla GSM numarasına gönderim. (Türkçe veya İngilizce karakterler olarak)
  • Farklı mesajları birden fazla GSM numarasına gönderim (Türkçe veya İngilizce karakterler olarak)

XML SMS API Gönderim Metotlarını İnceleyin.

  1. AYNI MESAJIN ÇOK NUMARAYA GÖNDERİLMESİ

    Bu Yöntemde amaç , tek bir mesaj metninin farklı numaralara yollanabilmesidir. Bu yöntemde kullanılacak olan XML Formatı örnek xml aşağıda gösterilmektedir. Version bilgisi xml paketinin,hangi programdan ve hangi versiondan geldiği bilgilerinin arşivlerde tutulması amacıyla alınacaktır.

    POST http://sms.ayyildiz.net/SendSmsMany.aspx
    <?xml version="1.0" encoding="UTF-8"?>
    <MainmsgBody>
        <UserName>test</UserName>
        <PassWord> pass</PassWord>
        <CompanyCode >Bayi Kodu</CompanyCode>
        <Type>5</Type>
        <Developer></Developer>
        <Originator><![CDATA[TEST]]></Originator >
        <Version>xVer.2016</Version>
        <Mesgbody><![test mesajıdır]]></Mesgbody>
        <Numbers>905……, 905……..</Numbers>
        <SDate></SDate>
        <EDate></EDate>
    </MainmsgBody>
                      

    İşleminin başarılı olması durumunda sizlere “ID:1234567” gibi bir sonuç dönecektir. Eğer bu şekilde bir dönüş yapılmazsa hata kodlarına bakmanızı çözüm üretilemezse, yardım formunu kullanarak bizimle görüşmenizi tavsiye ederiz.

  2. FARKLI MESAJLARIN FARKLI NUMARALARA YOLLANMASI

    Bu yöntemde amaç farklı numaralara farklı mesajların aynı anda yollanabilmesidir. Örneğin her bir müşteriye farklı ödeme tutarlarının göndermesi gibi. Bu yöntemde kullanılacak XML ve url adresi aşağıdaki gibidir.

    POST http://sms.ayyildiz.net/SendSmsMulti.aspx
     <?xml version="1.0" encoding="UTF-8"?>
    <MainmsgBody>
            <UserName>test</UserName>
            <PassWord> pass</PassWord>
            <CompanyCode >Bayi Kodu</CompanyCode>
            <Type>5</Type>
            <Developer>0601</Developer>
            <Version>xVer.2016.0</Version>
            <Originator><![CDATA[TEST]]></Originator>
            <Messages>
                     <Message>
                              <Mesgbody> <![CDATA[ODEME TUTARINIZ 123 TLDIR.]]></Mesgbody>
                              <Number>905……..</Number>
                              <SDate></SDate>
                              <EDate></EDate>
                     </Message>
            <Message>
                     <Mesgbody><![CDATA[ ODEME TUTARINIZ 225 TL DIR.]]></Mesgbody>
                              <Number>905……..</Number>
                              <SDate></SDate>
                              <EDate></EDate>
                     </Message>
           </Messages>
    </MainmsgBody>
    

    İşleminin başarılı olması durumunda sizlere “ID:1234567” gibi bir sonuç dönecektir. Eğer bu şekilde bir dönüş yapılmazsa hata kodlarına bakmanızı çözüm üretilemezse, yardım formunu kullanarak bizimle görüşmenizi tavsiye ederiz.

    NLSS gönderimlerinde “|^€{}[~]\\|Şçş^€Ğ{}İığ[~]¼`” karakterlerden en az 1 adet kullanılması gerekmektedir. Tırnaklar içerisinde belirtilen karakterler 2 karakter sayılmaktadır. Karakter toplamlarında 894 karaktere kadar gönderim yapılmaktadır.1 sms 155 karakterden oluşmaktadır.155 karakteri geçmesi urumunda her bir sms 149 karaktere düşürülmektedir. Maksimum 894 karakterlik 6 sms gönderimi yapılabilmektedir.

  3. AYNI MESAJIN ÇOK NUMARAYA TÜRKÇE OLARAK GÖNDERİLMESİ

    Bu Yöntemde amaç , tek bir mesaj metninin farklı numaralara türkçe olarak yollanabilmesidir. Bu yöntemde kullanılacak olan XML Formatı örnek xml bölümünde gösterilmektedir. Version bilgisi xml paketinin, hangi programdan ve hangi versiondan geldiği bilgilerinin arşivlerde tutulması amacıyla alınacaktır.

    POST http://sms.ayyildiz.net/SendSmsMany.aspx
    <?xml version="1.0" encoding="UTF-8"?>
    <MainmsgBody>
               <UserName>test</UserName>
               <PassWord> pass</PassWord>
               <CompanyCode >Bayi Kodu</CompanyCode>
               <Type>12</Type>
               <Developer></Developer>
               <Originator><![CDATA[ÖRNEK MESAJ METNİ TEST İÇİN]]></Originator >
               <Version>xVer.2016</Version>
               <Mesgbody><![test mesajıdır]]></Mesgbody>
               <Numbers>905……, 905……..</Numbers>
               <SDate></SDate>
               <EDate></EDate>
    </MainmsgBody>
    

    İşleminin başarılı olması durumunda sizlere “ID:1234567” gibi bir sonuç dönecektir. Eğer bu şekilde bir dönüş yapılmazsa hata kodlarına bakmanızı çözüm üretilemezse, yardım formunu kullanarak bizimle görüşmenizi tavsiye ederiz.

  4. FARKLI MESAJLARIN FARKLI NUMARALARA TÜRKÇE OLARAK GÖNDERİLMESİ

    Bu yöntemde amaç farklı numaralara farklı mesajların Türkçe olarak aynı anda yollanabilmesidir. Örneğin her bir müşteriye farklı ödeme tutarlarının göndermesi gibi. Bu yöntemde kullanılacak XML ve url adresi aşağıdaki gibidir.

    POST http://sms.ayyildiz.net/SendSmsMulti.aspx
    <?xml version="1.0" encoding="UTF-8"?>
    <MainmsgBody>
            <UserName>test</UserName>
            <PassWord> pass</PassWord>
            <CompanyCode >Bayi Kodu</CompanyCode>
            <Type>12</Type>
            <Developer>0601</Developer>
            <Version>xVer.2016.0</Version>
            <Originator><![CDATA[TEST]]></Originator>
            <Messages>
                     <Message>
                              <Mesgbody> <![CDATA[ÖDEME TUTARINIZ 123 TLDIR.]]></Mesgbody>
                              <Number>905……..</Number>
                              <SDate></SDate>
                              <EDate></EDate>
                     </Message>
                     <Message>
                              <Mesgbody><![CDATA[ ÖDEME TUTARINIZ 225 TL DIR.]]></Mesgbody>
                              <Number>905……..</Number>
                              <SDate></SDate>
                              <EDate></EDate>
                     </Message>
            </Messages>
    </MainmsgBody>
    

    İşleminin başarılı olması durumunda sizlere “ID:1234567” gibi bir sonuç dönecektir. Eğer bu şekilde bir dönüş yapılmazsa hata kodlarına bakmanızı çözüm üretilemezse, yardım formunu kullanarak bizimle görüşmenizi tavsiye ederiz.

  5. AYNI MESAJIN ÇOK NUMARAYA PARÇALI OLARAK GÖNDERİLMESİ

    Bu yöntemde amaç farklı numaralara farklı mesajların Türkçe olarak aynı anda yollanabilmesidir. Örneğin her bir müşteriye farklı ödeme tutarlarının göndermesi gibi. Bu yöntemde kullanılacak XML ve url adresi aşağıdaki gibidir.

    POST http://servis./parcali/Servis/SendSmsMany.aspx
    <?xml version="1.0" encoding="UTF-8"?>
    <MainmsgBody>
               <UserName>test</UserName>
               <PassWord> pass</PassWord>
               <CompanyCode >Bayi Kodu</CompanyCode>
               <Type>5</Type>
               <Developer></Developer>
               <Originator><![CDATA[TEST]]></Originator>
               <Version>xVer.2016</Version>
               <Mesgbody><![test mesajıdır]]></Mesgbody>
               <Numbers>905……, 905……..</Numbers>
               <SDate>17.06.2017 10:30:00</SDate>
               <EDate>25.06.2017 18:30:00</EDate>
                <CampaignCode>bilgi</CampaignCode>
                <OrganizationCodes>kod</OrganizationCodes>
                <Starthour>09:15</Starthour>
               <Endhour>16:15</Endhour>
               <Periodminute>30</Periodminute>
               <Exchour>12,13,14</Exchour>
    </MainmsgBody>
    
                      

    İşleminin başarılı olması durumunda sizlere “ID:1234567” gibi bir sonuç dönecektir. Eğer bu şekilde bir dönüş yapılmazsa hata kodlarına bakmanızı çözüm üretilemezse, yardım formunu kullanarak bizimle görüşmenizi tavsiye ederiz.

    UsernameBayiniz tarafından sağlanılacak olan kullanıcı adı
    PasswordBayiniz tarafından sağlanılacak olan şifre
    CompanyCodeBayiniz tarafından sağlanılacak olan bayi koyu
    Type160 karaktere kadar gönderimler Type alanında 1 olarak gönderilmelidir.160 karakteri geçtiği durumlarda Type alanı 5 olarak gönderilmelidir.
    MesgBody160 karakter olacak şekilde oluşturulan mesaj metni
    Developer
    VersionYazılım firması tarafından en çok 12 karakter verilebilen özel kod.
    OriginatorGönderici başlığı en az 3 en fazla 11 karakter kullanılabilir.Türkçe karakter kullanılamaz.
    NumbersMesaj gönderilecek numaralar her bir numara ülke kodunu da içeren uluslararası formatta olmalı ve numaralar arasında ayıraç olarak virgule(,) kullanılmalı,ülke ve operator kodları.Ülke kodunun verilmemesi durumunda (532….. gibi) ülke kodu varsayılan olarak 90 kabul edilecektir.
    SdateGönderim Başlangıç Tarihi Format dd.MM.yyyy hh:mm
    EdateGönderim Bitiş Tarihi Format dd.MM.yyyy hh:mm
    StarthourGün içinde paketlerin saat kaç itibari ile başlayacağını ifade eder.(hh:mm)
    EndhourGün içinde paketlerin saat kaç itibari ile biteceğini ifade eder.(hh:mm)
    PeriodminuteHer Gönderim Arası Kaç Dakika olması isteniyorsa ayarlanabilir.
    ExchourGönderimlerin olmaması istenilen saatler örneğin öğle arası için 12 yazılmalıdır. Gün içinde farklı saatler için “,” kullanınız.Örn. 12,15,16
    CampaignCodeBilgi için kullanılabilir. Opsiyonel kullanılabilir.
    OrganizationCodesBilgi için kullanılabilir. Opsiyonel kullanılabilir.

    SMS Paketi İptali

    POST http://servis./parcali/Servis/ParcaliGonderim.asmx

    Mettot Adı : ParcaliGonderimIptal
    Parametreler:

    ÖzellikAçıklama
    usernameKullanıcı adı
    password Kullanıcı şifresi
    paketId İptal edilmek istenen SMS Paket Id'si
    Dönüş Cevayları:
    Bu servisin kullanimi sonucu donecek olan cevaplar asagidaki gibidir.
    DönüşAçıklama
    00Kullanıcı adı ya da şifre içeriği boş!
    01 Kullanıcı bulunamadı!
    Iptal edilecek Mesaj Bulunamadı.Girilen PaketId'nin içeriğinin boş olması durumu
    3 Adet Paket Detayi Iptal Edildi.Sms paket iptali başarılı
  6. TOPLU BINARY SMS GONDERIMI

    Bu yöntemde amaç aynı mesajın birden çok numaraya binary olarak aynı anda gönderilmesidir. Bu yöntemde kullanılacak XML ve url adresi aşağıdaki gibidir.

    POST http://sms.ayyildiz.net/SendBinaryMany.aspx
    <?xml version="1.0" encoding="UTF-8"?>
    <MainmsgBody>
            <UserName>test</UserName>
            <PassWord> pass</PassWord>
            <CompanyCode >Bayi Kodu</CompanyCode>
            <Type>1</Type>
            <XSER>1</ XSER>
            <Developer>1521</Developer>
            <Version>xVer.2016.0</Version>
            <Originator><![CDATA[TEST]]></Originator>
            <Mesgbody> binary mesaj metni 1 </Mesgbody>
            <Number>905………., 9053………..</Number>
            <SDate></SDate>
            <EDate></EDate>
    </MainmsgBody>
    
                      

    İşleminin başarılı olması durumunda sizlere “ID:1234567” gibi bir sonuç dönecektir. Eğer bu şekilde bir dönüş yapılmazsa hata kodlarına bakmanızı çözüm üretilemezse, yardım formunu kullanarak bizimle görüşmenizi tavsiye ederiz.

  7. BINARY SMSLERIN FARKLI NUMARALARA YOLLANMASI

    Bu yöntemde amaç farklı numaralara farklı mesajların binary olarak aynı anda yollanabilmesidir.Örneğin herbir müşteriye farklı ödeme tutarlarının göndermesi gibi.Bu yöntemde kullanılacak XML ve url adresi aşağıdaki gibidir.

    POST http://sms.ayyildiz.net/SendBinaryMulti.aspx
    <?xml version="1.0" encoding="UTF-8"?>
    <MainmsgBody>
            <UserName>test</UserName>
            <PassWord> pass</PassWord>
            <CompanyCode >Bayi Kodu</CompanyCode>
            <Type>5</Type>
            <Developer>1521</Developer>
            <Version>xVer.2016.0</Version>
            <Originator><![CDATA[TEST]]></Originator>
            <XSER>1</ XSER>
            <Messages>
                     <Message>
                              <Mesgbody> <![CDATA[binary mesaj metni 1]]></Mesgbody>
                              <Number>532........</Number>
                              <SDate></SDate>
                              <EDate></EDate>
                     </Message>
                     <Message>
                              <Mesgbody><![CDATA[ binary mesaj metni 2]]></Mesgbody>
                              <Number>532........</Number>
                              <SDate></SDate>
                              <EDate></EDate>
                     </Message>
            </Messages>
    </MainmsgBody>
    
                      

    İşleminin başarılı olması durumunda sizlere “ID:1234567” gibi bir sonuç dönecektir. Eğer bu şekilde bir dönüş yapılmazsa hata kodlarına bakmanızı çözüm üretilemezse, yardım formunu kullanarak bizimle görüşmenizi tavsiye ederiz.

Raporlama

Tarih Bazında Raporlama
Tarih Bazında Raporlama için TYPE parametresi 2 olmalıdır. Tarih aralığı belirtmek için SDate, raporun başlangıç tarihi; EDate, raporun bitiş tarihinin girilmesi gereken parametrelerdir.

Tarih bazında rapor almak için aşağıdaki XML ifadesi kullanılmalıdır:

POST http://sms.ayyildiz.net/ReportList.aspx
<?xml version='1.0' encoding='ISO-8859-9'?>
<MainmsgBody>
                <UserName>xx</UserName>
                <PassWord>xx</PassWord>
                <CompanyCode>xx</CompanyCode>
                <Delm>||</Delm>
                <SDate>20171208</SDate>
                <EDate>20171209</EDate>
                <Type>2</Type>
</MainmsgBody>

Parametre Açıklamaları:

ÖzellikAçıklama
UsernameString , Kullanıcı Adı
PasswordString, Şifre
CompanyCodeString, Bayi Kodu
DelmString, Gelen cevabın hangi karakter kullanılarak ayrılacağı
SDateString, Baslangıç Tarihi yyyyDDMM formatında olmalıdır
EDateString, Bitiş Tarihi yyyyDDMM formatinda olmalidir
TypeString, 2 Standart
"M_GUID"||"MESTIME"||"VERSION"||
"MESSAGE"||"TOTAL"||"SENT"||"PENDING"||
"SYSTEMOUT"||"TIMEOUT"||"TIP"||"STATUS"||
"CESS"||"BASTAH"||"BITTAH"||"ALFA"

"2017120811304581232136264934"||
"2017120123445688666264934"||
"Deneme"||"Deneme"||
"2245"||"0"||"0"||"0"||"0"||"7"||
"11"||"1"||"081220171637"||
"081220171937"||"deneme"

Dönüş Parametre Açıklamaları

ÖzellikAçıklama
MESSAGEMesaj Metni
MESSTIMEMesaj Gönderim Tarihi
M_GUIDMesaj Gönderim Tarihi ile aynı, GUID
ALFAAlfanumerik, Gönderim Başlığı
BASTAHBaslangıç Tarihi
BITTAHBitiş Tarihi
TOTALMesaj Sayısı
SENTIletilen Mesaj Sayısı
PENDINGBekleyen Mesaj Sayısı
SYSTEMOUTSistem Hatasi
TIMEOUTZaman Aşımı
CESSDurum kodlari asağıdaki tablodadır.
TIPSms gönderim sırasında mesajın hangi tip olarak gönderileceğini bildirir.
  • 160 Karakter Sms gönderiminde type: (1)
  • 918 Karakter Sms gönderiminde type: (5)
  • 155 Karakter Sms(Türkçe NLSS) gönderiminde type: (12)
  • 894 Karakter Sms(Türkçe NLSS) gönderiminde type: (12)
  • 70 Karakter Türkçe Gönderim gönderiminde type: (6)
  • 402 Karakter Türkçe Gönderim gönderiminde type: (7)
  • 402 Karakter Uluslararası Gönderim gönderiminde type:(13)
STATUS
VERSIONVersiyon String (Mesaj gonderilirken girilen değer)

Raporlama Durum Bilgisi

Raporlama sırasında gönderimi başarı olan paket için 8 farklı durum bilgisi döner:

POST http://sms.ayyildiz.net/ReportList.aspx
Durum KoduAçıklama
9İPTAL
99İPTAL
91BLOKLU
1BEKLEMEDE
2İŞLEMDE
3HATALI
4BAŞARILI
5MUKERRER
  1. DETAYLI RAPOR ALIMI (GUID ILE)

    Her bir paketin detay raporunu almak için aşağıda verilen XML un Aşağıdaki adrese Post Edilmesi gerekmektedir.Rapor sonucu satır satır dönmektedir.

    POST http://sms.ayyildiz.net/DetailReport.aspx
    <?xml version="1.0" encoding="ISO-8859-9"?>
    <Main>
        <UserName>test</UserName>
        <PassWord> pass</PassWord>
        <CompanyCode >Bayi Kodu</CompanyCode>
        <strGuid>XXXX</strGuid>
        <Delm>||</Delm >
        <Type></Type>
    </Main>
    

    XML Açıklamaları

    ÖzellikAçıklama
    UserNamestring, Kullanıcı Adı
    PassWordstring, Şifreniz
    CompanyCodestring, Bayi Kodu
    strGuidstring, Rapor Listesinde Size Verilen GUID
    Delmstring, Parçalamak İstenen Karakter
    Typestring, Boş girilebilir

    Dönüş cevapları aşağıdaki gibidir.

    • "GSMNO";"STATUS"
    • "905xxxxxxx";3
    • "905xxxxxxx";3

    Durum Kodları

    Durum KoduAçıklama
    1Beklemede
    2İletildi
    3Numara Hatalı
    4Zaman Aşımı
  2. DETAYLI RAPOR ALIMI

    Her bir paketin detay raporunu almak için aşağıda verilen XML un Aşağıdaki adrese Post Edilmesi gerekmektedir.Rapor sonucu satır satır dönmektedir.

    POST http://sms.ayyildiz.net/Report.aspx
    <?xml version="1.0" encoding="ISO-8859-9"?>
    <ReportMain>
        <UserName>test</UserName>
        <PassWord> pass</PassWord>
        <CompanyCode >Bayi Kodu</CompanyCode>
        <Msgid>Msgid </Msgid>
        <Delm>||</Delm >
        <Type></Type>
    </ReportMain>
    

    XML Açıklamaları

    ÖzellikAçıklama
    UserNameKullanıcı Adı
    PassWordŞifreniz
    MsgidGönderilen Sms ID si
    RTypeİstenilen Rapor Tipi(1 İletildi, 2 Beklemede, 3 Hatalı, 4 Zaman Aşımı) Type alanı girilmediği durumlarda toplam rapor görüntülenir.(İletilen, Beklemede, Hatalı ve zaman aşımları birlikte görüntülenir.)
    DelimiterType alanı boş girildiği durumlarda dikkate alınır. Default değeridir.

    Numara Durum Kodları

    Durum KoduAçıklama
    1Bekleyen Numaralar(Kullanımda ancak kapsama alanı dışında yada telefon kapalı)
    2İletilen Numaralar
    3Sistem Hatası(bu numara kullanımda değil yada servis dışı)
    4İletilememesinden dolayı zaman aşımı (Xml içinde SDATE ve EDATE değerleri verilmediği takdirde default 48 saattir.)

    Rapor Alımında Alınabilecek Hata Kodları

    Hata KoduAçıklama
    00Hatalı Kullanıcı Adı ya da şifresi
    01Hatalı Kullanıcı Adı ya da şifresi
    20Özet Raporda;verilen dönem için atış bulunamadı.
    21Detay Raporda;verilen parametreler için rapor bulunamadı yada rapor henüz hazır değil.

    Örnek Rapor

    2141 905……………….. 2 021107141318
    2141 905……………….. 3
    2141 905……………….. 4
    2141 905……………….. 1
  3. DETAYLI RAPOR ALIMI(v2)

    Her bir paketin detay raporunu almak için aşağıda verilen XML un Aşağıdaki adrese Post Edilmesi gerekmektedir.Rapor sonucu Xml olarak dönmektedir.

    POST http://sms.ayyildiz.net/Reportnew.aspx
    <?xml version="1.0" encoding="UTF-8"?>
    <ReportMain>
        <UserName>test</UserName>
        <PassWord> pass</PassWord>
        <CompanyCode >Bayi Kodu</CompanyCode>
        <Msgid>Msgid </Msgid>
    </ReportMain>
    

    XML Açıklamaları

    ÖzellikAçıklama
    UserNameKullanıcı Adı
    PassWordŞifreniz
    MsgidGönderilen Sms ID si

    Numara Durum Kodları

    Durum KoduAçıklama
    1Bekleyen Numaralar(Kullanımda ancak kapsama alanı dışında yada telefon kapalı)
    2İletilen Numaralar
    3Sistem Hatası(bu numara kullanımda değil ya da servis dışı)
    4İletilememesinden dolayı zaman aşımı (Xml içinde SDATE ve EDATE değerleri verilmediği takdirde default 48 saattir.)

    Rapor Alımında Alınabilecek Hata Kodları

    Hata KoduAçıklama
    OKRapor Başarılı
    00Hatalı Kullanıcı Adı ya da şifresi
    01Hatalı Kullanıcı Adı ya da şifresi
    20Özet Raporda;verilen dönem için atış bulunamadı.
    21Detay Raporda;verilen parametreler için rapor bulunamadı ya da rapor henüz hazır değil.

    Örnek Rapor

    <ReportnewResult>
    <RESPONSECODE>OK</RESPONSECODE>
           <ReportResults>
                   <ReportResultLine>
                           <Msgid>12077071</Msgid>
                           <GSMNO>90xxxxxxxxx</GSMNO>
                           <STATUS>3</STATUS>
                           <TARIH/>
                   </ReportResultLine>
           </ReportResults>
    </ReportnewResult>
    

OPT Servis Kullanımı

OTP servis kullanımıyla gönderilecek mesajlarda uygulanacak API entegrasyonu Toplu SMS entegrasyonu ile aynıdır. Toplu SMS hesap aktivasyonu sağlanırken tanımlamalar OTP servisine yapılır.

Not: OTP SMS sadece güvenlik gerektiren şifre ve anlık bilgilendirme şifre gönderimlerinde kullanıldığı için Toplu SMS gönderimleri yapılmamalıdır!

Hata Kodları

SMS Gönderim sırasında oluşabilecek durumlara ilişkin hata kodları aşağıda ki tabloda listelenmiştir

Hata KoduYanıt
00Kullanıcı Bilgileri Boş
01Kullanıcı Bilgileri Hatalı
02Hesap Kapalı
03Kontör Hatası
04Bayi Kodunuz Hatalı
05Originator Bilginiz Hatalı
06Yapılan İşlem İçin Yetkiniz Yok
10Geçersiz IP Adresi
14Mesaj Metni Girilmemiş
15GSM Numarası Girilmemiş
20Rapor Hazır Değil
27Aylık Atım Limitiniz Yetersiz
100XML Hatası

SMS Kredi Sorgulama

Kullanıcı mevcut kredisini sorgulamak istediği durumlarda kullanılır.Bunun için aşağıda verilen Xml ’un aşağıdaki adrese Post Edilmesi gerekmektedir.

POST http://sms.ayyildiz.net/QueryCredit.aspx
<?xml version='1.0' encoding='ISO-8859-9'?>
<Main>
                <UserName>xx</UserName>
                <PassWord>xx</PassWord>
                <CompanyCode>Bayi Kodu</CompanyCode>
</Main>

Örnek Dönüş


Kredi MiktarıTarih Değeri
1250 yyyymmdd (Yıl/Ay/Gün) formatında

Kredi Sorgulamada Alınabilecek Hata Kodları

Hata KoduAçıklama
00Kullanıcı Bilgileri Boş
01Hatalı Kullanıcı Adı ya da şifresi
02Hesap Kapalı
03Kontör Hatası
06Bu işlem için Yetkiniz Yok
10Geçersiz IP Adresi
100XML Hatası



POST http://sms.ayyildiz.net/SendSmsMany.aspx
Kopyala
<?php
class sendSMS {
	private $username = "";
	private $password = "";
	private $BayiKodu = "";
	private $requestedpass;
	private $originator = "";
	private $gsmno;
	private $msgtext;
	private $sendMulti = false;
	
function setGsmNo($gsmno) {
if (is_array ( $gsmno )) {
$nos = "";
foreach ( $gsmno as $no ) {
if (preg_match_all ( '/(?:[+]|[0]{1,2}){0,1}(?:[\s]{0,})(
?P<icode>90|9[\s]0){0,1}(?:[\s]{0,})(?P<t1>5[0-9]{2})(?:[\s]{0,})(
?P<t2>[0-9]{3})(?:[\s]{0,})(?P<t3>[0-9]{2})(?:[\s]{0,})(
?P<t4>[0-9]{2})(?:[\s]{0,})/im', $no, $result, PREG_PATTERN_ORDER )) {
$no = $result ['t1'] [0] . $result ['t2'] [0] . $result ['t3'] [0] . $result ['t4'] [0];
$nos .= $no . ",";
}
}
$this->gsmno = substr ( $nos, 0, - 1 );
} else {
if (preg_match_all ( '/(?:[+]|[0]{1,2}){0,1}(?:[\s]{0,})(
?P<icode>90|9[\s]0){0,1}(?:[\s]{0,})(?P<t1>5[0-9]{2})(
?:[\s]{0,})(?P<t2>[0-9]{3})(?:[\s]{0,})(?P<t3>[0-9]{2})(
?:[\s]{0,})(?P<t4>[0-9]{2})(?:[\s]{0,})/im', $gsmno, $result, PREG_PATTERN_ORDER )) {
$this->gsmno = $result ['t1'] [0] . $result ['t2'] [0] . $result ['t3'] [0] . $result ['t4'] [0];
}
}

}
	
	function setMessageText($text) {
		$text = str_replace ( array ("İ", "\u0130", "\xDD", "İ" ), "I", $text );
		$text = str_replace ( array ("ı", "\u0131", "\xFD", "ı" ), "i", $text );
		$text = str_replace ( array ("Ğ", "\u011e", "\xD0", "Ğ" ), "G", $text );
		$text = str_replace ( array ("ğ", "\u011f", "\xF0", "ğ" ), "g", $text );
		$text = str_replace ( array ("Ü", "\u00dc", "\xDC", "U" ), "U", $text );
		$text = str_replace ( array ("ü", "\u00fc", "\xFC", "ü" ), "u", $text );
		$text = str_replace ( array ("Ş", "\u015e", "\xDE", "Ş" ), "S", $text );
		$text = str_replace ( array ("ş", "\u015f", "\xFE", "ş" ), "s", $text );
		$text = str_replace ( array ("Ö", "\u00d6", "\xD6", "Ö" ), "O", $text );
		$text = str_replace ( array ("ö", "\u00f6", "\xF6", "ö" ), "o", $text );
		$text = str_replace ( array ("Ç", "\u00c7", "\xC7", "Ç" ), "C", $text );
		$text = str_replace ( array ("ç", "\u00e7", "\xE7", "ç" ), "c", $text );
		$this->msgtext = $text;
	}
	
	function send() {
		$xml = <<<EOH
<?xml version="1.0" encoding="iso-8859-9"?>
<MainmsgBody xmlns:sql='urn:schemas-microsoft-com:xml-sql' 
xmlns:updg='urn:schemas-microsoft-com:xml-updategram'>
	<UserName>{$this->username}</UserName>
	<PassWord>{$this->password}</PassWord>
	<CompanyCode>{$this->BayiKodu}</CompanyCode>
	<Developer></Developer>
	<Version>xVer.4.0</Version>
	<Originator>{$this->originator}</Originator>
	<Mesgbody>{$this->msgtext}</Mesgbody>
	<Numbers>{$this->gsmno}</Numbers>
	<SDate></SDate>
	<EDate></EDate>
</MainmsgBody>	
EOH;
    $result = $this->postViaCurl ( "http://sms.ayyildiz.net/SendSmsMany.aspx", $xml );
    $msg ['00'] = "Kullanıcı Bilgileri Boş";
    $msg ['01'] = "Kullanıcı Bilgileri Hatalı";
    $msg ['02'] = "Hesap Kapalı";
    $msg ['03'] = "Kontör Hatası";
    $msg ['04'] = "Bayi Kodunuz Hatalı";
    $msg ['05'] = "Originator Bilginiz Hatalı";
    $msg ['06'] = "Yapılan İşlem İçin Yetkiniz Yok";
    $msg ['10'] = "Geçersiz IP Adresi";
    $msg ['14'] = "Mesaj Metni Girilmemiş";
    $msg ['15'] = "GSM Numarası Girilmemiş";
    $msg ['20'] = "Rapor Hazır Değil";
    $msg ['27'] = "Aylık Atım Limitiniz Yetersiz";
    $msg ['100'] = "XML Hatası";
    if (is_numeric ( $result ) && isset ( $msg [$result] )) {
        $result = array ("basari" => false, "mesaj" => $msg [$result] );
    } else {
        $result = array ("basari" => true, "mesaj" => $result );
    }
    return $result;
}
	
private function postViaCurl($url, $data) {
$user_agent = 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9) 
Gecko/2008061015 Firefox/3.0';
$httpheader = array ("Accept: text/html,application/xhtml+xml,application/xml;
q=0.9,*/*;q=0.8", 
"Accept-Language: tr,en-us;q=0.7,en;q=0.3", 
"Accept-Encoding: gzip,deflate", 
"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7", 
"Keep-Alive: 300" );
$curl = curl_init ();
curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt ( $curl, CURLOPT_VERBOSE, true );
curl_setopt ( $curl, CURLOPT_FOLLOWLOCATION, true );
curl_setopt ( $curl, CURLOPT_HTTPHEADER, $httpheader );
curl_setopt ( $curl, CURLOPT_USERAGENT, $user_agent );
curl_setopt ( $curl, CURLOPT_TIMEOUT, 300 );
curl_setopt ( $curl, CURLE_OPERATION_TIMEOUTED, 300 );
curl_setopt ( $curl, CURLOPT_HEADER, false );
curl_setopt ( $curl, CURLOPT_POST, true );
curl_setopt ( $curl, CURLOPT_POSTFIELDS, $data );
curl_setopt ( $curl, CURLOPT_URL, $url );
$result = curl_exec ( $curl );
curl_close ( $curl );
return $result;
}
}
?>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.IO;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {           
        string deger = string.Empty;
        string xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>";
        xml += "<MainmsgBody>";
        xml += "<UserName>{$this->username}</UserName>";
        xml += "<PassWord>{$this->password}</PassWord>";
        xml += "<CompanyCode>{$this->BayiKodu}</CompanyCode>";
        xml += "<Developer></Developer>";
        xml += "<Version>xVer.4.0</Version>";
        xml += "<Originator>{$this->originator}</Originator>";
        xml += "<Mesgbody>{$this->msgtext}</Mesgbody>";
        xml += "<Numbers>{$this->gsmno}</Numbers>";
        xml += "<SDate></SDate>";
        xml += "<EDate></EDate>";
        xml += "</MainmsgBody>	";     
            try
            {
byte[] byteArray = Encoding.UTF8.GetBytes(xml);
HttpWebRequest webRequest = 
(HttpWebRequest)WebRequest.Create("http://sms.ayyildiz.net/SendSmsMany.aspx");
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.ContentLength = byteArray.Length;
     using (Stream str = webRequest.GetRequestStream()){
                  str.Write(byteArray, 0, byteArray.Length);
        }

using (HttpWebResponse wr = (HttpWebResponse)webRequest.GetResponse()){
using (StreamReader sr = new StreamReader(wr.GetResponseStream())) {
Console.WriteLine(sr.ReadToEnd());
}
        }                
  }
            catch (Exception ex){
 				deger = ex.Message;
              }

            Console.Write(deger);
                Console.ReadKey();
        }
    }
} 
Imports System.Net
Imports System.Text

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, 
    ByVal e As System.EventArgs) 
  
        Dim StrXml As String
        Dim StrRes As String
        Dim XmlRoot As New System.Xml.XmlDocument

        Dim XmlNode As System.Xml.XmlNodeList
        Dim child, cn As System.Xml.XmlNode
        Dim strid, strgsm, strmes, strdate As String

        strXML = "<?xml version='1.0' encoding='UTF-8' ?>" + vbcrlf
        strXML = strXML + "<MainmsgBody>" + vbcrlf
        strXML = strXML + "<UserName></UserName>" + vbcrlf
        strXML = strXML + "<PassWord></PassWord>" + vbcrlf
        strXML = strXML + "<CompanyCode></CompanyCode>" + vbcrlf
        strXML = strXML + "<Originator></Originator >" + vbcrlf
        strXML = strXML + "<Version> </Version>" + vbcrlf
        strXML = strXML + "<Mesgbody></Mesgbody>" + vbcrlf
        strXML = strXML + "<Numbers>" + ceptel + "</Numbers>" + vbcrlf
        strXML = strXML + "<SDate>" + strDate1 + "</SDate>" + vbcrlf
        strXML = strXML + "<EDate>" + strDate2 + "</EDate>" + vbcrlf
        trXML = strXML + "</MainmsgBody>" + vbcrlf

        StrRes = HTTPPost("http://sms.ayyildiz.net/SendSmsMany.aspx", StrXml).Trim()

        Try
            XmlRoot.LoadXml(StrRes)

        Catch ex As Exception
            If StrRes = "01" Then
                MsgBox("Kullanııc Bilgileri Hatalı." + StrRes)
            End If

                If StrRes = "00" Then
                MsgBox("Yeni Mesaj YOk" + StrRes)
            End If


                    ' Ulaşılmayan Mesajlar için Hata Kodları
                    If StrRes = "100" Then
                        MsgBox("XML Hatası.")

            End If
        End Try


        If Mid(StrRes, 1, 3) = "ID:" Then
            MsgBox("SMS Başarıyla Gönderildi." + StrRes)
        Else
           ' Ulaşmayan Mesajlar için Hata Kodları
            If StrRes = "100" Then
                MsgBox("XML Hatası.")
            Else

                'Hata Kodları
                '100 XML Hatası
                '00 Kullanıcı Bilgileri girilmemil
                '01 Kullanıcı Bilgileri Hatalı
                '03 Kontor Yetersiz 
                '05 Orignator Yanlış
                '14 MEsaj Metni Boş
                '15 Numara Yok
                MsgBox("Gönderim hatası .HataKodu" + StrRes)
            End If


        End If
        TextBox1.Text = StrRes
    End Sub
    Private Function HTTPPost(ByVal url As String, ByVal SendData As String) As String
        Try
            Dim Upload As Net.WebClient = New System.Net.WebClient
            Dim PostArray As Byte() = Encoding.UTF8.GetBytes(SendData)
            Dim Response As Byte() = Upload.UploadData(url, "POST", PostArray)
            Dim str As String = Encoding.ASCII.GetChars(Response)
            HTTPPost = str
        Catch ex As Exception
            HTTPPost = ex.Message.ToString()

        End Try
    End Function

    Private Sub Button2_Click(ByVal sender As System.Object, 
    ByVal e As System.EventArgs)

    End Sub
End Class
package SMSAPI;
import java.net.*;
import java.text.*;
import java.util.*;
import java.io.*;
import java.net.HttpURLConnection.*;

public class smsgonder {
public  String Toplugonder(String UserName,String PassWord,String CompanyCode,
String Origin,String Message,String GSM)  {
String strMsgGuid,result="";
String inputString= "<?xml version=\"1.0\" encoding=\"ISO-8859-9\"?>"+
"<MainmsgBody>"+
"<UserName>"+UserName+"</UserName>"+
"<PassWord>"+PassWord+"</PassWord>"+
"<CompanyCode>"+CompanyCode+"</CompanyCode>"+
"<Version>javaSMS v2.0</Version>"+
"<Originator>"+Origin+"</Originator>"+
"<Mesgbody><![CDATA["+Message+"]]></Mesgbody>"+
"<Numbers>"+GSM+"</Numbers>"+
"<SDate></SDate>"+
"<EDate></EDate>"+
"</MainmsgBody>";

        try
        {
        URL url1 = new URL("url many adres yazılacak");
        HttpURLConnection conn = (HttpURLConnection)(url1.openConnection());
        conn.setDoOutput(true);
        PrintWriter pw = new PrintWriter(conn.getOutputStream());
       //pw.println(URLEncoder.encode(inputString));
       pw.println(inputString);
       pw.close();

        BufferedReader in2 = new BufferedReader(new
        InputStreamReader(conn.getInputStream()));

        String inputLine;
        while((inputLine = in2.readLine()) != null)
        result=result+inputLine+"\n";
        in2.close();
       
       } catch(Exception ex) {
        System.out.println(ex.getMessage());

}

       // System.out.println(result);
        return result;
        }
       public  String TopluKisiyeOzel(String UserName,String PassWord,
       String CompanyCode,String Origin,ArrayList Messagearr,ArrayList GSMarr)  {
        String  result="";
        String inputString1="";
         
         for (int i=0; i<GSMarr.size(); i++) {

        inputString1=inputString1+
        "<Message>"+
        "<Mesgbody>"+Messagearr.get(i)+"</Mesgbody>"+
        "<Number>"+GSMarr.get(i)+"</Number>"+
        "<SDate></SDate>"+
        "<EDate></EDate>"+
        "</Message>";	 
         }	    	
    String inputString= "<?xml version=\"1.0\" encoding=\"ISO-8859-9\"?>"+
    "<MainmsgBody>"+
    "<UserName>"+UserName+"</UserName>"+
    "<PassWord>"+PassWord+"</PassWord>"+
    "<CompanyCode>"+CompanyCode+"</CompanyCode>"+
    "<Version>javaSMS v2.0</Version>"+
    "<Originator>"+Origin+"</Originator>"+
    "<Messages>"+
    inputString1+
    "</Messages>"+
    "</MainmsgBody>";

        try
        {
        URL url1 = new URL("url multi adres yazılacak");
        HttpURLConnection conn = (HttpURLConnection)(url1.openConnection());
        conn.setDoOutput(true);
        PrintWriter pw = new PrintWriter(conn.getOutputStream());
       //  pw.println(URLEncoder.encode(inputString));
       pw.println(inputString);
       pw.close();

        BufferedReader in2 = new BufferedReader(new
        InputStreamReader(conn.getInputStream()));

        String inputLine;
        while((inputLine = in2.readLine()) != null)
        result=result+inputLine+"\n";
        in2.close();		   
       } catch(Exception ex) {
        System.out.println(ex.getMessage());
}
       // System.out.println(result);
        return result;
        }
}

Toplu SMS Gönderimi

package SMSAPI;
import java.net.*;
import java.text.*;
import java.util.*;
import java.io.*;
import java.net.HttpURLConnection.*;
import java.util.ArrayList;
public class javasms {	  
	   
   public static void main(String[] args) {                
   String res="";
        	
smsgonder sms= new smsgonder();
               
// Mesajın Birden Fazla numaraya toplu gönderimi               
res=sms.Toplugonder("k.adı","sifre","kod","başlık3g","deneme","905xxxxxx,90835xxxx");

// Kişiye Özel Gönderim
ArrayList arrgsm =new ArrayList();
ArrayList arrmes =new ArrayList();

arrgsm.add("905326670714");
arrgsm.add("905356670714");
arrgsm.add("905055540714");

arrmes.add("1 mesja metni");
arrmes.add("2 mesja metni");
arrmes.add("3 mesja metni");

res=sms.TopluKisiyeOzel("k.adı","sifre","kod","başlık3g",arrmes,arrgsm);
System.out.println(res);
                                 
        }      	
}
 
  Örnek Html Kodu:

<form action="#" method="#">
<table>
<tr><td>Kullanızı Adı :</td><td><input type="text" id="kullaniciadi"></td></tr>
<tr><td>Şifre :</td><td><input type="password" id="sifre"></td></tr>
<tr><td>Bayi Kodu :</td><td><input type="text" id="bayikodu"></td></tr>
<tr><td>Gönderilecek GSM No :</td>
<td><input type="text" id="to">
Birden fazla numaraya gönderim için, aralarına virgül ekleyin!
<!-- 
Örnek:
05xxxxxxxx,05xxxxxxx,05xxxxxxx
-->
</td></tr>
<tr><td>Origin :</td><td><input type="text" id="origin"></td></tr>
<tr><td>Mesajınız</td><td>
<textarea id="text" cols="5" rows="10"></textarea>
</td></tr>
<tr><td></td><td><input type="button" id="sendBtn" value="SMS Gönder"></td></tr>
</form>
 
 
 Örnek Javascript Kodu: JSON-XML POST
 
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>            
<script> 
             $(document).ready(function(){
             $('#sendBtn').click(function(){
             
        var xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>";
        xml += "<MainmsgBody>";
        xml += "<UserName>"+$('#kullaniciadi').val()+"</UserName>";
        xml += "<PassWord>"+$('#sifre').val()+"</PassWord>";
        xml += "<CompanyCode>"+$('#bayikodu').val()+"</CompanyCode>";
        xml += "<Developer></Developer>";
        xml += "<Version>xVer.4.0</Version>";
        xml += "<Originator>"+$('#origin').val()+"</Originator>";
        xml += "<Mesgbody>"+$('#text').val()+"</Mesgbody>";
        xml += "<Numbers>"+$('#to').val()+"</Numbers>";
        xml += "<SDate></SDate>";
        xml += "<EDate></EDate>";
        xml += "</MainmsgBody>";        
        
        <!-- javascript xml post -->
        SendSMS(xml,'http://sms.ayyildiz.net/SendSmsMany.aspx');
        });
                 

AYNI MESAJIN FARKLI NUMARALARA GÖNDERİLMESİ (JSON)
Örnek Javascript Kodu: JSON POST             
  
   $('#sendBtn').click(function(){
   
    var jsonData = {
    "JsonManySMS":  {
    "UserName": $('#kullaniciadi').val(),
    "PassWord": $('#sifre').val(),
    "SMSType": "1",
    "CompanyCode": $('#bayikodu').val(),
    "Developer": "",
    "Originator": $('#origin').val(),
    "Version": "JSON_Service",    
    "MessageBody": $('#text').val(),
    "StartDate": "",
    "EndDate": "",
    "Numbers": [
               "905XXXXXXXXX",
               "905XXXXXXXXX",
               "905XXXXXXXXX"
           ]
       }
    };
   
   SendSMS(jsonData,'http://sms.ayyildiz.net/BulkWebService.asmx/JsonManySMS');
   
   });  
   
FARKLI MESAJLARIN FARKLI NUMARALARA GÖNDERİLMESİ (JSON)
Örnek Javascript Kodu: JSON POST
     
      $('#sendBtn').click(function(){
      
  var jsonData1={
    "JsonMultiSMS": {
        "Messages":[
        { 	"Mesgbody": "1. MESAJ",
            "Number": "1. GSM NUMARASI",
            "SDate": "",
            "EDate": ""
        },
        {	"Mesgbody": "2. MESAJ",
            "Number": "2. GSM NUMARASI",
            "SDate": "",
            "EDate": ""
        }],

        "UserName": $('#kullaniciadi').val(),
        "PassWord": $('#sifre').val(),
        "CompanyCode":$('#bayikodu').val(),
        "Type": "1",
        "Developer": "xx",
        "Originator": $('#origin').val(),
        "Version": "JSON_Service",
        "SDate": "",
        "EDate": ""
}};
      
   SendSMS(jsonData1,'http://sms.ayyildiz.net/BulkWebService.asmx/JsonMultiSMS');
   });
     
   
}); 
   
   function SendSMS(DATAList, postUrl){
        var options = {};
        options.url =postUrl;
        options.type = "POST";
        options.data = DATAList;
        options.cache = false;
        options.asyn = true;
        options.contentType = false;
        options.processData = false;
        options.dataType = "application/json; charset=utf-8";
        options.error = function (err) {
  		alert(err);
        }
        $.ajax(options);
              }        
              
              </script>
              

HTTP/S SMS API

HTTP/HTTPS API, Toplu SMS gönderim hizmetimizi kullanmak isteyen ve SMS gönderim gereksinimleri bir seferde 150 adedi geçmeyen yazılım geliştiricilerin, kullanmakta oldukları yazılım geliştirme ortamlarıyla SMS modülünü entegre edebilmelerini sağlamak amacıyla geliştirilmiştir.

AYYILDIZ HTTP/HTTPS API, uygulama geliştiricilerin, çözümlerine SMS teknolojisini eklemeleri için, HTTP ya da HTTPS üzerinden Ayyıldız SMS Gateway'e ulaşmalarını sağlar. Yazılım geliştiriciler, Ayyıldız HTTP/HTTPS tarafından sunulan yöntemleri, belirtilen şekilde kullanarak çağırırlar. Sunulan yöntemler HTTP API ve HTTPS API için de aynıdır. Farklı olan kısımları parametrelerin gönderildiği adreslerdir.

Mesajı firewall vb. otomatik gönderim yapan sistemler üzerinden gönderim yapmak için kullanılır.

GET http://web.ayyildiz.net/services/SendSmsGet.aspx?user=xxx&password=xxx&to=gsm&text=xxx&origin=xxx&tip=&type=

Hazırladığınız SMS gönderim formlarının action parametresine yukarıdaki adreslerden size uygun olanını ekleyerek SMS gönderimleri yapabilirsiniz. Gönderim yapacağınız formun metot parametresinin değeri GET olmalıdır.


Sistem Gereksinimleri

AYYILDIZ HTTP/S API çözümünü kullanabilmeniz için gereken minimum sistem gereksinimleri aşağıda belirtilmiştir.

  • Windows Serisi, UNIX, Linux ya da MacOS İşletim Sistemi
  • Internet Explorer 6,7,8,9,10,11,12 ve Edge SP1,SP2, Firefox, Chrome, Opera, Safari (Windows Platformu için)
  • cURL kütüphanesi (PHP kullanan geliştiriciler için)

Kullanıcı Bilgilerinin Kontrolü

SMS gönderimine başlamadan önce SMS kullanıcı bilgilerinin kontrolü sağlanmalıdır. Mevcut SMS hesabınız bulunmuyor ise AYYILDIZ'dan öncelikle numara almanız gereklidir. Alacağınız numara sonrasında, sms paketlerinden birini satın almalısınız.

http://sms.ayyildiz.net'e yollanan kullanıcı bilgilerinin doğruluğu sistem tarafından kontrol edilerek kullanıcı hesabına ait kredi bilgisi ve orijinatör bilgisi sistem tarafından gönderilir. Kullanıcı bilgilerinin kontrolü sırasında user, password ve origin bilgileri kontrol edilir.

Öznitelik Yorum
user Kullanıcı Adı
password Kullanıcı Şifresi
to Gönderilecek Gsm Numarası
text Gönderilecek Mesaj Metni
origin Gözükecek olan alfanumerik
tip “Success” kullanılması durumunda response açıklamaları “Success,Failure” olarak dönüş yapar
type Mesaj gönderim tipini değiştirmek için kullanılır. Default Tip Uzun Sms

Kullanılacak Karakterler

Gönderim sırasında;

Türkçe karakterler (ç,ş,ü,ö,ğ,Ç,Ü,Ş,Ğ,Ö,İ) . ~, ^^, &, <, >, €, £, ã, Ã, ‰, €, ©, ®, ∞, ° simgeleri LineFeed, Enter, Tab komutları kesinlikle kullanılmamalıdır.

Mesaj metni içerisinde sadece ( ), [ ], { }, =, *, ?, \, /, %, +, #, !, ", :, ;, _, | simgeleri kullanılabilir.

“&”,”<”,”>” Karakterlerinin Kullanımı

Karakter XML Formatı
& &amp;
< &gt;
> &lt;
Replace Yönetimi
public string xmlreplace(string inString)
    {
        inString = inString.Replace("&", "&amp;");
        inString = inString.Replace("<", "&lt;");
        inString = inString.Replace(">", "&gt;");
        inString = inString.Replace("’", "&apos;");
        inString = inString.Replace("“", "&quot;");
        inString = inString.Replace("“", "&#8364;");
        inString = inString.Replace('"'.ToString(), "&quot;");
        return inString;
    }

GSM Numarası Formatı

GSM numaraları 05xxxxxx, 5xxxxxxx, 905xxxxxx şeklinde ve Numbers parametre düğümü içerisinde yazılmalıdır. GSM numaraları uygun olmayan formatta yazılırsa 04 Hata Kodu alınır. Boş ise, Hata Kodu 15, GSM numarası formatının hatalı olduğu anlamına gelir. Bu durumda GSM Numarası Formatına İlişkin Uyarılar başlığı altındaki bilgileri kontrol etmelisiniz.

Kullanım Örnekleri:
http://web.ayyildiz.net/services/SendSmsGet.aspx?user=xxx&password=xxx&to=05xxxxxxxxx,5xxxxxxxx,905xxxxxxx&text=xxx&origin=xxx&tip=&type=

Not: +905xxxxxxx, 5xx 5xx xx xx, +05xxxxxxx. şeklinde ve -, ( ), [ ], { } vb. karakterlerle gönderim yapılamaz!

Standart Dil Çevrime

Mesaj metni oluşumunda ASCII (Bilgi Değişimi İçin Amerikan Standart Kodlama Sistemi) karakterleri dışında karakter kullanımı varsa Dil Çevirici kullanılması gerekmektedir.

Mesaj Karakter Sayısı

SMS paketi 160 karakter altı ve 160 karakter üstü mesaj metinlerinden oluşuyorsa gönderim öncesi karakter kontrolü yapılarak TYPE parametresi ayarlanmalıdır. 160 karakter altı mesajlar ayrı, 160 karakter üstü mesajlar ayrı paketler halinde gönderilmelidir.

160 Karakter Altı Mesaj Metinleri İçin TYPE Kullanımı:
160 karakter altındaki mesajlar için aynı mesaj mesaj birden fazla GSM numarasına gönderilecekse: type:1

612 karakter mesajlar için farklı mesajlar farklı GSM numaralarına gönderilecekse: type:5

155 Türkçe Karakter Mesaj Metinleri İçin Type Kullanımı:
155 Türkçe karakter olarak birden fazla GSM numarasına mesaj gönderilecekse: type:12

745 Türkçe karakter üzerindeki mesajlar için farklı mesajlar farklı GSM numaralarına gönderilecekse: type:12

SMS Type: Sms gönderim sırasında mesajın hangi tip ve kaç karakter gönderileceğini bildirir.

Sms gönderim sırasında mesajın hangi tip olarak gönderileceğini bildirir.

GET http://web.ayyildiz.net/services/SendSmsGet.aspx?user=xxx&password=xxx&to=gsm&text=xxx&origin=xxx&tip=&type=
KarakterType
160 Karakter Sms1
918 Karakter Sms5
155 Karakter Sms(Türkçe )12
894 Karakter Sms(Türkçe Uzun)12
70 Karakter Türkçe Gönderim ve Tüm Diller6
402 Karakter Türkçe Gönderim ve Tüm Diller7
402 Karakter Uluslararası Gönderim13

Not: Türkçe Sms Gönderimlerinde dikkat edilmesi gereken nokta encoding alanı UTF-8 şeklinde olmalıdır.

  • Başlıklı SMS (Standart): 1 boy SMS 155, 2 boy SMS 301, 3 boy SMS 454, 4 boy SMS 607, 5 boy SMS 760, 6 boy SMS 913 karakterdir.
  • Başlıklı SMS (Türkçe Karakterli): 1 boy SMS 150, 2 boy SMS 296, 3 boy SMS 449, 4 boy SMS 602, 5 boy SMS 755, 6 boy SMS 908 karakterdir.
  • Abone Numaralı SMS (Standart): 1 boy SMS 160, 2 boy SMS 306, 3 boy SMS 459, 4 boy SMS 612, 5 boy SMS 765, 6 boy SMS 918 karakterdir.
  • Abone Numaralı SMS (Türkçe Karakterli): 1 boy SMS 155, 2 boy SMS 301, 3 boy SMS 454, 4 boy SMS 607, 5 boy SMS 761, 6 boy SMS 913 karakterdir.
  • Gönderici adı en az 3 en fazla 11 karakterden oluşur.

Raporlama

Tarih Bazında Raporlama
Tarih Bazında Raporlama için TYPE parametresi 2 olmalıdır. Tarih aralığı belirtmek için SDate, raporun başlangıç tarihi; EDate, raporun bitiş tarihinin girilmesi gereken parametrelerdir.

Tarih bazında rapor almak için aşağıdaki XML ifadesi kullanılmalıdır:

POST http://sms.ayyildiz.net/ReportList.aspx
<?xml version='1.0' encoding='ISO-8859-9'?>
<MainmsgBody>
                <UserName>xx</UserName>
                <PassWord>xx</PassWord>
                <CompanyCode>xx</CompanyCode>
                <Delm>||</Delm>
                <SDate>20171208</SDate>
                <EDate>20171209</EDate>
                <Type>2</Type>
</MainmsgBody>

Parametre Açıklamaları:

ÖzellikAçıklama
UsernameString , Kullanıcı Adı
PasswordString, Şifre
CompanyCodeString, Bayi Kodu
DelmString, Gelen cevabın hangi karakter kullanılarak ayrılacağı
SDateString, Baslangıç Tarihi yyyyDDMM formatında olmalıdır
EDateString, Bitiş Tarihi yyyyDDMM formatinda olmalidir
TypeString, 2 Standart
"M_GUID"||"MESTIME"||"VERSION"||
"MESSAGE"||"TOTAL"||"SENT"||"PENDING"||
"SYSTEMOUT"||"TIMEOUT"||"TIP"||"STATUS"||
"CESS"||"BASTAH"||"BITTAH"||"ALFA"

"2017120811304581232136264934"||
"2017120123445688666264934"||
"Deneme"||"Deneme"||
"2245"||"0"||"0"||"0"||"0"||"7"||
"11"||"1"||"081220171637"||
"081220171937"||"deneme"

Dönüş Parametre Açıklamaları

ÖzellikAçıklama
MESSAGEMesaj Metni
MESSTIMEMesaj Gönderim Tarihi
M_GUIDMesaj Gönderim Tarihi ile aynı, GUID
ALFAAlfanumerik, Gönderim Başlığı
BASTAHBaslangıç Tarihi
BITTAHBitiş Tarihi
TOTALMesaj Sayısı
SENTIletilen Mesaj Sayısı
PENDINGBekleyen Mesaj Sayısı
SYSTEMOUTSistem Hatasi
TIMEOUTZaman Aşımı
CESSDurum kodlari asağıdaki tablodadır.
TIPSms gönderim sırasında mesajın hangi tip olarak gönderileceğini bildirir.
  • 160 Karakter Sms gönderiminde type: (1)
  • 918 Karakter Sms gönderiminde type: (5)
  • 155 Karakter Sms(Türkçe NLSS) gönderiminde type: (12)
  • 894 Karakter Sms(Türkçe NLSS) gönderiminde type: (12)
  • 70 Karakter Türkçe Gönderim gönderiminde type: (6)
  • 402 Karakter Türkçe Gönderim gönderiminde type: (7)
  • 402 Karakter Uluslararası Gönderim gönderiminde type:(13)
STATUS
VERSIONVersiyon String (Mesaj gonderilirken girilen değer)

Raporlama Durum Bilgisi

Raporlama sırasında gönderimi başarı olan paket için 8 farklı durum bilgisi döner:

POST http://sms.ayyildiz.net/ReportList.aspx
Durum KoduAçıklama
9İPTAL
99İPTAL
91BLOKLU
1BEKLEMEDE
2İŞLEMDE
3HATALI
4BAŞARILI
5MUKERRER
  1. DETAYLI RAPOR ALIMI (GUID ILE)

    Her bir paketin detay raporunu almak için aşağıda verilen XML un Aşağıdaki adrese Post Edilmesi gerekmektedir.Rapor sonucu satır satır dönmektedir.

    POST http://sms.ayyildiz.net/DetailReport.aspx
    <?xml version="1.0" encoding="ISO-8859-9"?>
    <Main>
        <UserName>test</UserName>
        <PassWord> pass</PassWord>
        <CompanyCode >Bayi Kodu</CompanyCode>
        <strGuid>XXXX</strGuid>
        <Delm>||</Delm >
        <Type></Type>
    </Main>
                      

    XML Açıklamaları

    ÖzellikAçıklama
    UserNamestring, Kullanıcı Adı
    PassWordstring, Şifreniz
    CompanyCodestring, Bayi Kodu
    strGuidstring, Rapor Listesinde Size Verilen GUID
    Delmstring, Parçalamak İstenen Karakter
    Typestring, Boş girilebilir

    Dönüş cevapları aşağıdaki gibidir.

    • "GSMNO";"STATUS"
    • "905xxxxxxx";3
    • "905xxxxxxx";3

    Durum Kodları

    Durum KoduAçıklama
    1Beklemede
    2İletildi
    3Numara Hatalı
    4Zaman Aşımı
  2. DETAYLI RAPOR ALIMI

    Her bir paketin detay raporunu almak için aşağıda verilen XML un Aşağıdaki adrese Post Edilmesi gerekmektedir.Rapor sonucu satır satır dönmektedir.

    POST http://sms.ayyildiz.net/Report.aspx
    <?xml version="1.0" encoding="ISO-8859-9"?>
    <ReportMain>
        <UserName>test</UserName>
        <PassWord> pass</PassWord>
        <CompanyCode >Bayi Kodu</CompanyCode>
        <Msgid>Msgid </Msgid>
        <Delm>||</Delm >
        <Type></Type>
    </ReportMain>
                      

    XML Açıklamaları

    ÖzellikAçıklama
    UserNameKullanıcı Adı
    PassWordŞifreniz
    MsgidGönderilen Sms ID si
    RTypeİstenilen Rapor Tipi(1 İletildi, 2 Beklemede, 3 Hatalı, 4 Zaman Aşımı) Type alanı girilmediği durumlarda toplam rapor görüntülenir.(İletilen, Beklemede, Hatalı ve zaman aşımları birlikte görüntülenir.)
    DelimiterType alanı boş girildiği durumlarda dikkate alınır. Default değeridir.

    Numara Durum Kodları

    Durum KoduAçıklama
    1Bekleyen Numaralar(Kullanımda ancak kapsama alanı dışında yada telefon kapalı)
    2İletilen Numaralar
    3Sistem Hatası(bu numara kullanımda değil yada servis dışı)
    4İletilememesinden dolayı zaman aşımı (Xml içinde SDATE ve EDATE değerleri verilmediği takdirde default 48 saattir.)

    Rapor Alımında Alınabilecek Hata Kodları

    Hata KoduAçıklama
    00Hatalı Kullanıcı Adı ya da şifresi
    01Hatalı Kullanıcı Adı ya da şifresi
    20Özet Raporda;verilen dönem için atış bulunamadı.
    21Detay Raporda;verilen parametreler için rapor bulunamadı yada rapor henüz hazır değil.

    Örnek Rapor

    2141 905……………….. 2 021107141318
    2141 905……………….. 3
    2141 905……………….. 4
    2141 905……………….. 1
  3. DETAYLI RAPOR ALIMI(v2)

    Her bir paketin detay raporunu almak için aşağıda verilen XML un Aşağıdaki adrese Post Edilmesi gerekmektedir.Rapor sonucu Xml olarak dönmektedir.

    POST http://sms.ayyildiz.net/Reportnew.aspx
    <?xml version="1.0" encoding="UTF-8"?>
    <ReportMain>
        <UserName>test</UserName>
        <PassWord> pass</PassWord>
        <CompanyCode >Bayi Kodu</CompanyCode>
        <Msgid>Msgid </Msgid>
    </ReportMain>
                      

    XML Açıklamaları

    ÖzellikAçıklama
    UserNameKullanıcı Adı
    PassWordŞifreniz
    MsgidGönderilen Sms ID si

    Numara Durum Kodları

    Durum KoduAçıklama
    1Bekleyen Numaralar(Kullanımda ancak kapsama alanı dışında yada telefon kapalı)
    2İletilen Numaralar
    3Sistem Hatası(bu numara kullanımda değil ya da servis dışı)
    4İletilememesinden dolayı zaman aşımı (Xml içinde SDATE ve EDATE değerleri verilmediği takdirde default 48 saattir.)

    Rapor Alımında Alınabilecek Hata Kodları

    Hata KoduAçıklama
    OKRapor Başarılı
    00Hatalı Kullanıcı Adı ya da şifresi
    01Hatalı Kullanıcı Adı ya da şifresi
    20Özet Raporda;verilen dönem için atış bulunamadı.
    21Detay Raporda;verilen parametreler için rapor bulunamadı ya da rapor henüz hazır değil.

    Örnek Rapor

    <ReportnewResult>
    <RESPONSECODE>OK</RESPONSECODE>
           <ReportResults>
                   <ReportResultLine>
                           <Msgid>12077071</Msgid>
                           <GSMNO>90xxxxxxxxx</GSMNO>
                           <STATUS>3</STATUS>
                           <TARIH/>
                   </ReportResultLine>
           </ReportResults>
    </ReportnewResult>

SMS Kredi Sorgulama

Kullanıcı mevcut kredisini sorgulamak istediği durumlarda kullanılır.Bunun için aşağıda verilen Xml ’un aşağıdaki adrese Post Edilmesi gerekmektedir.

POST http://sms.ayyildiz.net/QueryCredit.aspx
<?xml version='1.0' encoding='ISO-8859-9'?>
<Main>
                <UserName>xx</UserName>
                <PassWord>xx</PassWord>
                <CompanyCode>Bayi Kodu</CompanyCode>
</Main>

Örnek Dönüş

Kredi MiktarıTarih Değeri
1250 yyyymmdd (Yıl/Ay/Gün) formatında

Kredi Sorgulamada Alınabilecek Hata Kodları

Hata KoduAçıklama
00Kullanıcı Bilgileri Boş
01Hatalı Kullanıcı Adı ya da şifresi
02Hesap Kapalı
03Kontör Hatası
06Bu işlem için Yetkiniz Yok
10Geçersiz IP Adresi
100XML Hatası

Hata Kodları

SMS Gönderim sırasında oluşabilecek durumlara ilişkin hata kodları aşağıda ki tabloda listelenmiştir

Hata KoduYanıt
00Kullanıcı Bilgileri Boş
01Kullanıcı Bilgileri Hatalı
02Hesap Kapalı
03Kontör Hatası
04Bayi Kodunuz Hatalı
05Originator Bilginiz Hatalı
06Yapılan İşlem İçin Yetkiniz Yok
10Geçersiz IP Adresi
14Mesaj Metni Girilmemiş
15GSM Numarası Girilmemiş
20Rapor Hazır Değil
27Aylık Atım Limitiniz Yetersiz
100XML Hatası
GET http://web.ayyildiz.net/services/SendSmsGet.aspx
Kopyala
Örnek Kod:

<form action="getsms.php" method="post">
<table>
<tr><td>Kullanızı Adı :</td><td><input type="text" name="kullaniciadi"></td></tr>
<tr><td>Şifre :</td><td><input type="password" name="sifre"></td></tr>
<tr><td>Gönderilecek GSM No :</td>
<td><input type="text" name="to">
Birden fazla numaraya gönderim için, aralarına virgül ekleyin!
<!-- 
Örnek:
05xxxxxxxx,05xxxxxxx,05xxxxxxx
-->
</td></tr>
<tr><td>Origin :</td><td><input type="text" name="origin"></td></tr>
<tr><td>Mesajınız</td><td>
<textarea name="text" cols="5" rows="10"></textarea>
</td></tr>
<tr><td></td><td><input type="submit" value="SMS Gönder"></td></tr>
</form>

//getsms.php

<?php

$kullanici = $_POST["kullaniciadi"];
$sifre = $_POST["sifre"];
$gsm = $_POST["to"];
$origin = $_POST["origin"];
$mesaj = setMessageText($_POST["text"]);

$hedef = "http://web.ayyildiz.net/services/SendSmsGet.aspx?
user=".$kullanici."&password=".$sifre."
&to=".$gsm."&text=".$mesaj."&origin=".$origin."&tip=&type=";
$sonuc = http_get($hedef, "");


function setMessageText($text) {
		$text = str_replace ( array ("İ", "\u0130", "\xDD", "İ" ), "I", $text );
		$text = str_replace ( array ("ı", "\u0131", "\xFD", "ı" ), "i", $text );
		$text = str_replace ( array ("Ğ", "\u011e", "\xD0", "Ğ" ), "G", $text );
		$text = str_replace ( array ("ğ", "\u011f", "\xF0", "ğ" ), "g", $text );
		$text = str_replace ( array ("Ü", "\u00dc", "\xDC", "U" ), "U", $text );
		$text = str_replace ( array ("ü", "\u00fc", "\xFC", "ü" ), "u", $text );
		$text = str_replace ( array ("Ş", "\u015e", "\xDE", "Ş" ), "S", $text );
		$text = str_replace ( array ("ş", "\u015f", "\xFE", "ş" ), "s", $text );
		$text = str_replace ( array ("Ö", "\u00d6", "\xD6", "Ö" ), "O", $text );
		$text = str_replace ( array ("ö", "\u00f6", "\xF6", "ö" ), "o", $text );
		$text = str_replace ( array ("Ç", "\u00c7", "\xC7", "Ç" ), "C", $text );
		$text = str_replace ( array ("ç", "\u00e7", "\xE7", "ç" ), "c", $text );
		return $text;
	}
?>
Örnek Kod:

<form id="form1" runat="server">
<table>
<tr><td>Kullanızı Adı :</td>
<td><asp:TextBox runat="server" ID="kullaniciadi"></asp:TextBox></td>
</tr>
<tr><td>Şifre :</td>
<td><asp:TextBox runat="server" TextMode="Password" ID="sifre"></asp:TextBox>
</td>
</tr>
<tr><td>Gönderilecek GSM No :</td>
<td><asp:TextBox runat="server" ID="to"></asp:TextBox>
Birden fazla numaraya gönderim için, aralarına virgül ekleyin! 
<!-- Örnek:05xxxxxxxx,05xxxxxxx,05xxxxxxx--></td></tr>
<tr><td>Origin :</td>
<td><asp:TextBox runat="server" ID="origin"></asp:TextBox></td>
</tr>
<tr><td>Mesajınız</td><td>
<textarea name="text" cols="5" rows="10"></textarea>
<asp:TextBox runat="server" ID="text" TextMode="MultiLine"></asp:TextBox>
</td></tr>
<tr><td></td><td>
<asp:Button runat="server" ID="button1" Text="Gönder" OnClick="button1_click" />
</td></tr>
</form>

Asp.net Örneği: 

using System;
using System.IO;
using System.Net;
namespace WebApplication2
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        protected void button1_click(object sender, EventArgs e)
        {

            string kullanici, ksifre, gsm, origins, mesaj;
            kullanici = kullaniciadi.Text;
            ksifre = sifre.Text;
            gsm = to.Text;
            origins = origin.Text;
            mesaj = setMessageText(text.Text);

WebRequest wr = (WebRequest)WebRequest.Create(
"http://web.ayyildiz.net/services/SendSmsGet.aspx?
user=" + kullanici + "&password=" + ksifre + "&to=" + gsm + "&
text=" + mesaj + "&origin=" + origins + "&tip=&type="");
            WebResponse wres = (WebResponse)wr.GetResponse();
            using (StreamReader oku = new StreamReader(wres.GetResponseStream()))
            {
                string deger = oku.ReadToEnd();
                switch (deger)
                {
                    case "00": Response.Write("Kullanıcı Bilgileri Boş!"); break;
                    case "01": Response.Write("Kullanıcı Bilgileri Hatalı!"); break;
                    case "02": Response.Write("Hesap Kapalı!"); break;
                    case "03": Response.Write("Kontör Hatası!"); break;
                    case "04": Response.Write("Bayi Kodunuz Hatalı!"); break;
                    case "05": Response.Write("Originator Bilginiz Hatalı!"); break;
                    case "06": Response.Write("Yapılan İşlem İçin Yetkiniz Yok!"); break;
                    case "10": Response.Write("Geçersiz IP Adresi!"); break;
                    case "14": Response.Write("Mesaj Metni Girilmemiş!"); break;
                    case "15": Response.Write("GSM Numarası Girilmemiş!"); break;
                    case "20": Response.Write("Rapor Hazır Değil!"); break;
                    case "27": Response.Write("Aylık Atım Limitiniz Yetersiz!"); break;
                }
            }

        }
        private string setMessageText(string text)
        {

            text = text.Replace("İ", "I");
            text = text.Replace("Ş", "S");
            text = text.Replace("Ğ", "G");
            text = text.Replace("Ö", "O");
            text = text.Replace("Ç", "C");
            text = text.Replace("Ü", "U");
            text = text.Replace("ı", "i");
            text = text.Replace("ş", "s");
            text = text.Replace("ç", "c");
            text = text.Replace("ğ", "g");
            text = text.Replace("ü", "u");
            text = text.Replace("ö", "o");
            return text;
        }
    }
}
Örnek HTML Formu:

<form id="form1" runat="server">
<table>
<tr><td>Kullanızı Adı :</td>
<td><asp:TextBox runat="server" ID="kullaniciadi"></asp:TextBox></td></tr>
<tr><td>Şifre :</td>
<td><asp:TextBox runat="server" TextMode="Password" ID="sifre"></asp:TextBox>
</td>
</tr>
<tr><td>Gönderilecek GSM No :</td>
<td><asp:TextBox runat="server" ID="too"></asp:TextBox>
Birden fazla numaraya gönderim için, aralarına virgül ekleyin! 
<!-- Örnek:05xxxxxxxx,05xxxxxxx,05xxxxxxx--></td></tr>
<tr><td>Origin :</td>
<td><asp:TextBox runat="server" ID="origin"></asp:TextBox></td>
</tr>
<tr><td>Mesajınız</td><td>
<asp:TextBox runat="server" ID="text" TextMode="MultiLine"></asp:TextBox>
</td></tr>
<tr><td></td><td>
<asp:Button runat="server" ID="button1" Text="Gönder" OnClick="button1_click" />
</td></tr></table>
</form>


Örnek VB.Net Kodu

Public Class WebForm1
    Inherits System.Web.UI.Page

    Protected Sub Page_Load()(ByVal sender As Object, 
    ByVal e As System.EventArgs) Handles Me.Load

    End Sub

    Protected Sub button1_click
    (sender As Object, e As EventArgs) Handles button1.Click

        Dim kullanici = "", ksifre = "", gsm = "", origins = "", mesaj = ""
        kullanici = kullaniciadi.Text
        ksifre = sifre.Text
        gsm = too.Text
        origins = origin.Text
        mesaj = setMessageText(text.Text)


Dim webr As Net.HttpWebRequest =
Net.WebRequest.Create("http://web.ayyildiz.net/services/SendSmsGet.aspx?user=
" + kullanici + "&password=" + ksifre + "&to=" + gsm +
"&text=" + mesaj + "&origin=" + origins + "&tip=&type=")

Dim sr As New System.IO.StreamReader(webr.GetResponse().GetResponseStream())
Dim ss As String = sr.ReadToEnd
sr.Close()

    End Sub

    Private Function setMessageText(ByVal text As String) As String
        text = text.Replace("İ", "I")
        text = text.Replace("Ş", "S")
        text = text.Replace("Ğ", "G")
        text = text.Replace("Ö", "O")
        text = text.Replace("Ç", "C")
        text = text.Replace("Ü", "U")
        text = text.Replace("ı", "i")
        text = text.Replace("ş", "s")
        text = text.Replace("ç", "c")
        text = text.Replace("ğ", "g")
        text = text.Replace("ü", "u")
        text = text.Replace("ö", "o")
        Return text
    End Function

End Class

Güncelleniyor...
Örnek Kod:

&html>
<head>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
</head>
<body>

<form action="getsms.php" method="post">
<table>
<tr><td>Kullanızı Adı :</td><td><input type="text" id="kullaniciadi"></td></tr>
<tr><td>Şifre :</td><td><input type="password" id="sifre"></td></tr>
<tr><td>Gönderilecek GSM No :</td>
<td><input type="text" id="to">
Birden fazla numaraya gönderim için, aralarına virgül ekleyin!
<!-- 
Örnek:
05xxxxxxxx,05xxxxxxx,05xxxxxxx
-->
</td></tr>
<tr><td>Origin :</td><td><input type="text" id="origin"></td></tr>
<tr><td>Mesajınız</td><td>
<textarea id="text" cols="5" rows="10"></textarea>
</td></tr>
<tr><td></td><td><input type="button" id="sendBtn" value="SMS Gönder"></td></tr>
</form>


Örnek Javascript Kodu:
 
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>            
<script> 
             $(document).ready(function(){
             $('#sendBtn').click(function(){
             
    var dt= new FormData();
    dt.append('user',$('#kullaniciadi').val());  
    dt.append('password',$('#sifre').val());  
    dt.append('to',$('#to').val());  
    dt.append('origin',$('#origin').val());  
    dt.append('text',$('#text').val());    
      dt.append('tip',''); 
      dt.append('type','');   
     SendSMS(dt);
        });
        });
        function SendSMS(jsonData){
        var options = {};
        options.url = 'http://web.ayyildiz.net/services/SendSmsGet.aspx';
        options.type = "GET";
        options.data = jsonData;
        options.cache = false;
        options.asyn = true;
        options.contentType = false;
        options.processData = false;
        options.dataType = "application/json; charset=utf-8";
        options.error = function (err) {
  		alert(err);
        }
        $.ajax(options);
              }
              </script>

</body>
</html>

SOAP SMS API

AYYILDIZ Web Servisi, XML teknolojisi ve HTTP protokolü kullanarak gerçekleşen, fiziksel üç katmanlı mimariye sahip Ayyıldız Servisine istemci ucundan gelen taleplerin belirli standartlara uygun olarak gönderilmesini sağlamak amacı ile geliştirilmiştir.

Yazılım geliştiriciler, aşağıdaki adresten web servis bağlantısına erişebilirler.

URL http://sms.ayyildiz.net/BulkWebService.asmx

Unutmayın: Ayyıldız Web Servisi, Toplu SMS gönderimleri için tasarlanmış bir çözümdür. Yollanacak mesajlar mümkün olduğunca tek bir seferde Web Servisine iletilmelidir.

Not: SOAP SMS API ile 160 karakter üstü Concat SMS gönderimleri yapabilirsiniz!


Sistem Gereksinimleri

AYYILDIZ XML API çözümünü kullanabilmeniz için gereken minimum sistem gereksinimleri aşağıda belirtilmiştir.

  • Windows Serisi, UNIX, Linux ya da MacOS İşletim Sistemi
  • Internet Explorer 6,7,8,9,10,11,12 ve Edge SP1,SP2, Firefox, Chrome, Opera, Safari (Windows Platformu için)

Kullanıcı Bilgilerinin Kontrolü

Bu Yöntemde amaç , tek bir mesaj metninin farklı numaralara yollanabilmesidir. Bu yöntemde kullanılacak olan XML Formatı örnek xml bölümünde gösterilmektedir. Xml Paketi içerisinde aşağıda örneği verilen respose bilgileri kullanılmıştır. Sadece version bilgisi xml paketinin, hangi programdan ve hangi versiondan geldiği bilgilerinin arşivlerde tutulması amacıyla alınacaktır.

ParametreAçıklama
UsernameBayiniz tarafındam sağlanacak kullanıcı adı
PasswordKullanıcı Şifreniz
CompanyCodeBayiniz Tarafından verilen kod
MesgBody160 karakter olacak şekilde oluşturulan mesaj metni
Developer---
Type
  • 160 Karakter Sms için type: 1 kullanılır.
  • 612 Karakter Sms için type: 5 kullanılır.
  • 155 Karakter (Türkçe) Sms için type: 12 kullanılır.
  • 745 Karakter (Türkçe) Sms için type:12 kullanılır.
VersionYazılım firması tarafından en çok 15 karakter verilebilen özel kod.
OriginatorGönderici başlığı en az 3 en fazla 11 karakter kullanılabilir.Türkçe karakter kullanılamaz.
NumbersMesaj gönderilecek numaralar her bir numara ülke kodunu da içeren uluslararası formatta olmalı ve numaralar arasında ayıraç olarak virgule(,) kullanılmalı.Ülke kodunun verilmemesi durumunda (905............ gibi) ülke kodu varsayılan olarak 90 kabul edilecektir.
SDateMesajın gönderilmeye başlanacağı tarihi gösterir.Formatı ddmmyyyyhhmm dir.Bu değer girilmediği durumda an itibariyle gönderim başlayacaktır.
EDateMesajın gönderilme işleminin sonlandırılacağı zamandır.Bu tarihten sonar mesaj gönderme durdurulacak ve beklemeye alınan mesajlar zaman aşımı(timeout) olacaktır.

Kullanıcı bilgilerinin kontrolünde olması gereken XML ifadesi aşağıdaki gibidir:

POST http://sms.ayyildiz.net/BulkWebService.asmx?op=SendMany
<?xml version="1.0" encoding="UTF-8"?>
<MainmsgBody>
           <Username>test</Username>
           <PassWord> pass</PassWord>
           <CompanyCode >Bayi Kodu</CompanyCode>
           <Type>1</Type>
           <Developer></Developer>
           <Originator><![CDATA[TEST]]></Originator >
           <Version>xVer.4.0</Version>
           <Mesgbody><![test mesajıdır]]></Mesgbody>
           <Numbers>905............, 905............</Numbers>
           <SDate></SDate>
           <EDate></EDate>
</MainmsgBody>

İşleminin başarılı olması durumunda sizlere “ID:123456” gibi bir sonuç dönecektir.

Kullanılacak Karakterler

Gönderim sırasında;

Türkçe karakterler (ç,ş,ü,ö,ğ,Ç,Ü,Ş,Ğ,Ö,İ) . ~, ^^, &, <, >, €, £, ã, Ã, ‰, €, ©, ®, ∞, ° simgeleri, LineFeed, Enter, Tab komutları kesinlikle kullanılmamalıdır. Mesaj metni içerisinde sadece ( ), [ ], { }, =, *, ?, \, /, %, +, #, !, ", :, ;, _, | simgeleri kullanılabilir.

“&”,”<”,”>” Karakterlerinin Kullanımı

Karakter XML Formatı
&
&amp;
<
&lt;
>
&gt;
Replace Yönetimi
public string xmlreplace(string inString)
    {
        inString = inString.Replace("&", "&amp;");
        inString = inString.Replace("<", "&lt;");
        inString = inString.Replace(">", "&gt;");
        inString = inString.Replace("’", "&apos;");
        inString = inString.Replace("“", "&quot;");
        inString = inString.Replace("“", "&#8364;");
        inString = inString.Replace('"'.ToString(), "&quot;");
        return inString;
    }

GSM Numarası Formatı

GSM numaraları 05xxxxxxx, 5xxxxxxx, 905xxxxxxx şeklinde ve Numbers parametre düğümü içerisinde yazılmalıdır. GSM numaraları uygun olmayan formatta yazılırsa 04 Hata Kodu alınır. Boş ise, Hata Kodu 15, GSM numarası formatının hatalı veya girilmemiş olduğu anlamına gelir. Bu durumda GSM Numarası Formatına İlişkin Uyarılar başlığı altındaki bilgileri kontrol etmelisiniz.

Kullanım Örnekleri:
<Numbers>905xxxxxxx</Numbers>
<Numbers>5xxxxxxx</Numbers>
<Numbers>05xxxxxxx</Numbers>
<Numbers>905xxxxxxx, 905xxxxxxx</Numbers>

Not: +905xxxxxxx, 5xx 5xx xx xx, +05xxxxxxxx. şeklinde ve -, ( ), [ ], { } vb. karakterlerle gönderim yapılamaz!

Standart Dil Çevrime

Mesaj metni oluşumunda ASCII (Bilgi Değişimi İçin Amerikan Standart Kodlama Sistemi) karakterleri dışında karakter kullanımı varsa Dil Çevirici kullanılması gerekmektedir.

Not : Türkçe Sms Gönderimlerinde dikkat edilmesi gereken nokta encoding alanı UTF-8 şeklinde olmalıdır.

public static string MsgConvert
          (string message){
          message = message.Replace("Ü", "U");
          message = message.Replace("ü", "u");
          message = message.Replace("Ğ", "G");
          message = message.Replace("ğ", "g");
          message = message.Replace("İ", "I");
          message = message.Replace("ı", "i");
          message = message.Replace("Ş", "S");
          message = message.Replace("ş", "s");
          message = message.Replace("Ç", "C");
          message = message.Replace("ç", "c");
          message = message.Replace("Ö", "O");
          message = message.Replace("ö", "o");
          message = message.Replace("é", "e");
          message = message.Replace("`", "'");
          message = message.Replace("^", "'");
          message = message.Replace("…", ".");
          message = message.Replace("ˆ", "'");
          message = message.Replace("'", "'");
          message = message.Replace("'", "'");
          message = message.Replace("'", "'");
          message = message.Replace("\r", "");
          message = message.Replace("\n", "");
          message = message.Replace("\r\n", "");
          message = message.Replace("?", "##S##");
          message = System.Text.Encoding.ASCII.GetString(System.Text.Encoding.ASCII.GetBytes(message));
          message = message.Replace("?", "");
          message = message.Replace("##S##", "?");
          message = message.Replace("&", "&");
          message = message.Replace("<", "<");
          message = message.Replace(">", ">");
          return message;
          }
          
          string msg= MsgConvert(Request.Form["data"]);          
          <Mesgbody>"+msg+"</Mesgbody>
          

Originator Bilgisi ve Kullanımı

Her bir paketin detay raporunu almak için aşağıda verilen adrese Post Edilmesi gerekmektedir.

Gönderen Bilgisi (Alfanumerik/Originator), mesaj gönderimlerinde gönderici kısmında yer alan; firmaya özel tanımlanmış 11 karakterden oluşan gönderici adıdır.

Gönderim sırasında hesap aktivasyonunda aktivasyon biriminin tanımladığı Gönderen Bilgisi'nin aynısı Originator Parametre düğümü içerisinde yazılmalıdır. Gönderen Bilgisi tanımlı bilgiyle eşleşmezse 05 Hata Kodu alınır. Hata Kodu 05, Tanımsız Originator bilgisi anlamına gelir.

Parametreler

ParametreAçıklama
UsernameBayiniz tarafındam sağlanacak kullanıcı adı
PasswordKullanıcı Şifreniz
CompanyCodeBayiniz Tarafından verilen kod
MsgIDRaporu alınacak Mesajın id si

Büyük ve Küçük Harfli Örnek Kullanım:

        
          <Originator>AYYILDIZ</Originator>
           <Originator>ayyildiz</Originator>
          

Not: Originator ifadesinde Türkçe karakterler ve &, <, >, -, ( ), [ ], / gibi simgeler kesinlikle kullanılmamalıdır!

ORIGINATOR SORGULAMA

Kullanıcı kullanabileceği Originator’ları sorgulamak istediği durumlarda kullanılır.Bunun için aşağıda verilen Xml ’un aşağıdaki adrese Post Edilmesi gerekmektedir.

POST http://sms.ayyildiz.net/BulkWebService.asmx?op=QueryOrigin
<?xml version='1.0' encoding='UTF-8'?>
<OriginMain>
     <UserName>Company Username</UserName>
     <PassWord>Company Password</PassWord>
     <CompanyCode>Bayi Kodu</CompanyCode>
     <Originator>AYYILDIZ</Originator>
</OriginMain>

Örnek Dönüş

OK(İlk satırda Başarılı Durum Kontrolü)
ORIGINATOR 1
ORIGINATOR 2

Originator Sorgulamada Alınabilecek Hata Kodları
Bu servisin kullanimi sonucu donecek olan cevaplar asagidaki gibidir.
KodAçıklama
01Hatalı Kullanıcı Adı ya da şifresi
100 XML Hatası

Mesaj Karakter Sayısı

SMS paketi 160 karakter altı ve 160 karakter üstü mesaj metinlerinden oluşuyorsa gönderim öncesi karakter kontrolü yapılarak TYPE parametresi ayarlanmalıdır. 160 karakter altı mesajlar ayrı, 160 karakter üstü mesajlar ayrı paketler halinde gönderilmelidir.

160 Karakter Altı Mesaj Metinleri İçin TYPE Kullanımı:
160 karakter altındaki mesajlar için aynı mesaj mesaj birden fazla GSM numarasına gönderilecekse: type:1

612 karakter mesajlar için farklı mesajlar farklı GSM numaralarına gönderilecekse: type:5

155 Türkçe Karakter Mesaj Metinleri İçin Type Kullanımı:
155 Türkçe karakter olarak birden fazla GSM numarasına mesaj gönderilecekse: type:12

745 Türkçe karakter üzerindeki mesajlar için farklı mesajlar farklı GSM numaralarına gönderilecekse: type:12

SMS Type: Sms gönderim sırasında mesajın hangi tip ve kaç karakter gönderileceğini bildirir.

Sms gönderim sırasında mesajın hangi tip olarak gönderileceğini bildirir.

KarakterType
160 Karakter Sms1
918 Karakter Sms5
155 Karakter Sms ve Tüm Diller12
894 Karakter Sms ve Tüm Diller12
70 Karakter Türkçe Gönderim6
402 Karakter Türkçe Gönderim7
402 Karakter Uluslararası Gönderim13

Not: Türkçe Sms Gönderimlerinde dikkat edilmesi gereken nokta encoding alanı UTF-8 şeklinde olmalıdır.

  • Başlıklı SMS (Standart): 1 boy SMS 155, 2 boy SMS 301, 3 boy SMS 454, 4 boy SMS 607, 5 boy SMS 760, 6 boy SMS 913 karakterdir.
  • Başlıklı SMS (Türkçe Karakterli): 1 boy SMS 150, 2 boy SMS 296, 3 boy SMS 449, 4 boy SMS 602, 5 boy SMS 755, 6 boy SMS 908 karakterdir.
  • Abone Numaralı SMS (Standart): 1 boy SMS 160, 2 boy SMS 306, 3 boy SMS 459, 4 boy SMS 612, 5 boy SMS 765, 6 boy SMS 918 karakterdir.
  • Abone Numaralı SMS (Türkçe Karakterli): 1 boy SMS 155, 2 boy SMS 301, 3 boy SMS 454, 4 boy SMS 607, 5 boy SMS 761, 6 boy SMS 913 karakterdir.
  • Gönderici adı en az 3 en fazla 11 karakterden oluşur.

Web Servis İle Toplu SMS Gönderimi

Toplu olarak gönderilecek mesajlar tek tek paketler halinde değil toplu paketler halinde gönderilmelidir. Tek tek gönderilen paketler sistemde yoğunluk oluşturmakta ve bu yoğunluk mesajların gitmesinde gecikmeye neden olmaktadır.

Web Servis SMS API gönderimi için farklı metotlar bulunmaktadır.

  • Aynı mesajı birden fazla GSM numarasına gönderim. (Türkçe veya İngilizce karakterler olarak)
  • Farklı mesajları birden fazla GSM numarasına gönderim (Türkçe veya İngilizce karakterler olarak)

Web Servis SMS API Gönderim Metotlarını İnceleyin.

  1. AYNI MESAJIN ÇOK NUMARAYA GÖNDERİLMESİ

    Bu Yöntemde amaç , tek bir mesaj metninin farklı numaralara yollanabilmesidir. Bu yöntemde kullanılacak olan parametreler aşağıda belirtilmiştir.

    ParametreAçıklama
    UsernameBayiniz tarafından sağlanacak kullanıcı adı
    PasswordKullanıcı Şifreniz
    CompanyCodeBayiniz Tarafından verilen kod
    MessageBody160 karakter olacak şekilde oluşturulan mesaj metni
    VersionYazılım firması tarafından en çok 15 karakter verilebilen özel kod.
    OriginatorGönderici başlığı en az 3 en fazla 11 karakter kullanılabilir.Türkçe karakter kullanılamaz.
    NumbersMesaj gönderilecek numaralar her bir numara ülke kodunu da içeren uluslararası formatta olmalı ve numaralar arasında ayıraç olarak virgule(,) kullanılmalı.Ülke kodunun verilmemesi durumunda (905............ gibi) ülke kodu varsayılan olarak 90 kabul edilecektir.
    SDateMesajın gönderilmeye başlanacağı tarihi gösterir.Formatı ddmmyyyyhhmm dir.Bu değer girilmediği durumda an itibariyle gönderim başlayacaktır.
    EDateMesajın gönderilme işleminin sonlandırılacağı zamandır.Bu tarihten sonar mesaj gönderme durdurulacak ve beklemeye alınan mesajlar zaman aşımı(timeout) olacaktır.
    POST http://sms.ayyildiz.net/BulkWebService.asmx?op=SendSMS
    <?xml version="1.0" encoding="UTF-8"?>
    <MainmsgBody>
        <Username>test</Username>
        <Password> pass</Password>
        <CompanyCode >Bayi Kodu</CompanyCode>
        <Originator><![CDATA[TEST]]></Originator >
        <Version>xVer.2016</Version>
        <MessageBody><![test mesajıdır]]></MessageBody>
        <Numbers>905……, 905……..</Numbers>
        <SDate></SDate>
        <EDate></EDate>
    </MainmsgBody>
                      

    İşleminin başarılı olması durumunda sizlere “ID:1234567” gibi bir sonuç dönecektir. Eğer bu şekilde bir dönüş yapılmazsa hata kodlarına bakmanızı çözüm üretilemezse, yardım formunu kullanarak bizimle görüşmenizi tavsiye ederiz.

  2. AYNI MESAJIN ÇOK NUMARAYA TÜRKÇE OLARAK GÖNDERİLMESİ

    Bu Yöntemde amaç , tek bir mesaj metninin farklı numaralara türkçe olarak yollanabilmesidir. Bu yöntemde kullanılacak olan parametreler aşağıda belirtilmiştir.

    ParametreAçıklama
    UsernameBayiniz tarafından sağlanacak kullanıcı adı
    PasswordKullanıcı Şifreniz
    CompanyCodeBayiniz Tarafından verilen kod
    MessageBodyMax 596 karakterden oluşan mesaj metni
    VersionYazılım firması tarafından en çok 15 karakter verilebilen özel kod.
    OriginatorGönderici başlığı en az 3 en fazla 11 karakter kullanılabilir.Türkçe karakter kullanılamaz.
    NumbersMesaj gönderilecek numaralar her bir numara ülke kodunu da içeren uluslararası formatta olmalı ve numaralar arasında ayıraç olarak virgule(,) kullanılmalı.Ülke kodunun verilmemesi durumunda (905............ gibi) ülke kodu varsayılan olarak 90 kabul edilecektir.
    SDateMesajın gönderilmeye başlanacağı tarihi gösterir.Formatı ddmmyyyyhhmm dir.Bu değer girilmediği durumda an itibariyle gönderim başlayacaktır.
    EDateMesajın gönderilme işleminin sonlandırılacağı zamandır.Bu tarihten sonar mesaj gönderme durdurulacak ve beklemeye alınan mesajlar zaman aşımı(timeout) olacaktır.
    Type12 olarak gönderilmesi gerekmektedir.
    POST http://sms.ayyildiz.net/BulkWebService.asmx?op=SendSMSTR
    <?xml version="1.0" encoding="UTF-8"?>
    <MainmsgBody>
        <Username>test</Username>
        <Password> pass</Password>
        <CompanyCode >Bayi Kodu</CompanyCode>
        <Originator><![CDATA[TEST]]></Originator >
        <Version>xVer.2016</Version>
        <MessageBody><![test mesajıdır]]></MessageBody>
        <Numbers>905……, 905……..</Numbers>
        <SDate></SDate>
        <EDate></EDate>
        <Type>12</Type>
    </MainmsgBody>
                      

    İşleminin başarılı olması durumunda sizlere “ID:1234567” gibi bir sonuç dönecektir. Eğer bu şekilde bir dönüş yapılmazsa hata kodlarına bakmanızı çözüm üretilemezse, yardım formunu kullanarak bizimle görüşmenizi tavsiye ederiz.

    Gönderim Biçimleri

    • “|^€{}[~]\\|Şçş^€Ğ{}İığ[~]¼`” karakterlerden en az 1 adet kullanılması gerekmektedir.
    • Tırnaklar içerisinde belirtilen karakterler 2 karakter sayılmaktadır.
    • Karakter toplamlarında 596 karaktere kadar gönderim yapılmaktadır.
    • 1 sms 155 karakterden oluşmaktadır.
    • 155 karakteri geçmesi durumunda her bir sms 149 karakter e düşürülmektedir.
    • Maksimum 596 karakterlik 4 sms gönderimi yapılabilmektedir.
  3. FARKLI MESAJLARIN, FARKLI NUMARALARA YOLLANMASI

    Bu yöntemde amaç farklı numaralara farklı mesajların aynı anda yollanabilmesidir.Örneğin herbir müşteriye farklı ödeme tutarlarının göndermesi gibi.Bu yöntemde kullanılacak XML ve url adresi aşağıdaki gibidir.

    ParametreAçıklama
    UsernameBayiniz tarafından sağlanacak kullanıcı adı
    PasswordKullanıcı Şifreniz
    CompanyCodeBayiniz Tarafından verilen kod
    MessageBody160 karakter olacak şekilde oluşturulan mesaj metni
    VersionYazılım firması tarafından en çok 15 karakter verilebilen özel kod.
    OriginatorGönderici başlığı en az 3 en fazla 11 karakter kullanılabilir.Türkçe karakter kullanılamaz.
    NumbersMesaj gönderilecek numaralar her bir numara ülke kodunu da içeren uluslararası formatta olmalı ve numaralar arasında ayıraç olarak virgule(,) kullanılmalı.Ülke kodunun verilmemesi durumunda (905............ gibi) ülke kodu varsayılan olarak 90 kabul edilecektir.
    SDateMesajın gönderilmeye başlanacağı tarihi gösterir.Formatı ddmmyyyyhhmm dir.Bu değer girilmediği durumda an itibariyle gönderim başlayacaktır.
    EDateMesajın gönderilme işleminin sonlandırılacağı zamandır.Bu tarihten sonar mesaj gönderme durdurulacak ve beklemeye alınan mesajlar zaman aşımı(timeout) olacaktır.
    POST http://sms.ayyildiz.net/BulkWebService.asmx?op=SendMulti
    <?xml version="1.0" encoding="UTF-8"?>
    <MainmsgBody>
            <UserName>test</UserName>
            <PassWord> pass</PassWord>
            <CompanyCode >Bayi Kodu</CompanyCode>
            <Type>1</Type>
            <Developer>0606</Developer>
            <Version>xVer.2014.0</Version>
            <Originator><![CDATA[TEST]]></Originator>
            <Messages>
                     <Message>
                              <Mesgbody> <![CDATA[ODEME TUTARINIZ 123 TLDIR.]]></Mesgbody>
                              <Number>905............</Number>
                              <SDate></SDate>
                              <EDate></EDate>
                     </Message>
                     <Message>
                              <Msgbody><![CDATA[ ODEME TUTARINIZ 225 TL DIR.]]></Msgbody>
                              <Number>905............</Number>
                              <SDate></SDate>
                              <EDate></EDate>
                     </Message>
            </Messages>
    </MainmsgBody>
                      

    İşleminin başarılı olması durumunda sizlere “ID:1234567” gibi bir sonuç dönecektir. Eğer bu şekilde bir dönüş yapılmazsa hata kodlarına bakmanızı çözüm üretilemezse, yardım formunu kullanarak bizimle görüşmenizi tavsiye ederiz.

  4. UZUN MESAJLARIN (CONCAT) FARLI NUMARALARA YOLLANMASI

    Bu yöntemde amaç farklı numaralara farklı mesajların aynı anda yollanabilmesidir.Örneğin herbir müşteriye farklı ödeme tutarlarının göndermesi gibi.Bu yöntemde kullanılacak XML ve url adresi aşağıdaki gibidir.

    ParametreAçıklama
    UsernameBayiniz tarafından sağlanacak kullanıcı adı
    PasswordKullanıcı Şifreniz
    CompanyCodeBayiniz Tarafından verilen kod
    MessageBody160 karakter olacak şekilde oluşturulan mesaj metni
    VersionYazılım firması tarafından en çok 15 karakter verilebilen özel kod.
    OriginatorGönderici başlığı en az 3 en fazla 11 karakter kullanılabilir.Türkçe karakter kullanılamaz.
    NumbersMesaj gönderilecek numaralar her bir numara ülke kodunu da içeren uluslararası formatta olmalı ve numaralar arasında ayıraç olarak virgule(,) kullanılmalı.Ülke kodunun verilmemesi durumunda (905............ gibi) ülke kodu varsayılan olarak 90 kabul edilecektir.
    SDateMesajın gönderilmeye başlanacağı tarihi gösterir.Formatı ddmmyyyyhhmm dir.Bu değer girilmediği durumda an itibariyle gönderim başlayacaktır.
    EDateMesajın gönderilme işleminin sonlandırılacağı zamandır.Bu tarihten sonar mesaj gönderme durdurulacak ve beklemeye alınan mesajlar zaman aşımı(timeout) olacaktır.
    POST http://sms.ayyildiz.net/BulkWebService.asmx?op=SendMulti
    <?xml version="1.0" encoding="UTF-8"?>
    <MainmsgBody>
            <UserName>test</UserName>
            <PassWord> pass</PassWord>
            <CompanyCode >Bayi Kodu</CompanyCode>
            <Type>5</Type>
            <Developer>0606</Developer>
            <Version>xVer.2014.0</Version>
            <Originator><![CDATA[TEST]]></Originator>
            <Messages>
                     <Message>
                              <Mesgbody><![CDATA[ ODEME TUTARINIZ 123 TLDIR.]]></Mesgbody>
                              <Number>905............</Number>
                              <SDate></SDate>
                              <EDate></EDate>
                     </Message>
                     <Message>
                              <Msgbody><![CDATA[ ODEME TUTARINIZ 225 TL DIR.]]></Msgbody>
                              <Number>905............</Number>
                              <SDate></SDate>
                              <EDate></EDate>
                     </Message>
            </Messages>
    </MainmsgBody>
                      

    İşleminin başarılı olması durumunda sizlere “ID:1234567” gibi bir sonuç dönecektir. Eğer bu şekilde bir dönüş yapılmazsa hata kodlarına bakmanızı çözüm üretilemezse, yardım formunu kullanarak bizimle görüşmenizi tavsiye ederiz.

  5. UZUN MESAJLARIN (CONCAT) TOPLU GONDERIMI

    Bu yöntemde amaç aynı mesajın birden çok numaraya aynı anda gönderilmesidir.Bu yöntemde kullanılacak XML ve url adresi aşağıdaki gibidir.

    ParametreAçıklama
    UsernameBayiniz tarafından sağlanacak kullanıcı adı
    PasswordKullanıcı Şifreniz
    CompanyCodeBayiniz Tarafından verilen kod
    MessageBody160 karakter olacak şekilde oluşturulan mesaj metni
    VersionYazılım firması tarafından en çok 15 karakter verilebilen özel kod.
    OriginatorGönderici başlığı en az 3 en fazla 11 karakter kullanılabilir.Türkçe karakter kullanılamaz.
    NumbersMesaj gönderilecek numaralar her bir numara ülke kodunu da içeren uluslararası formatta olmalı ve numaralar arasında ayıraç olarak virgule(,) kullanılmalı.Ülke kodunun verilmemesi durumunda (905............ gibi) ülke kodu varsayılan olarak 90 kabul edilecektir.
    SDateMesajın gönderilmeye başlanacağı tarihi gösterir.Formatı ddmmyyyyhhmm dir.Bu değer girilmediği durumda an itibariyle gönderim başlayacaktır.
    EDateMesajın gönderilme işleminin sonlandırılacağı zamandır.Bu tarihten sonar mesaj gönderme durdurulacak ve beklemeye alınan mesajlar zaman aşımı(timeout) olacaktır.
    POST http://sms.ayyildiz.net/BulkWebService.asmx?op=SendMany
    <?xml version="1.0" encoding="UTF-8"?>
    <MainmsgBody>
            <UserName>test</UserName>
            <PassWord> pass</PassWord>
            <CompanyCode >Bayi Kodu</CompanyCode>
            <Type>5</Type>
            <Developer>0606</Developer>
            <Version>xVer.2014.0</Version>
            <Originator><![CDATA[TEST]]></Originator>
            <Mesgbody> <![CDATA[ODEME TUTARINIZ 123 TLDIR.]]></Mesgbody>
            <Number>905............, 905............</Number>
            <SDate></SDate>
            <EDate></EDate>
    </MainmsgBody>
                      

    İşleminin başarılı olması durumunda sizlere “ID:1234567” gibi bir sonuç dönecektir. Eğer bu şekilde bir dönüş yapılmazsa hata kodlarına bakmanızı çözüm üretilemezse, yardım formunu kullanarak bizimle görüşmenizi tavsiye ederiz.

Web Servis Raporlama

Ayyıldız Web Servislerine gönderilen SMS mesajlarının raporlanması için, birden fazla raporlama seçeneği sunmaktadır.

Tarih bazında rapor almak için aşağıdaki metot kullanılmalıdır:

POST http://sms.ayyildiz.net/BulkWebService.asmx?op=BulkReport
<?xml version='1.0' encoding='ISO-8859-9'?>
<ReportList>
                <UserName>xx</UserName>
                <PassWord>xx</PassWord>
                <CompanyCode>xx</CompanyCode>
                <SDate>20171208</SDate>
                <EDate>20171209</EDate>
</ReportList>

Parametre Açıklamaları:

ÖzellikAçıklama
UsernameString , Kullanıcı Adı
PasswordString, Şifre
CompanyCodeString, Bayi Kodu
SDateSorgulanacak Olan Mesajların Başlangıç Tarihi Formatı (yyyymmdd)
EDateSorgulanacak Olan Mesajların Bitiş Tarihi Formatı (yyyymmdd)

Örnek Cevap:

"MSG_ID";"MESTIME";"VERSION";"MESSAGE";"TOTAL";"SENT";"PENDING";"SYSTEMOUT";"TIMEOUT" "3984581";"mesaj gönderim id si";"Developer";"Mesaj Metni";"Toplam";"İletilen";"Bekleyen";"Sistem Hatası";"Zaman Aşımı"

Diğer Dönüş Cevapları:

NoAçıklama
01Kullanıcı Adı yada şifre boş.
10Hatalı İp Adresi
06Bu İşlem İçin Yetkiniz Yok
02Hesap Kapalı
20Rapor Bulunamadı
60Genel Hata
  1. DETAYLI RAPOR ALIMI

    Her bir paketin detay raporunu almak için aşağıda verilen XML un Aşağıdaki adrese Post Edilmesi gerekmektedir.

    POST http://sms.ayyildiz.net/BulkWebService.asmx?op=DetailReport
    <?xml version='1.0' encoding='UTF-8' ?>
    <ReportMain>
            <UserName> UserName </UserName>
            <PassWord> PassWord </PassWord>
            <CompanyCode >Bayi Kodu</CompanyCode>
            <strGuid> Msgid </ strGuid >
            <Delm>|</Delm>
    </ReportMain>
                      

    XML Açıklamaları

    ÖzellikAçıklama
    UsernameKullanıcı Adı
    PassWordKullanıcı Şifresi
    CompanyCodeBayiniz Tarafından Verilen Kullanıcı Kodu
    strGuidMesajın Gönderildiği tarih saat bilgisi.
    Delm Type alanı boş girildiği durumlarda dikkate alınır.Default değeridir.

    Durum Kodları

    Durum KoduAçıklama
    1Bekleyen Numaralar(Kullanımda ancak kapsama alanı dışında yada telefon kapalı)
    2İletilen Numaralar
    3Sistem Hatası(bu numara kullanımda değil yada servis dışı)
    4İletilememesinden dolayı zaman aşımı (Xml içinde SDATE ve EDATE değerleri verilmediği takdirde default 24 saattir.)
  2. DETAY RAPOR ALIMI (v2)

    Her bir paketin detay raporunu almak için aşağıda verilen adrese Post Edilmesi gerekmektedir.

    POST http://sms.ayyildiz.net/BulkWebService.asmx?op=Reportnew
    <ReportnewResult>
               <RESPONSECODE>OK</RESPONSECODE>
               <ReportResults>
                  <ReportResultLine>
                     <Msgid>12077071</Msgid>
                     <GSMNO>90xxxxxxxxx</GSMNO>
                     <STATUS>3</STATUS>
                     <TARIH/>
                  </ReportResultLine>
    </ReportnewResult>
                      

    XML Açıklamaları

    ÖzellikAçıklama
    UsernameKullanıcı Adı
    PasswordKullanıcı Şifresi
    CompanyCodeBayiniz Tarafından Verilen Kullanıcı Kodu
    MsgIDRaporu alınacak Mesajın id si

    Durum Kodları

    Durum KoduAçıklama
    1Bekleyen Numaralar(Kullanımda ancak kapsama alanı dışında yada telefon kapalı)
    2İletilen Numaralar
    3Sistem Hatası(bu numara kullanımda değil yada servis dışı)
    4İletilememesinden dolayı zaman aşımı (Xml içinde SDATE ve EDATE değerleri verilmediği takdirde default 24 saattir.)

    RESPONSE CODE Açıklamaları

    Durum KoduAçıklama
    OKRapor Başarılı
    00Hatalı Kullanıcı Adı yada şifresi
    01Hatalı Kullanıcı Adı yada şifresi
    20Özet Raporda;verilen dönem için atış bulunamadı.
    21Detay Raporda;verilen parametreler için rapor bulunamadı yada rapor henüz hazır değil.
  3. DETAY RAPOR ALIMI (v3)

    Her bir paketin detay raporunu almak için aşağıda verilen XML un Aşağıdaki adrese Post Edilmesi gerekmektedir.

    POST http://sms.ayyildiz.net/BulkWebService.asmx?op=Report

    Parametreler

    ÖzellikAçıklama
    UsernameKullanıcı Adı
    PasswordKullanıcı Şifresi
    CompanyCodeBayiniz Tarafından Verilen Kullanıcı Kodu
    MsgIDRaporu alınacak Mesajın id si

    Durum Kodları

    Durum KoduAçıklama
    1Bekleyen Numaralar(Kullanımda ancak kapsama alanı dışında yada telefon kapalı)
    2İletilen Numaralar
    3Sistem Hatası(bu numara kullanımda değil yada servis dışı)
    4İletilememesinden dolayı zaman aşımı (Xml içinde SDATE ve EDATE değerleri verilmediği takdirde default 24 saattir.)

    RESPONSE CODE Açıklamaları

    Durum KoduAçıklama
    OKRapor Başarılı
    00Hatalı Kullanıcı Adı yada şifresi
    01Hatalı Kullanıcı Adı yada şifresi
    20Özet Raporda;verilen dönem için atış bulunamadı.
    21Detay Raporda;verilen parametreler için rapor bulunamadı yada rapor henüz hazır değil.

    2141 905............ 2 021107141318
    2141 905............ 3
    2141 905............ 4
    2141 905............ 1

SMS Kredi Sorgulama

Kullanıcı mevcut kredisini sorgulamak istediği durumlarda kullanılır.Bunun için aşağıda verilen Xml ’un aşağıdaki adrese Post Edilmesi gerekmektedir.

POST http://sms.ayyildiz.net/BulkWebService.asmx?op=GetCredit
ParametreAçıklama
UsernameKullanıcı Adı
PasswordKullanıcı Şifresi
CompanyCodeBayiniz Tarafından Verilen Kod

Örnek Dönüş
Cevap olarak string değerde Kontor Miktarınız Dönüş Yapılır.

KodAçıklama
00Kullanıcı Bilgileri Boş
01Hatalı Kullanıcı Adı yada şifresi
02Hesap Kapalı
06Bu işlem için Yetkiniz Yok
10Geçersiz IP Adresi
100XML Hatası

Hata Kodları

SMS Gönderim sırasında oluşabilecek durumlara ilişkin hata kodları aşağıda ki tabloda listelenmiştir.

Hata KoduYanıt
00Kullanıcı Bilgileri Boş
01Kullanıcı Bilgileri Hatalı
02Hesap Kapalı
03Kontör Hatası
04Bayi Kodunuz Hatalı
05Originator Bilginiz Hatalı
06Yapılan İşlem İçin Yetkiniz Yok
10Geçersiz IP Adresi
14Mesaj Metni Girilmemiş
15GSM Numarası Girilmemiş
20Rapor Hazır Değil
27Aylık Atım Limitiniz Yetersiz
100XML Hatası

POST http://sms.ayyildiz.net/BulkWebService.asmx
Kopyala
<?php
class sendSMS {
	private $username = "";
	private $password = "";
	private $BayiKodu = "";
	private $requestedpass;
	private $originator = "";
	private $gsmno;
	private $msgtext;
	private $sendMulti = false;
	
function setGsmNo($gsmno) {
if (is_array ( $gsmno )) {
$nos = "";
foreach ( $gsmno as $no ) {
if (preg_match_all ( '/(?:[+]|[0]{1,2}){0,1}(?:[\s]{0,})(
?P<icode>90|9[\s]0){0,1}(?:[\s]{0,})(?P<t1>5[0-9]{2})(?:[\s]{0,})(
?P<t2>[0-9]{3})(?:[\s]{0,})(?P<t3>[0-9]{2})(?:[\s]{0,})(
?P<t4>[0-9]{2})(?:[\s]{0,})/im', $no, $result, PREG_PATTERN_ORDER )) {
$no = $result ['t1'] [0] . $result ['t2'] [0] . $result ['t3'] [0] . $result ['t4'] [0];
$nos .= $no . ",";
}
}
$this->gsmno = substr ( $nos, 0, - 1 );
} else {
if (preg_match_all ( '/(?:[+]|[0]{1,2}){0,1}(?:[\s]{0,})(
?P<icode>90|9[\s]0){0,1}(?:[\s]{0,})(?P<t1>5[0-9]{2})(
?:[\s]{0,})(?P<t2>[0-9]{3})(?:[\s]{0,})(?P<t3>[0-9]{2})(
?:[\s]{0,})(?P<t4>[0-9]{2})(?:[\s]{0,})/im', $gsmno, $result, PREG_PATTERN_ORDER )) {
$this->gsmno = $result ['t1'] [0] . $result ['t2'] [0] . $result ['t3'] [0] . $result ['t4'] [0];
}
}

}
	
	function setMessageText($text) {
		$text = str_replace ( array ("İ", "\u0130", "\xDD", "İ" ), "I", $text );
		$text = str_replace ( array ("ı", "\u0131", "\xFD", "ı" ), "i", $text );
		$text = str_replace ( array ("Ğ", "\u011e", "\xD0", "Ğ" ), "G", $text );
		$text = str_replace ( array ("ğ", "\u011f", "\xF0", "ğ" ), "g", $text );
		$text = str_replace ( array ("Ü", "\u00dc", "\xDC", "U" ), "U", $text );
		$text = str_replace ( array ("ü", "\u00fc", "\xFC", "ü" ), "u", $text );
		$text = str_replace ( array ("Ş", "\u015e", "\xDE", "Ş" ), "S", $text );
		$text = str_replace ( array ("ş", "\u015f", "\xFE", "ş" ), "s", $text );
		$text = str_replace ( array ("Ö", "\u00d6", "\xD6", "Ö" ), "O", $text );
		$text = str_replace ( array ("ö", "\u00f6", "\xF6", "ö" ), "o", $text );
		$text = str_replace ( array ("Ç", "\u00c7", "\xC7", "Ç" ), "C", $text );
		$text = str_replace ( array ("ç", "\u00e7", "\xE7", "ç" ), "c", $text );
		$this->msgtext = $text;
	}
	
	function send() {
		$xml = <<<EOH
<?xml version="1.0" encoding="iso-8859-9"?>
<MainmsgBody xmlns:sql='urn:schemas-microsoft-com:xml-sql' 
xmlns:updg='urn:schemas-microsoft-com:xml-updategram'>
	<Username>{$this->username}</Username>
	<Password>{$this->password}</Password>
	<CompanyCode>{$this->BayiKodu}</CompanyCode>
	<Developer></Developer>
	<Version>xVer.4.0</Version>
	<Originator>{$this->originator}</Originator>
	<Mesgbody>{$this->msgtext}</Mesgbody>
	<Numbers>{$this->gsmno}</Numbers>
	<SDate></SDate>
	<EDate></EDate>
</MainmsgBody>	
EOH;
    $result = $this->postViaCurl ( "http://sms.ayyildiz.net/BulkWebService.asmx?
    op=SendMany", $xml );
    $msg ['00'] = "Kullanıcı Bilgileri Boş";
    $msg ['01'] = "Kullanıcı Bilgileri Hatalı";
    $msg ['02'] = "Hesap Kapalı";
    $msg ['03'] = "Kontör Hatası";
    $msg ['04'] = "Bayi Kodunuz Hatalı";
    $msg ['05'] = "Originator Bilginiz Hatalı";
    $msg ['06'] = "Yapılan İşlem İçin Yetkiniz Yok";
    $msg ['10'] = "Geçersiz IP Adresi";
    $msg ['14'] = "Mesaj Metni Girilmemiş";
    $msg ['15'] = "GSM Numarası Girilmemiş";
    $msg ['20'] = "Rapor Hazır Değil";
    $msg ['27'] = "Aylık Atım Limitiniz Yetersiz";
    $msg ['100'] = "XML Hatası";
    if (is_numeric ( $result ) && isset ( $msg [$result] )) {
        $result = array ("basari" => false, "mesaj" => $msg [$result] );
    } else {
        $result = array ("basari" => true, "mesaj" => $result );
    }
    return $result;
}
	
private function postViaCurl($url, $data) {
$user_agent = 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9) 
Gecko/2008061015 Firefox/3.0';
$httpheader = array ("Accept: text/html,application/xhtml+xml,application/xml;
q=0.9,*/*;q=0.8", 
"Accept-Language: tr,en-us;q=0.7,en;q=0.3", 
"Accept-Encoding: gzip,deflate", 
"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7", 
"Keep-Alive: 300" );
$curl = curl_init ();
curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt ( $curl, CURLOPT_VERBOSE, true );
curl_setopt ( $curl, CURLOPT_FOLLOWLOCATION, true );
curl_setopt ( $curl, CURLOPT_HTTPHEADER, $httpheader );
curl_setopt ( $curl, CURLOPT_USERAGENT, $user_agent );
curl_setopt ( $curl, CURLOPT_TIMEOUT, 300 );
curl_setopt ( $curl, CURLE_OPERATION_TIMEOUTED, 300 );
curl_setopt ( $curl, CURLOPT_HEADER, false );
curl_setopt ( $curl, CURLOPT_POST, true );
curl_setopt ( $curl, CURLOPT_POSTFIELDS, $data );
curl_setopt ( $curl, CURLOPT_URL, $url );
$result = curl_exec ( $curl );
curl_close ( $curl );
return $result;
}
}
?>
using System;
namespace ConsoleApp5
{
    class Program
    {
        static void Main(string[] args)
        {
            //XML Post SMS Gönderimi
          
            string xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>";
            xml += "<MainmsgBody>";
            xml += "<Username>KULLANICIADI</Username>";
            xml += "<PassWord>ŞİFRE</PassWord>";
            xml += "<CompanyCode>COMPANYCODE</CompanyCode>";
            xml += "<Originator><![CDATA[originator]]></Originator>";
            xml += "<Type>1</Type>";
            xml += "<Version>xVer.4.0</Version>";
            xml += "<Mesgbody><![test mesajıdır]]></Mesgbody>";
            xml += "<Developer></Developer>";
            xml += "<Numbers>5xxxxxxxxx</Numbers>";
            xml += "<SDate></SDate>";
            xml += "<EDate></EDate>";
            xml += "</MainmsgBody>";
            new ServiceReference1.BulkWebServiceSoapClient().SendMany(xml);

            //Kredi Sorgulama
            string islem = new ServiceReference1.BulkWebServiceSoapClient().GetCredit("KULLANICIADI", "ŞİFRE", "COMPANYCODE");
            Console.WriteLine("Kalan Kredi: {0}",islem.ToString());

            //SMS Gönderme
            string islem1 = new ServiceReference1.BulkWebServiceSoapClient().SendSMS("KULLANICIADI", "ŞİFRE", "COMPANYCODE", "xVer.4.0","ORIGINATOR","GÖNDERİLECEK NUMARA","MESAJ","","");
            Console.WriteLine("Mesaj ID: {0}", islem1);

            //Türkçe karakterli SMS Gönderimi
            string islem2 = new ServiceReference1.BulkWebServiceSoapClient().SendSMSTR("KULLANICIADI", "ŞİFRE", "COMPANYCODE", "xVer.4.0", "ORIGINATOR", "GÖNDERİLECEK NUMARA", "MESAJ", "", "", "12");
            Console.WriteLine("Mesaj ID: {0}", islem2);


            //FARKLI MESAJLARIN, FARKLI NUMARALARA YOLLANMASI
            string xml1 = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><MainmsgBody>";
            xml1 += "<UserName>test</UserName>";
            xml1 += "<PassWord>pass</PassWord>";
            xml1 += "<CompanyCode >Bayi Kodu</CompanyCode>";
            xml1 += "<Type>1</Type>";
            xml1 += "<Developer>0606</Developer>";
            xml1 += "<Version>xVer.2014.0</Version>";
            xml1 += "<Originator><![CDATA[TEST]]></Originator>";
            xml1 += "<Messages>";

            //1. mesaj
            xml1 += "<Message>";
            xml1 += "<Mesgbody><![CDATA[ODEME TUTARINIZ 123 TLDIR.]]></Mesgbody>";
            xml1 += "<Number>905............</Number>";
            xml1 += "<SDate></SDate>";
            xml1 += "<EDate></EDate>";
            xml1 += "</Message>";

            //2. mesaj
            xml1 += "<Message>";
            xml1 += "<Msgbody><![CDATA[ ODEME TUTARINIZ 225 TL DIR.]]></Msgbody>";
            xml1 += "<Number>905............</Number>";
            xml1 += "<SDate></SDate>";
            xml1 += "<EDate></EDate>";
            xml1 += "</Message>";

            xml1 += "</Messages>";
            xml1 += "</MainmsgBody>";

            string islem3 = new ServiceReference1.BulkWebServiceSoapClient().SendMulti(xml1);
            Console.WriteLine("Mesaj ID: {0}", islem3);
            Console.ReadLine();
        }
    }
}

Module Module1

    Sub Main()

       'XML Post SMS Gönderimi
        Dim xml = "<?xml version='1.0' encoding='UTF-8' ?>"
        xml += "<MainmsgBody>"
        xml += "<Username>KULLANICIADI</Username>"
        xml += "<PassWord>ŞİFRE</PassWord>"
        xml += "<CompanyCode>COMPANYCODE</CompanyCode>"
        xml += "<Originator><![CDATA[originator]]></Originator>"
        xml += "<Type>1</Type>"
        xml += "<Version>xVer.4.0</Version>"
        xml += "<Mesgbody><![test mesajıdır]]></Mesgbody>"
        xml += "<Developer></Developer>"
        xml += "<Numbers>5xxxxxxxxx</Numbers>"
        xml += "<SDate></SDate>"
        xml += "<EDate></EDate>"
        xml += "</MainmsgBody>"

        Dim islem As String
        islem = New ServiceReference1.BulkWebServiceSoapClient().SendMany(xml)
        Console.WriteLine("Mesaj ID: {0}", islem)

         'Kredi Sorgulama
        Dim islem1 As String
        islem1 = New ServiceReference1.BulkWebServiceSoapClient().GetCredit("KULLANICIADI", "ŞİFRE", "COMPANYCODE")
        Console.WriteLine("Kredi bilgisi: {0}", islem1)

         'SMS Gönderme
        Dim islem2 As String
        islem2 = New ServiceReference1.BulkWebServiceSoapClient().SendSMS("KULLANICIADI", "ŞİFRE", "COMPANYCODE", "xVer.4.0", "ORIGINATOR", "GÖNDERİLECEK NUMARA", "MESAJ", "", "")
        Console.WriteLine("Mesaj ID: {0}", islem2)

         'Türkçe karakterli SMS Gönderimi
        Dim islem3 As String
        islem3 = New ServiceReference1.BulkWebServiceSoapClient().SendSMSTR("KULLANICIADI", "ŞİFRE", "COMPANYCODE", "xVer.4.0", "ORIGINATOR", "GÖNDERİLECEK NUMARA", "MESAJ", "", "", "12")
        Console.WriteLine("Mesaj ID: {0}", islem3)

         'FARKLI MESAJLARIN, FARKLI NUMARALARA YOLLANMASI
        Dim xml1 = "<?xml version='1.0' encoding='UTF-8'?><MainmsgBody>"
        xml1 += "<UserName>test</UserName>"
        xml1 += "<PassWord>pass</PassWord>"
        xml1 += "<CompanyCode >Bayi Kodu</CompanyCode>"
        xml1 += "<Type>1</Type>"
        xml1 += "<Developer>0606</Developer>"
        xml1 += "<Version>xVer.2014.0</Version>"
        xml1 += "<Originator><![CDATA[TEST]]></Originator>"
        xml1 += "<Messages>"

         '1. mesaj
        xml1 += "<Message>"
        xml1 += "<Mesgbody><![CDATA[ODEME TUTARINIZ 123 TLDIR.]]></Mesgbody>"
        xml1 += "<Number>905............</Number>"
        xml1 += "<SDate></SDate>"
        xml1 += "<EDate></EDate>"
        xml1 += "</Message>"

         '2. mesaj
        xml1 += "<Message>"
        xml1 += "<Msgbody><![CDATA[ ODEME TUTARINIZ 225 TL DIR.]]></Msgbody>"
        xml1 += "<Number>905............</Number>"
        xml1 += "<SDate></SDate>"
        xml1 += "<EDate></EDate>"
        xml1 += "</Message>"


        xml1 += "</Messages>"
        xml1 += "</MainmsgBody>"

        Dim islem4 = New ServiceReference1.BulkWebServiceSoapClient().SendMulti(xml1)
        Console.WriteLine("Mesaj ID: {0}", islem4)
        Console.ReadLine()

    End Sub

End Module
 
package SMSAPI;
import java.net.*;
import java.text.*;
import java.util.*;
import java.io.*;
import java.net.HttpURLConnection.*;


public class javasms {	  
	   
   public static void main(String[] args) {                
   String res="";
        	
smsgonder sms= new smsgonder();
               
// Mesajın Birden Fazla numaraya toplu gönderimi               
res=sms.Toplugonder("k.adı","sifre","kod","başlık3g","deneme test","90532xxxx,90835xxxx,9058xxxx");

// Kişiye Özel Gönderim               
ArrayList arrgsm =new ArrayList();
ArrayList arrmes =new ArrayList();

arrgsm.add("905326670714");
arrgsm.add("905356670714");
arrgsm.add("905055540714");

arrmes.add("1 mesja metni");
arrmes.add("2 mesja metni");
arrmes.add("3 mesja metni");

res=sms.TopluKisiyeOzel("k.adı","sifre","kod","başlık3g",arrmes,arrgsm);
System.out.println(res);
                                 
        }      	
}


public class smsgonder {
	 
public  String Toplugonder(String UserName,String PassWord,String CompanyCode,String Origin,String Message,String GSM)  {
String strMsgGuid,result="";
String inputString= "<?xml version=\"1.0\" encoding=\"ISO-8859-9\"?>"+
	    						"<MainmsgBody>"+
	    						"<Username>"+UserName+"</Username>"+
	    						"<Password>"+PassWord+"</Password>"+
	    						"<CompanyCode>"+CompanyCode+"</CompanyCode>"+
	    						"<Version>javaSMS v2.0</Version>"+
	    						"<Originator>"+Origin+"</Originator>"+
	    						"<Mesgbody><![CDATA["+Message+"]]></Mesgbody>"+
	    						"<Numbers>"+GSM+"</Numbers>"+
	    						"<SDate></SDate>"+
	    						"<EDate></EDate>"+
	    						"</MainmsgBody>";

	      	try
			{
	        URL url1 = new URL("http://sms.ayyildiz.net/BulkWebService.asmx?op=SendMany");
	        HttpURLConnection conn = (HttpURLConnection)(url1.openConnection());
	        conn.setDoOutput(true);
	        PrintWriter pw = new PrintWriter(conn.getOutputStream());
	       //  pw.println(URLEncoder.encode(inputString));
	       pw.println(inputString);
	       pw.close();

	        BufferedReader in2 = new BufferedReader(new
	    	InputStreamReader(conn.getInputStream()));

	        String inputLine;
	        while((inputLine = in2.readLine()) != null)
	        result=result+inputLine+"\n";
	        in2.close();
		   
		   } catch(Exception ex) {
            System.out.println(ex.getMessage());

    }

	        return result;
	    	}
		   public  String TopluKisiyeOzel(String UserName,String PassWord,String CompanyCode,String Origin,ArrayList Messagearr,ArrayList GSMarr)  {
	    	String  result="";
	    	String inputString1="";
         	 
	    	 for (int i=0; i<GSMarr.size(); i++) {

	    	inputString1=inputString1+
			"<MainmsgBody>"+
			"<MesgBody>"+Messagearr.get(i)+"</MesgBody>"+
			"<Number>"+GSMarr.get(i)+"</Number>"+
			"<SDate></SDate>"+
            "<Originator>"+Origin+"</Originator>"+
			"<EDate></EDate>"+
			"</MainmsgBody>";
		 
			
	    	 }	    	
	    	String inputString= "<?xml version=\"1.0\" encoding=\"ISO-8859-9\"?>"+
	    						"<MainmsgBody>"+
	    						"<Username>"+UserName+"</Username>"+
	    						"<Password>"+PassWord+"</Password>"+
	    						"<CompanyCode>"+CompanyCode+"</CompanyCode>"+
	    						"<Version>javaSMS v2.0</Version>"+
	    						"<Originator>"+Origin+"</Originator>"+
                                "<Numbers>"+gsmno+"</Numbers>"+
                                 "<SDate></SDate>"+
                                  "<EDate></EDate>"+
	    						"<MesgBody>"+
	    						inputString1+
	    						"</MesgBody>"+
	    						"</MainmsgBody>";

	    	
	    	try
			{
	        URL url1 = new URL("url multi adres yazılacak");
	        HttpURLConnection conn = (HttpURLConnection)(url1.openConnection());
	        conn.setDoOutput(true);
	        PrintWriter pw = new PrintWriter(conn.getOutputStream());
	       //  pw.println(URLEncoder.encode(inputString));
	       pw.println(inputString);
	       pw.close();

	        BufferedReader in2 = new BufferedReader(new
	    	InputStreamReader(conn.getInputStream()));

	        String inputLine;
	        while((inputLine = in2.readLine()) != null)
	        result=result+inputLine+"\n";
	        in2.close();
		   
		   } catch(Exception ex) {
            System.out.println(ex.getMessage());

    }

	       // System.out.println(result);
	        return result;
	    	}
		

}

    Güncelleniyor...

İnteraktif SMS API

İnteraktif Sms işlemleri kullanmak isteyen portal sahiplerinin WEB SERVIS kullanarak bunu nasıl yapacağını açıklar.

İnteraktif SMS API Giriş Sayfası:

URL http://get.ayyildiz.net/interaktif.asmx

Otomatik Gelen Mesajların Post Edilmesi (Add AutoTask)

PARAMETRELER
username: (string)
kullanıcı adı: (string)
number: (string) Hangi Numaraya gelen mesajların post edileceğini ifade eder.
url: (string) Number kısmına yazılan numaraya gelen mesajların post edileceği adresi ifade eder.

SONUÇ PARAMETRELERİ:
String.İşlemle ilgili bilgiler Hata Kodları Bölümünden Bakabilirsiniz.


İnteraktif Kullanıcısı Ekleme (Add Inter Active User)

Bu istek Verilen Parametreler Dogrultusunda İnteraktif Sms Alınacağını İfade Eder.

PARAMETRELER
username: kullanıcı adı (string)
password: şifresi (string)
Bayikodu: bayi kodu (string)
Kısa kod: (string) Smslerin geleceği kısa numarayı temsil eder. (Örn. 5306)
Uzun kod: (string) Smslerin geleceği uzun numarayı temsil eder.(Örn. 05320123456)
Anahtar kelime: (string) Sms gönderen kullanıcıların kullanacağı anahtar kelimeleri temsil eder. (Ayıraç Olarak virgül(‘,’) kullanınız.
Type: (string) (Sadece Anahtar Kelime, Kısa ya da Uzun Numara, Hepsi) Gelen Smsleri çekerken sadece kısa numara sadece uzun numara ya da hepsi için işlem yapılacağı bilgisi girilir.

SONUÇ PARAMETRELERİ:
(String) İşlemle ilgili bilgiler Hata Kodları Bölümünden Bakabilirsiniz.

İnteraktif Sms Anahtar Kelime Ekleme (Add Inter Active User Key)

Bu istek Daha önceden eklemiş olduğunuz anahtar kelimelere ilaveten ekleme yapmak için kullanılır.

PARAMETRELER
username: string. kullanıcı adı.
password: string. şifresi.
Bayikodu : string. bayi kodu.
Anahtar kelime: string. Sms gönderen kullanıcıların kullanacağı anahtar kelimeleri temsil eder.(Ayıraç Olarak virgül(‘,’) kullanınız.

SONUÇ PARAMETRELERİ:
String.İşlemle ilgili bilgiler Hata Kodları Bölümünden Bakabilirsiniz.

Otomatik Gelen Mesajların Post İslemi İptali (Delete Auto Task)

PARAMETRELER
username: string. kullanıcı adı.

SONUÇ PARAMETRELERİ: String. İşlemle ilgili bilgiler Hata Kodları Bölümünden Bakabilirsiniz.

Gelen Smsleri Sorgulama (Get All Interactıve)

Bu istek ile gelen smsleri sorgulayabilirsiniz.

PARAMETRELER
guid: string. InteractiveLogin methodundan dönen string değeri belli süre icin kullanarak bu bölümden gelen smsleri sorgulayabilirsiniz.

SONUÇ PARAMETRELERİ:
String.İşlemle ilgili bilgiler Hata Kodları Bölümünden Bakabilirsiniz.

Gelen Smsleri Sorgulama (Get Aut Interactive)

PARAMETRELER
username: string. kullanıcı adı.
password: string. şifresi.

Gelen Smsleri Sorgulama (Get Aut All Interactive)

Bu istek ile gelen smsleri belirli bir id den sonrasını sorgulayabilirsiniz.

PARAMETRELER
username: string. kullanıcı adı.
password: string. şifresi.
maxid: string. Daha önceden işlenmiş olan verilerinizi tekrar işlememek için belirli bir id den sonrasını çekmenize yarar .

Gelen Smslerin Sayısını Sorgulama (Get Count Interactive)

Bu istek ile gelen smsleri sorgulayabilirsiniz.

PARAMETRELER
username: string. kullanıcı adı.
password: string. şifresi.

Gelen Smsleri Sorgulama (Get Interactive Keys)

Bu istek ile gelen smsleri belirli bir id den sonrasını sorgulayabilirsiniz.

PARAMETRELER
guid: string. Interactive Login methodundan dönen string değeri belli süre için kullanarak bu bölümden gelen smsleri sorgulayabilirsiniz.

maxid: string. Daha önceden işlenmiş olan verilerinizi tekrar işlememek için belirli bir id den sonrasını çekmenize yarar

İnteraktif Sistemine Login Olmak (Interactive Login)

Bu istek ile sisteme login olursunuz.

PARAMETRELER

username: string. kullanıcı adı.
password: string. şifresi.

İnteraktif Verilerinin Otomatik Gönderilmesi (Add Autotask)

Bu istek ile sisteme gelen interaktif smsleri otomatik olarak sizin belirtmiş olduğunuz asmx wsdl veya xml işlemi yapabilen bir adrese direkt post edilir.

PARAMETRELER
username: string. kullanıcı adı.
url: string. (asmx,wsdl,aspx gibi karşılama webadresleri)
action: string. (asmx,wsdl,aspx gibi karşılama webadresleri)

Örnek POST XML

<?xml version="1.0" encoding="iso-8859-9"?> 
<ArrayOfDispatchInfos > 
    <DispatchInfos> 
        <USERNAME>user</USERNAME> 
        <PASSWORD>pass</PASSWORD> 
        <ID>155768</ID> 
        <MSG_DATE>110113181506</MSG_DATE> 
        <GONDEREN>0555553…</GONDEREN> 
        <MESAJ>TAKIM TURKIYE </MESAJ> 
        <TARGETGSM>5306</TARGETGSM> 
        <ANAHTARKELIME>TAKIM</ANAHTARKELIME> 
    </DispatchInfos> 
</ArrayOfDispatchInfos>

Gelen Mmsleri Sorgulama (Getmms)

Bu istekte gelen mmslerin belirli bir id veya ilk gelenden son gelene doğru sıralanacak şekilde istekte bulunulur.

PARAMETRELER
username: string. kullanıcı adı.
password: string. şifresi.
maxid: string. Daha önceden işlenmiş olan verilerinizi tekrar işlememek için belirli bir id den sonrasını çekmenize yarar.

SONUÇ PARAMETRELERİ:

  • Sonuç Xml Olarak Dönülecektir.
  • MmsList:Gönderilen her bir mms burada tutulur.
  • GsmNo: Mms gönderen kişinin telefon numarası.
  • SendDate: Mms in gönderildiği tarih.
  • MmsSubject: Mms in konusu.
  • DST_MSISDN: Mms in gönderildiği numara
  • MSGID: Mms id
  • FileInfos: Birden fazla dosya varsa burada tutulur.
  • FileName: Gönderilen dosyanın ismi.
  • FileType: Gönderilen dosyanın tipi.
  • FileBase:Base64 formatında dosya içeriği
<ArrayOfMmsList> 
 <MmsList> 
 <Gsmno></Gsmno> 
 <SendDate>281110163922</SendDate> 
 <MmsSubject>Ankara</MmsSubject> 
<DST_MSISDN></DST_MSISDN> 
 <MSGID>75177</MSGID> 
 <Files> 
 
     <FileInfos> 
         <FileName>TEST.gif</FileName> 
         <FileType>image/gif</FileType> 
         <FileBase></FileBase> 
     </FileInfos> 
     
     <FileInfos> 
         <FileName>deneme.mp3</FileName> 
         <FileType>application/unknown</FileType> 
         <FileBase></FileBase> 
     </FileInfos> 
 
</Files> 
 </MmsList> 
</ArrayOfMmsList> 

Hata Kodları

SMS Gönderim sırasında oluşabilecek durumlara ilişkin hata kodları aşağıda ki tabloda listelenmiştir.

Hata Kodu Açıklama
OK İŞLEM BAŞARILI
FAIL İŞLEM BAŞARISIZ
00 KULLANICI BİLGİLERİ BOŞ
01 KULLANICI BİLGİLERİ HATALI
02 İNTERAKTİF KULLANICI BİLGİLERİNİZ HATALI
03 İNTERAKTIF TYPE SEÇİLMEMİŞ
04 İNTERAKTİF İÇİN EN AZ BİR NUMARA GİRİLMELİ
05 İNTERAKTİF TOKEN BİLGİSİ HATALI
06 İNTERAKTİF TOKEN BİLGİSİ BOŞ
10 GEÇERSİZ İP ADRESİ

POST http://get.ayyildiz.net/interaktif.asmx
Kopyala





           

Yurtdışı SMS API

İleri Tarihli SMS Paketi İptali

Web SMS Client’a tanımlanmış ileri tarihli SMS gönderim paketleri API aracılığıyla da iptal edilebilmektedir. İlgili API, Web SMS Client’ın tüm Bulk ve Türkçe SMS gönderim API’leri için geçerlidir.

URL http://sms.ayyildiz.net/ParcaliGonderim.asmx

Method: ParcaliGonderimIptal

Kullanıcı Bilgileri Açıklama
username Kullanıcı adınız
password şifreniz
paketId İptal edilmek istenen SMS Paket Id'si

Dönüş Cevapları
Bu servisin kullanimi sonucu donecek olan cevaplar asagidaki gibidir.

Dönüş Açıklama
00 Kullanıcı adı ya da şifre içeriği boş
01 Kullanıcı bulunamadı
İptal edilecek Mesaj Bulunamadı. Girilen PaketId'nin iceriginin boş olması durumu
3 Adet Paket Detayı İptal Edildi. Sms paket iptali başarılı

Örnek Cevap

"M_GUID"||"MESTIME"||"VERSION"||"MESSAGE"|| "TOTAL"||"SENT"||"PENDING"||"SYSTEMOUT"||"TIMEOUT"||"TIP"|| "STATUS"||"CESS"||"BASTAH"||"BITTAH"||"ALFA"
"2017120811304581232136264934"||"2017120123445688666264934"||"Deneme"|| "Deneme"||"2245"||"0"||"0"||"0"||"0"||"7"||11"||"1"||"081220171637"||"081220171937"||"deneme"

Rapor Alma Listesi

MESSAGEMesaj Metni
MESSTIMEMesaj Gönderim Tarihi
M_GUIDMesaj Gönderim Tarihi İle Aynı, GUID
ALFAAlfanumerik, Gönderim Başlığı
BASTAHBaslangic Tarihi
BITTAHBitiş Tarihi
TOTALMesaj Sayısı
SENTIletilen Mesaj Sayısı
PENDINGBekleyen Mesaj Sayısı
SYSTEMOUTSistem Hatası
TIMEOUTZaman Aşımı
CESSDurum kodları aşağıdaki tablodadır.
TIPMesaj Gönderim Tipleri İçin Bakınız.
STATUS
VERSIONVersiyon String (Mesaj gönderilirken girilen değer)

DURUM KODLARI ACIKLAMALARI

9IPTAL
99IPTAL
91BLOKLU
1BEKLEMEDE
2ISLEMDE
3HATALI
4BASARILI
5MUKERRER

Faks Gönderme Servisi

AYYILDIZ, yazılım geliştiren firmaların kullanabilecekleri iki çeşit fax gönderme yöntemi sağlanmaktadır.

  • Aynı faks’ın çok numaraya gönderilmesi,
  • Aynı faks’ın farklı numaralara farklı üst bilgi ile gönderilmesi

Her iki yöntemde de fakslar XML olarak gönderilmekte ve aynı raporlama uygulaması ile sonuçları alınmaktadır. Post edilen ASP ve DLL uygulamaları,SSL sertifakası ile desteklenmiştir. Post edilme esnasında sertifika ile ilgili bir sıkıntı yaşanması durumunda, http yerine https metodu da kullanılabilir.

  1. AYNI FAKSIN ÇOK NUMARAYA GÖNDERİLMESİ
  2. AYNI FAKSIN FARKLI NUMALARA FARKLI ÜST BİLGİ İLE GÖNDERİLMESİ

    Bu yöntemde amaç farklı numaralara farklı üst bilgi ile aynı anda yollanabilmesidir.Örneğin herbir müşteriye farklı ödeme tutarlarının göndermesi gibi.Bu yöntemde kullanılacak XML ve url adresi aşağıdaki gibidir.

    POST http://fax.ayyildiz.net/SendFaxMulti.aspx
    <?xml version="1.0" encoding="ISO-8859-9"?>
    <MainmsgBody>
    
                   <UserName>test</UserName>
                   <PassWord>pass</PassWord>
                   <CompanyCode>Bayi Kodu</CompanyCode>
                   <Type>2</Type>
                   <Credit>10</Credit>
                   <Originator><![CDATA[TEST]]></Originator>
                   <Version>Faks Version 2014</Version>
                   <Developer></Developer>
                   <Messages>
                     <Message>
                              <Mesgbody> <![CDATA[ODEME TUTARINIZ 123 TLDIR.]]></Mesgbody>
                              <Number>903……..</Number>
                     </Message>
                     <Message>
                              <Mesgbody><![CDATA[ ODEME TUTARINIZ 225 TL DIR.]]></Msgbody>
                              <Number>903……..</Number>
                     </Message>
            </Messages>  
                   <Retries>1</Retries>
                   <Rslt>0</Rslt>
                   <File>
    
                           <FileName01> </FileName01>
                           <FBase6401> </FBase6401>
    
                   </File>
                   <SDate></SDate>
                   <EDate></EDate>
    
    </MainmsgBody>
                      

    XML Açıklamaları

    ÖzellikAçıklama
    UsernameBayiniz tarafındam sağlanacak kullanıcı adı
    PasswordKullanıcı Şifreniz
    CompanyCodeBayiniz Tarafından verilen kod
    MesgBody60 karakter olacak şekilde oluşturulan mesaj metni
    Version Yazılım firması tarafından en çok 12 karakter verilebilen özel kod.
    OriginatorGönderici başlığı en az 3 en fazla 11 karakter kullanılabilir.Türkçe karakter kullanılamaz.
    NumbersFaks gönderilecek numaralar her bir numara ülke kodunu da içeren uluslararası formatta olmalı ve numaralar arasında ayıraç olarak virgüle(,) kullanılmalı,ülke ve operatör kodları.Ülke kodunun verilmemesi durumunda (312….. gibi) ülke kodu varsayılan olarak 90 kabul edilecektir.
    FileName01Gönderilecek Olan Dokümanın ismi
    FBase6401Gönderilecek Olan Dokümanın Base64 Formatına Çevrilmiş String Hali
    SDateFax'ın gönderilmeye başlanacağı tarihi gösterir.Formatı ddmmyyyyhhmm dir.Bu değer girilmediği durumda an itibariyle gönderim başlayacaktır.
    EDateFaks’ın gönderilme işleminin sonlandırılacağı zamandır.Bu tarihten sonra faks gönderme durdurulacak ve beklemeye alınan mesajlar zaman aşımı(timeout) olacaktır.

    Dönüş Cevapları

    İşleminin başarılı olması durumunda sizlere “ID:1234567” gibi bir sonuç dönecektir.Eğer bu şekilde bir dönüş yapılmazsa hata kodlarına bakmanızı çözüm üretilemezse firma ile görüşmenizi tavsiye ederiz.

Detaylı Rapor Alımı

Her bir paketin detay raporunu almak için aşağıda verilen XML un Aşağıdaki adrese Post Edilmesi gerekmektedir.

Servis Bağlantısı

URL http://fax.ayyildiz.net/DetailFaxReport.aspx
<?xml version='1.0' encoding='ISO-8859-9' ?>
<ReportMain>
        <UserName> UserName </UserName>
        <PassWord> PassWord </PassWord>
        <CompanyCode>Bayi Kodu</CompanyCode>
        <strGuid> Msgid </strGuid>
        <Type></Type>
        <delimiter>;</delimiter>
</ReportMain>

XML Açıklamaları

TanımAçıklama
UsernameKullanıcı Adı
PassWordKullanıcı Şifresi
CompanyCodeBayiniz Tarafından Verilen Kod.
strGuidPaketin işleme alındığı tarih/Saat(örnek : 2014022523025093819752477) yada Size Dönüş Yapılan “ID:123456” alanındaki sayısal alanı girebilirsiniz.
Typeİstenilen Rapor Tipi(1 İletildi,2 Beklemede,3 Hatalı,4 Zaman Aşımı) Type alanı girilmediği durumlarda toplam rapor görüntülenir(İletilen,Beklemede,Hatalı ve zaman aşımları Birlikte Görüntülenir.)
DelimiterType alanı boş girildiği durumlarda dikkate alınır.Default değeri'dir.

Numara Durum Kodları

Durum KoduAçıklama
1Bekleyen Numaralar(Kullanımda ancak kapsama alanı dışında ya da telefon kapalı)
2İletilen Numaralar
3Geçersiz Numara
4Sinyal Yok
5Cevap Yok
6Bağlantı Yok

Rapor Alımında Alınabilecek Hata Kodları

Hata KoduAçıklama
00Hatalı Kullanıcı Adı yada şifresi
01Hatalı Kullanıcı Adı yada şifresi
20Özet Raporda;verilen dönem için atış bulunamadı.
21Detay Raporda;verilen parametreler için rapor bulunamadı yada  rapor henüz hazır değil.

Örnek Rapor

  • 2141 903……………….. 2 021107141318
  • 2141 903……………….. 3
  • 2141 903……………….. 4
  • 2141 903……………….. 1

Kredi Sorgulama

Kullanıcı mevcut kredisini sorgulamak istediği durumlarda kullanılır.Bunun için aşağıda verilen Xml ’un aşağıdaki adrese Post Edilmesi gerekmektedir.

Servis Bağlantısı

URL http://fax.ayyildiz.net/DetailFaxReport.aspx
<?xml version='1.0' encoding='ISO-8859-9' ?>
<Main>
<UserName>Company Username</UserName>
     <PassWord>Company Password</PassWord>
     <CompanyCode >Bayi Kodu</CompanyCode>
</Main>

Dönüş Kodları

  • 1250
  • 20081230
  • 1.Satır:Kredi Miktarı
  • 2.Satır:Expire Değeri. Yyyymmdd formatında

Originator Sorgulamada Alınabilecek Hata Kodları

00Kullanıcı Bilgileri Boş
01Hatalı Kullanıcı Adı yada şifresi
02Hesap Kapalı
03Kontör Hatası
06Bu işlem için Yetkiniz Yok
10Geçersiz IP Adresi
100XML Hatası

Hata Kodları

FAKS Gönderim sırasında oluşabilecek durumlara ilişkin hata kodları aşağıda ki tabloda listelenmiştir

00Kullanıcı Bilgileri Boş
01Kullanıcı Bilgileri Hatalı
02Hesap Kapalı
03Kontör Hatası
04Bayi Kodunuz Hatalı
05Originator Bilginiz Hatalı
06Yapılan İşlem İçin Yetkiniz Yok
10Geçersiz IP Adresi
14Mesaj Metni Girilmemiş
15Numara Girilmemiş
20Rapor Hazır Değil
27Aylık Atım Limitiniz Yetersiz
100XML Hatası