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.
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
İletişim |
destek@ayyildiz.net |
0212 553 53 53 |
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.
AYYILDIZ XML API çözümünü kullanabilmeniz için gereken minimum sistem gereksinimleri aşağıda belirtilmiştir.
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 |
|
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>
Gönderim sırasında;
kesinlikle kullanılmamalıdır. Mesaj metni içerisinde sadece ( ), [ ], { }, =, *, ?, \, /, %, +, #, !, ", :, ;, _, | simgeleri kullanılabilir.
“&”,”<”,”>” Karakterlerinin Kullanımı
Karakter | XML Formatı |
& | & |
< |
< |
> |
> |
public string xmlreplace(string inString) { inString = inString.Replace("&", "&"); inString = inString.Replace("<", "<"); inString = inString.Replace(">", ">"); inString = inString.Replace("’", "'"); inString = inString.Replace("“", """); inString = inString.Replace("“", "€"); inString = inString.Replace('"'.ToString(), """); return inString; }
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!
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>
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!
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
Kod | Açıklama |
01 | Hatalı Kullanıcı Adı ya da şifresi |
100 | XML Hatası |
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.
Karakter | Type |
160 Karakter Sms | 1 |
918 Karakter Sms | 5 |
155 Karakter Sms ve Tüm Diller | 12 |
894 Karakter Sms ve Tüm Diller | 12 |
70 Karakter Türkçe Gönderim | 6 |
402 Karakter Türkçe Gönderim | 7 |
402 Karakter Uluslararası Gönderim | 13 |
Not: Türkçe Sms Gönderimlerinde dikkat edilmesi gereken nokta encoding alanı UTF-8 şeklinde olmalıdır.
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.
XML SMS API Gönderim Metotlarını İnceleyin.
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.
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.
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.
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.
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.
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 koyu |
Type | 160 karaktere kadar gönderimler Type alanında 1 olarak gönderilmelidir.160 karakteri geçtiği durumlarda Type alanı 5 olarak gönderilmelidir. |
MesgBody | 160 karakter olacak şekilde oluşturulan mesaj metni |
Developer | |
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 | Gönderim Başlangıç Tarihi Format dd.MM.yyyy hh:mm |
Edate | Gönderim Bitiş Tarihi Format dd.MM.yyyy hh:mm |
Starthour | Gün içinde paketlerin saat kaç itibari ile başlayacağını ifade eder.(hh:mm) |
Endhour | Gün içinde paketlerin saat kaç itibari ile biteceğini ifade eder.(hh:mm) |
Periodminute | Her Gönderim Arası Kaç Dakika olması isteniyorsa ayarlanabilir. |
Exchour | Gö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 |
CampaignCode | Bilgi için kullanılabilir. Opsiyonel kullanılabilir. |
OrganizationCodes | Bilgi için kullanılabilir. Opsiyonel kullanılabilir. |
SMS Paketi İptali
POST http://servis./parcali/Servis/ParcaliGonderim.asmx
Mettot Adı : ParcaliGonderimIptal
Parametreler:
Özellik | Açıklama |
username | Kullanıcı adı |
password | Kullanıcı şifresi |
paketId | İptal edilmek istenen SMS Paket Id'si |
Dönüş | Açıklama |
00 | Kullanı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ı |
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.
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.
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ı:
Özellik | Açıklama |
Username | String , Kullanıcı Adı |
Password | String, Şifre |
CompanyCode | String, Bayi Kodu |
Delm | String, Gelen cevabın hangi karakter kullanılarak ayrılacağı |
SDate | String, Baslangıç Tarihi yyyyDDMM formatında olmalıdır |
EDate | String, Bitiş Tarihi yyyyDDMM formatinda olmalidir |
Type | String, 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ı
Özellik | Açıklama |
MESSAGE | Mesaj Metni |
MESSTIME | Mesaj Gönderim Tarihi |
M_GUID | Mesaj Gönderim Tarihi ile aynı, GUID |
ALFA | Alfanumerik, Gönderim Başlığı |
BASTAH | Baslangıç Tarihi |
BITTAH | Bitiş Tarihi |
TOTAL | Mesaj Sayısı |
SENT | Iletilen Mesaj Sayısı |
PENDING | Bekleyen Mesaj Sayısı |
SYSTEMOUT | Sistem Hatasi |
TIMEOUT | Zaman Aşımı |
CESS | Durum kodlari asağıdaki tablodadır. |
TIP | Sms gönderim sırasında mesajın hangi tip olarak gönderileceğini bildirir.
|
STATUS | |
VERSION | Versiyon String (Mesaj gonderilirken girilen değer) |
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 Kodu | Açıklama |
9 | İPTAL |
99 | İPTAL |
91 | BLOKLU |
1 | BEKLEMEDE |
2 | İŞLEMDE |
3 | HATALI |
4 | BAŞARILI |
5 | MUKERRER |
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ı
Özellik | Açıklama |
UserName | string, Kullanıcı Adı |
PassWord | string, Şifreniz |
CompanyCode | string, Bayi Kodu |
strGuid | string, Rapor Listesinde Size Verilen GUID |
Delm | string, Parçalamak İstenen Karakter |
Type | string, Boş girilebilir |
Dönüş cevapları aşağıdaki gibidir.
Durum Kodları
Durum Kodu | Açıklama |
1 | Beklemede |
2 | İletildi |
3 | Numara Hatalı |
4 | Zaman Aşımı |
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ı
Özellik | Açıklama |
UserName | Kullanıcı Adı |
PassWord | Şifreniz |
Msgid | Gö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.) |
Delimiter | Type alanı boş girildiği durumlarda dikkate alınır. Default değeridir. |
Numara Durum Kodları
Durum Kodu | Açıklama |
1 | Bekleyen Numaralar(Kullanımda ancak kapsama alanı dışında yada telefon kapalı) |
2 | İletilen Numaralar |
3 | Sistem 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 Kodu | Açıklama |
00 | Hatalı Kullanıcı Adı ya da şifresi |
01 | Hatalı Kullanıcı Adı ya da şifresi |
20 | Özet Raporda;verilen dönem için atış bulunamadı. |
21 | Detay 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 |
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ı
Özellik | Açıklama |
UserName | Kullanıcı Adı |
PassWord | Şifreniz |
Msgid | Gönderilen Sms ID si |
Numara Durum Kodları
Durum Kodu | Açıklama |
1 | Bekleyen Numaralar(Kullanımda ancak kapsama alanı dışında yada telefon kapalı) |
2 | İletilen Numaralar |
3 | Sistem 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 Kodu | Açıklama |
OK | Rapor Başarılı |
00 | Hatalı Kullanıcı Adı ya da şifresi |
01 | Hatalı Kullanıcı Adı ya da şifresi |
20 | Özet Raporda;verilen dönem için atış bulunamadı. |
21 | Detay 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>
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!
SMS Gönderim sırasında oluşabilecek durumlara ilişkin hata kodları aşağıda ki tabloda listelenmiştir
Hata Kodu | Yanıt |
00 | Kullanıcı Bilgileri Boş |
01 | Kullanıcı Bilgileri Hatalı |
02 | Hesap Kapalı |
03 | Kontör Hatası |
04 | Bayi Kodunuz Hatalı |
05 | Originator Bilginiz Hatalı |
06 | Yapılan İşlem İçin Yetkiniz Yok |
10 | Geçersiz IP Adresi |
14 | Mesaj Metni Girilmemiş |
15 | GSM Numarası Girilmemiş |
20 | Rapor Hazır Değil |
27 | Aylık Atım Limitiniz Yetersiz |
100 | XML Hatası |
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 Kodu | Açıklama |
00 | Kullanıcı Bilgileri Boş |
01 | Hatalı Kullanıcı Adı ya da şifresi |
02 | Hesap Kapalı |
03 | Kontör Hatası |
06 | Bu işlem için Yetkiniz Yok |
10 | Geçersiz IP Adresi |
100 | XML Hatası |
<?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; } } ?>
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.
AYYILDIZ HTTP/S API çözümünü kullanabilmeniz için gereken minimum sistem gereksinimleri aşağıda belirtilmiştir.
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 |
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ı |
& | & |
< | > |
> | < |
public string xmlreplace(string inString) { inString = inString.Replace("&", "&"); inString = inString.Replace("<", "<"); inString = inString.Replace(">", ">"); inString = inString.Replace("’", "'"); inString = inString.Replace("“", """); inString = inString.Replace("“", "€"); inString = inString.Replace('"'.ToString(), """); return inString; }
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!
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.
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=
Karakter | Type |
160 Karakter Sms | 1 |
918 Karakter Sms | 5 |
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 Diller | 6 |
402 Karakter Türkçe Gönderim ve Tüm Diller | 7 |
402 Karakter Uluslararası Gönderim | 13 |
Not: Türkçe Sms Gönderimlerinde dikkat edilmesi gereken nokta encoding alanı UTF-8 şeklinde olmalıdır.
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ı:
Özellik | Açıklama |
Username | String , Kullanıcı Adı |
Password | String, Şifre |
CompanyCode | String, Bayi Kodu |
Delm | String, Gelen cevabın hangi karakter kullanılarak ayrılacağı |
SDate | String, Baslangıç Tarihi yyyyDDMM formatında olmalıdır |
EDate | String, Bitiş Tarihi yyyyDDMM formatinda olmalidir |
Type | String, 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ı
Özellik | Açıklama |
MESSAGE | Mesaj Metni |
MESSTIME | Mesaj Gönderim Tarihi |
M_GUID | Mesaj Gönderim Tarihi ile aynı, GUID |
ALFA | Alfanumerik, Gönderim Başlığı |
BASTAH | Baslangıç Tarihi |
BITTAH | Bitiş Tarihi |
TOTAL | Mesaj Sayısı |
SENT | Iletilen Mesaj Sayısı |
PENDING | Bekleyen Mesaj Sayısı |
SYSTEMOUT | Sistem Hatasi |
TIMEOUT | Zaman Aşımı |
CESS | Durum kodlari asağıdaki tablodadır. |
TIP | Sms gönderim sırasında mesajın hangi tip olarak gönderileceğini bildirir.
|
STATUS | |
VERSION | Versiyon String (Mesaj gonderilirken girilen değer) |
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 Kodu | Açıklama |
9 | İPTAL |
99 | İPTAL |
91 | BLOKLU |
1 | BEKLEMEDE |
2 | İŞLEMDE |
3 | HATALI |
4 | BAŞARILI |
5 | MUKERRER |
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ı
Özellik | Açıklama |
UserName | string, Kullanıcı Adı |
PassWord | string, Şifreniz |
CompanyCode | string, Bayi Kodu |
strGuid | string, Rapor Listesinde Size Verilen GUID |
Delm | string, Parçalamak İstenen Karakter |
Type | string, Boş girilebilir |
Dönüş cevapları aşağıdaki gibidir.
Durum Kodları
Durum Kodu | Açıklama |
1 | Beklemede |
2 | İletildi |
3 | Numara Hatalı |
4 | Zaman Aşımı |
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ı
Özellik | Açıklama |
UserName | Kullanıcı Adı |
PassWord | Şifreniz |
Msgid | Gö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.) |
Delimiter | Type alanı boş girildiği durumlarda dikkate alınır. Default değeridir. |
Numara Durum Kodları
Durum Kodu | Açıklama |
1 | Bekleyen Numaralar(Kullanımda ancak kapsama alanı dışında yada telefon kapalı) |
2 | İletilen Numaralar |
3 | Sistem 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 Kodu | Açıklama |
00 | Hatalı Kullanıcı Adı ya da şifresi |
01 | Hatalı Kullanıcı Adı ya da şifresi |
20 | Özet Raporda;verilen dönem için atış bulunamadı. |
21 | Detay 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 |
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ı
Özellik | Açıklama |
UserName | Kullanıcı Adı |
PassWord | Şifreniz |
Msgid | Gönderilen Sms ID si |
Numara Durum Kodları
Durum Kodu | Açıklama |
1 | Bekleyen Numaralar(Kullanımda ancak kapsama alanı dışında yada telefon kapalı) |
2 | İletilen Numaralar |
3 | Sistem 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 Kodu | Açıklama |
OK | Rapor Başarılı |
00 | Hatalı Kullanıcı Adı ya da şifresi |
01 | Hatalı Kullanıcı Adı ya da şifresi |
20 | Özet Raporda;verilen dönem için atış bulunamadı. |
21 | Detay 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>
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 Kodu | Açıklama |
00 | Kullanıcı Bilgileri Boş |
01 | Hatalı Kullanıcı Adı ya da şifresi |
02 | Hesap Kapalı |
03 | Kontör Hatası |
06 | Bu işlem için Yetkiniz Yok |
10 | Geçersiz IP Adresi |
100 | XML Hatası |
SMS Gönderim sırasında oluşabilecek durumlara ilişkin hata kodları aşağıda ki tabloda listelenmiştir
Hata Kodu | Yanıt |
00 | Kullanıcı Bilgileri Boş |
01 | Kullanıcı Bilgileri Hatalı |
02 | Hesap Kapalı |
03 | Kontör Hatası |
04 | Bayi Kodunuz Hatalı |
05 | Originator Bilginiz Hatalı |
06 | Yapılan İşlem İçin Yetkiniz Yok |
10 | Geçersiz IP Adresi |
14 | Mesaj Metni Girilmemiş |
15 | GSM Numarası Girilmemiş |
20 | Rapor Hazır Değil |
27 | Aylık Atım Limitiniz Yetersiz |
100 | XML Hatası |
Ö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; } ?>
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!
AYYILDIZ XML API çözümünü kullanabilmeniz için gereken minimum sistem gereksinimleri aşağıda belirtilmiştir.
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.
Parametre | Açıklama |
Username | Bayiniz tarafındam sağlanacak kullanıcı adı |
Password | Kullanıcı Şifreniz |
CompanyCode | Bayiniz Tarafından verilen kod |
MesgBody | 160 karakter olacak şekilde oluşturulan mesaj metni |
Developer | --- |
Type |
|
Version | Yazılım firması tarafından en çok 15 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 kodunun verilmemesi durumunda (905............ 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/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.
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ı |
& | & |
< |
< |
> |
> |
public string xmlreplace(string inString) { inString = inString.Replace("&", "&"); inString = inString.Replace("<", "<"); inString = inString.Replace(">", ">"); inString = inString.Replace("’", "'"); inString = inString.Replace("“", """); inString = inString.Replace("“", "€"); inString = inString.Replace('"'.ToString(), """); return inString; }
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!
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>
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
Parametre | Açıklama |
Username | Bayiniz tarafındam sağlanacak kullanıcı adı |
Password | Kullanıcı Şifreniz |
CompanyCode | Bayiniz Tarafından verilen kod |
MsgID | Raporu 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!
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
Kod | Açıklama |
01 | Hatalı Kullanıcı Adı ya da şifresi |
100 | XML Hatası |
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.
Karakter | Type |
160 Karakter Sms | 1 |
918 Karakter Sms | 5 |
155 Karakter Sms ve Tüm Diller | 12 |
894 Karakter Sms ve Tüm Diller | 12 |
70 Karakter Türkçe Gönderim | 6 |
402 Karakter Türkçe Gönderim | 7 |
402 Karakter Uluslararası Gönderim | 13 |
Not: Türkçe Sms Gönderimlerinde dikkat edilmesi gereken nokta encoding alanı UTF-8 şeklinde olmalıdır.
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.
Web Servis SMS API Gönderim Metotlarını İnceleyin.
Bu Yöntemde amaç , tek bir mesaj metninin farklı numaralara yollanabilmesidir. Bu yöntemde kullanılacak olan parametreler aşağıda belirtilmiştir.
Parametre | Açıklama |
Username | Bayiniz tarafından sağlanacak kullanıcı adı |
Password | Kullanıcı Şifreniz |
CompanyCode | Bayiniz Tarafından verilen kod |
MessageBody | 160 karakter olacak şekilde oluşturulan mesaj metni |
Version | Yazılım firması tarafından en çok 15 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 kodunun verilmemesi durumunda (905............ 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. |
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.
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.
Parametre | Açıklama |
Username | Bayiniz tarafından sağlanacak kullanıcı adı |
Password | Kullanıcı Şifreniz |
CompanyCode | Bayiniz Tarafından verilen kod |
MessageBody | Max 596 karakterden oluşan mesaj metni |
Version | Yazılım firması tarafından en çok 15 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 kodunun verilmemesi durumunda (905............ 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. |
Type | 12 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
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.
Parametre | Açıklama |
Username | Bayiniz tarafından sağlanacak kullanıcı adı |
Password | Kullanıcı Şifreniz |
CompanyCode | Bayiniz Tarafından verilen kod |
MessageBody | 160 karakter olacak şekilde oluşturulan mesaj metni |
Version | Yazılım firması tarafından en çok 15 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 kodunun verilmemesi durumunda (905............ 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. |
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.
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.
Parametre | Açıklama |
Username | Bayiniz tarafından sağlanacak kullanıcı adı |
Password | Kullanıcı Şifreniz |
CompanyCode | Bayiniz Tarafından verilen kod |
MessageBody | 160 karakter olacak şekilde oluşturulan mesaj metni |
Version | Yazılım firması tarafından en çok 15 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 kodunun verilmemesi durumunda (905............ 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. |
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.
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.
Parametre | Açıklama |
Username | Bayiniz tarafından sağlanacak kullanıcı adı |
Password | Kullanıcı Şifreniz |
CompanyCode | Bayiniz Tarafından verilen kod |
MessageBody | 160 karakter olacak şekilde oluşturulan mesaj metni |
Version | Yazılım firması tarafından en çok 15 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 kodunun verilmemesi durumunda (905............ 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. |
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.
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ı:
Özellik | Açıklama |
Username | String , Kullanıcı Adı |
Password | String, Şifre |
CompanyCode | String, Bayi Kodu |
SDate | Sorgulanacak Olan Mesajların Başlangıç Tarihi Formatı (yyyymmdd) |
EDate | Sorgulanacak Olan Mesajların Bitiş Tarihi Formatı (yyyymmdd) |
Örnek Cevap:
Diğer Dönüş Cevapları:
No | Açıklama |
01 | Kullanıcı Adı yada şifre boş. |
10 | Hatalı İp Adresi |
06 | Bu İşlem İçin Yetkiniz Yok |
02 | Hesap Kapalı |
20 | Rapor Bulunamadı |
60 | Genel Hata |
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ı
Özellik | Açıklama |
Username | Kullanıcı Adı |
PassWord | Kullanıcı Şifresi |
CompanyCode | Bayiniz Tarafından Verilen Kullanıcı Kodu |
strGuid | Mesajın Gönderildiği tarih saat bilgisi. |
Delm | Type alanı boş girildiği durumlarda dikkate alınır.Default değeridir. |
Durum Kodları
Durum Kodu | Açıklama |
1 | Bekleyen Numaralar(Kullanımda ancak kapsama alanı dışında yada telefon kapalı) |
2 | İletilen Numaralar |
3 | Sistem 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.) |
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ı
Özellik | Açıklama |
Username | Kullanıcı Adı |
Password | Kullanıcı Şifresi |
CompanyCode | Bayiniz Tarafından Verilen Kullanıcı Kodu |
MsgID | Raporu alınacak Mesajın id si |
Durum Kodları
Durum Kodu | Açıklama |
1 | Bekleyen Numaralar(Kullanımda ancak kapsama alanı dışında yada telefon kapalı) |
2 | İletilen Numaralar |
3 | Sistem 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 Kodu | Açıklama |
OK | Rapor Başarılı |
00 | Hatalı Kullanıcı Adı yada şifresi |
01 | Hatalı Kullanıcı Adı yada şifresi |
20 | Özet Raporda;verilen dönem için atış bulunamadı. |
21 | Detay Raporda;verilen parametreler için rapor bulunamadı yada rapor henüz hazır değil. |
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
Özellik | Açıklama |
Username | Kullanıcı Adı |
Password | Kullanıcı Şifresi |
CompanyCode | Bayiniz Tarafından Verilen Kullanıcı Kodu |
MsgID | Raporu alınacak Mesajın id si |
Durum Kodları
Durum Kodu | Açıklama |
1 | Bekleyen Numaralar(Kullanımda ancak kapsama alanı dışında yada telefon kapalı) |
2 | İletilen Numaralar |
3 | Sistem 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 Kodu | Açıklama |
OK | Rapor Başarılı |
00 | Hatalı Kullanıcı Adı yada şifresi |
01 | Hatalı Kullanıcı Adı yada şifresi |
20 | Özet Raporda;verilen dönem için atış bulunamadı. |
21 | Detay 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
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
Parametre | Açıklama |
Username | Kullanıcı Adı |
Password | Kullanıcı Şifresi |
CompanyCode | Bayiniz Tarafından Verilen Kod |
Örnek Dönüş
Cevap olarak string değerde Kontor Miktarınız Dönüş Yapılır.
Kod | Açıklama |
00 | Kullanıcı Bilgileri Boş |
01 | Hatalı Kullanıcı Adı yada şifresi |
02 | Hesap Kapalı |
06 | Bu işlem için Yetkiniz Yok |
10 | Geçersiz IP Adresi |
100 | XML Hatası |
SMS Gönderim sırasında oluşabilecek durumlara ilişkin hata kodları aşağıda ki tabloda listelenmiştir.
Hata Kodu | Yanıt |
00 | Kullanıcı Bilgileri Boş |
01 | Kullanıcı Bilgileri Hatalı |
02 | Hesap Kapalı |
03 | Kontör Hatası |
04 | Bayi Kodunuz Hatalı |
05 | Originator Bilginiz Hatalı |
06 | Yapılan İşlem İçin Yetkiniz Yok |
10 | Geçersiz IP Adresi |
14 | Mesaj Metni Girilmemiş |
15 | GSM Numarası Girilmemiş |
20 | Rapor Hazır Değil |
27 | Aylık Atım Limitiniz Yetersiz |
100 | XML Hatası |
<?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; } } ?>
İ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
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.
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.
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.
PARAMETRELER
username: string. kullanıcı adı.
SONUÇ PARAMETRELERİ: String. İşlemle ilgili bilgiler Hata Kodları Bölümünden Bakabilirsiniz.
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.
PARAMETRELER
username: string. kullanıcı adı.
password: string. şifresi.
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 .
Bu istek ile gelen smsleri sorgulayabilirsiniz.
PARAMETRELER
username: string. kullanıcı adı.
password: string. şifresi.
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
Bu istek ile sisteme login olursunuz.
PARAMETRELER
username: string. kullanıcı adı.
password: string. şifresi.
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>
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İ:
<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>
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İ |
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
MESSAGE | Mesaj Metni |
MESSTIME | Mesaj Gönderim Tarihi |
M_GUID | Mesaj Gönderim Tarihi İle Aynı, GUID |
ALFA | Alfanumerik, Gönderim Başlığı |
BASTAH | Baslangic Tarihi |
BITTAH | Bitiş Tarihi |
TOTAL | Mesaj Sayısı |
SENT | Iletilen Mesaj Sayısı |
PENDING | Bekleyen Mesaj Sayısı |
SYSTEMOUT | Sistem Hatası |
TIMEOUT | Zaman Aşımı |
CESS | Durum kodları aşağıdaki tablodadır. |
TIP | Mesaj Gönderim Tipleri İçin Bakınız. |
STATUS | |
VERSION | Versiyon String (Mesaj gönderilirken girilen değer) |
9 | IPTAL |
99 | IPTAL |
91 | BLOKLU |
1 | BEKLEMEDE |
2 | ISLEMDE |
3 | HATALI |
4 | BASARILI |
5 | MUKERRER |
AYYILDIZ, yazılım geliştiren firmaların kullanabilecekleri iki çeşit fax gönderme yöntemi sağlanmaktadır.
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.
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ı
Özellik | Açıklama |
Username | Bayiniz tarafındam sağlanacak kullanıcı adı |
Password | Kullanıcı Şifreniz |
CompanyCode | Bayiniz Tarafından verilen kod |
MesgBody | 60 karakter olacak şekilde oluşturulan mesaj metni |
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 | Faks 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. |
FileName01 | Gönderilecek Olan Dokümanın ismi |
FBase6401 | Gönderilecek Olan Dokümanın Base64 Formatına Çevrilmiş String Hali |
SDate | Fax'ı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 | Faks’ı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.
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ım | Açıklama |
Username | Kullanıcı Adı |
PassWord | Kullanıcı Şifresi |
CompanyCode | Bayiniz Tarafından Verilen Kod. |
strGuid | Paketin 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.) |
Delimiter | Type alanı boş girildiği durumlarda dikkate alınır.Default değeri'dir. |
Numara Durum Kodları
Durum Kodu | Açıklama |
1 | Bekleyen Numaralar(Kullanımda ancak kapsama alanı dışında ya da telefon kapalı) |
2 | İletilen Numaralar |
3 | Geçersiz Numara |
4 | Sinyal Yok |
5 | Cevap Yok |
6 | Bağlantı Yok |
Rapor Alımında Alınabilecek Hata Kodları
Hata Kodu | Açıklama |
00 | Hatalı Kullanıcı Adı yada şifresi |
01 | Hatalı Kullanıcı Adı yada şifresi |
20 | Özet Raporda;verilen dönem için atış bulunamadı. |
21 | Detay Raporda;verilen parametreler için rapor bulunamadı yada rapor henüz hazır değil. |
Örnek Rapor
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ı
Originator Sorgulamada Alınabilecek Hata Kodları
00 | Kullanıcı Bilgileri Boş |
01 | Hatalı Kullanıcı Adı yada şifresi |
02 | Hesap Kapalı |
03 | Kontör Hatası |
06 | Bu işlem için Yetkiniz Yok |
10 | Geçersiz IP Adresi |
100 | XML Hatası |
FAKS Gönderim sırasında oluşabilecek durumlara ilişkin hata kodları aşağıda ki tabloda listelenmiştir
00 | Kullanıcı Bilgileri Boş |
01 | Kullanıcı Bilgileri Hatalı |
02 | Hesap Kapalı |
03 | Kontör Hatası |
04 | Bayi Kodunuz Hatalı |
05 | Originator Bilginiz Hatalı |
06 | Yapılan İşlem İçin Yetkiniz Yok |
10 | Geçersiz IP Adresi |
14 | Mesaj Metni Girilmemiş |
15 | Numara Girilmemiş |
20 | Rapor Hazır Değil |
27 | Aylık Atım Limitiniz Yetersiz |
100 | XML Hatası |