http://toplu sms.netgsm .com .tr VER 6.1.0 GENEL UYARILAR 1.Api ile sms göndermek için toplusms.netgsm.com.tr giriş yaptıktan sonra 'Kullanıcı Bilgileri / Api Talep' menüsünden api talebinde bulununuz. Api ile ilgili teknik değişiklik ve gelişmelerden haberdar olmak için bu sayfadaki api yetkilisi bölümüne kodlama yapanın bilgilerini girmeniz gerekmektedir. Ayrıca yine bu sayfadan api kullanımına ip ile sınırlama getirebilirsiniz. 2. Mesaj başlığı kısmına kullanıcınıza tanımlı gönderici adlarından birini giriniz. 3. Api kullanarak bir dakika içinde en fazla 50 paket gönderebilirsiniz. Paketlerde telefon sınırı yoktur. 4. 1 dakika içerisinde 3 kere hatalı sorguda bulunan IP, 1 saatliğine api ile hesap erişimi durdurulur. 5. Destek ve sorularınız için [email protected] mail adresine mail gönderebilirsiniz. 6.Gelen SMS'leri her sorguladığınızda geriye en fazla 100 adet sms döner 7.Yükle miktardaki smslerinizi tek tek (her paketde bir numara) göndermeniz durumunda smsleriniz sistem tarafından spam olarak algılanıp, kullanıcınızın sms gönderimi bloke edilebilir. Smslenizizi bize çoklu paketler halinde göndermeniz bu sorunun önüne geçecektir. Örneğin; 30000 adet numaraya sms göndermek istiyorsanız numaraları 5000 lik 6 parça halinde gönderebilirsiniz. SMS GÖNDERİM YÖNTEMLERİ 1.Sesli Mesaj http://api.netgsm.com.tr/xmlbulkhttppost_seslisms.asp Parametreler Alan Adı Boyut Tip Açıklama <company> Max.9 String Bu alan NETGSM olmalıdır <usercode> Max.25 string NetGSM'den alınan kullanıcı adı <password> Max.25 string netgsm.com.tr'den alınan kullanıcı şifresi <startdate> Max.8 date Mesajın gönderilmeye başlanacağı tarih (ggaayyyy) <starttime> Max.4 time Mesajın gönderilmeye başlanacağı saat (ssdd) <stopdate> Max.12 date Mesajın geçerlilik süresinin bittiği tarih (ggaayyyy) <stoptime> Max.4 time Mesajın gönderiliminin dururulacağı saat (ssdd) <audioid> Max.11 string Gönderilmek istenen sesid <no> Max.12 integer Mesajın gönderileceği gsm numarasıdır. 12 hanedir. Örn: 05051234567 veya 905051234567 Örnek Şablon: <?xml version=”1.0”?> <mainbody> <header> <company>NETGSM</company> <usercode>KullaniciAdi</usercode> <password>Sifre</password> <startdate>011220130101</startdate> <starttime>1828</starttime> <stopdate>021220130101</stopdate> </header> <body> <audioid>sesid</audioid> <no>905551234567</no> <no>905551234568</no> </body> </mainbody> Mesajın gönderimi sonucunda ekrana ileti yada hata verisi döner. İleti Durumlar 00 123456 Mesaj sorunsuz bir şekilde iletildi. 01 123456 Mesaj gönderim başlangıç tarihinde hata var. Sistem tarihi ile değiştirilip gönderildi. Mesaj gönderim sonlandırılma tarihinde hata var.Sistem tarihi ile değiştirilip 02 123456 gönderildi.Bitiş tarihi başlangıç tarihinden küçük girilmisş ise, sistem bitiş tarihine içinde bulunduğu tarihe 24 saat ekler. 00 Sorgu Sonucu : 123456 ↓ ↓ İleti veya Hata Durumu Mesaj ID Hata Durumları 01 Mesaj Tarihi hatalı 02 Mesaj tarihi hatalı 30 Hatalı kullanıcı adı ve şifre 40 Ses dosyası yok 45 Telefon yok 70 Hatalı XML 2.Sesli Mesaj Dosya Gönderim http://api.netgsm.com.tr/sesli_mesaj_post.php http://api.netgsm.com.tr/apiornekleri/seslimesaj_user.zip * Yukarıdaki linkten .php örneğini indirebilirsiniz. * Bir dakika içerisinde bir dosya gönderebilirsiniz. Parametreler http://api.netgsm.com.tr/sesli_mesaj_post.php sayfasına post etmeniz gereken değişkenler aşağıdaki gibidir. Alan Adı Boyut Tip Açıklama dosya string Yüklemek istediğiniz dosya (İzinli Uzantılar : ".wav") username Max.25 string Netgsm sistemine giriş yapmak için kullandığınız kullanıcı adı password Max.25 string Netgsm sistemine giris yapmak için kullandığınız şifre file Sorgu Sonucu: 232423 ↓ Seslimesaj Upload Bulkid Hata Durumları 10 Dosya kopyalanamadı 20 Geçersiz dosya uzantısı 30 Kullanıcı bilgileri hatalı 40 Dosya boyutu 4MB büyük 3.Fax Gönderme http://api.netgsm.com.tr/fax_post.php http://api.netgsm.com.tr/apiornekleri/fax_user.zip * Yukarıdaki linkten .php örneğini indirebilirsiniz. * Bir dakika içerisinde bir dosya gönderebilirsiniz. Parametreler http://api.netgsm.com.tr/fax_post.php sayfasına post etmeniz gereken değişkenler aşağıdaki gibidir. Alan Adı Boyut Tip Açıklama dosya string Yüklemek istediğiniz dosya(İzinli Uzantılar: ".txt", ".jpeg",".jpg", ".png", ".gif", ".pdf", ".doc",".docx",".xls",".xlsx") username Max.25 string Netgsm sistemine giriş yapmak için kullandığınız kullanıcı adı password Max.25 string Netgsm sistemine giris yapmak için kullandığınız şifre telefon Max.12 integer Mesajın gönderileceği gsm numarasıdır. 11 hanedir. Örn: 05051234567 startdate Max.12 date Mesajın gönderilmeye başlanacağı tarih(ggaayyyyssdd) * Boş bırakılırsa mesajınız hemen gider. stopdate Max.12 date Mesajın geçerlilik süresinin bittiği tarih(ggaayyyyssdd) * Boş bırakılırsa mesajın bitiş zamanı sistem tarafından belirlenir. file Sorgu Sonucu: 232423 ↓ Fax Upload Bulkid Hata Durumları 10 Dosya kopyalanamadı 20 Geçersiz dosya uzantısı 30 Kullanıcı bilgileri hatalı 40 Dosya boyutu 4MB büyük 50 Dosya fax formatına çevrilemedi. 60 Başlangıç ve bitiş tarihi hatalı 70 Telefon Numarası Hatalı 4.Get Metodu İle Gönderim http://api.netgsm.com.tr/bulkhttppost.asp Parametreler Adı Boyut Tip Açıklama usercode Max.25 string Netgsm sistemine giriş yapmak için kullandığınız kullanıcı adı password Max.25 string Netgsm sistemine giris yapmak için kullandığınız şifre gsmno Max.12 integer Mesajın gönderileceği gsm numarasıdır. 12 hanedir. Örn: 05051234567 veya 905051234567 message Max.917 string Mesaj metnidir. Tarifenizdeki maksimum karakterden uzun olmamalıdır. Standart maksimum karakter 917'dur. msgheader Max.211 string Kullanıcınızda tanımlı olan mesaj başlığınız. * Eğer mesajlarınızın Abone Numaranız ile göndermek istiyorsanız; bu alana abone numaranızı başında "0" olmadan yazınız. startdate Max.12 date Mesajın gönderilmeye başlanacağı tarih (ggaayyyyssdd) * Boş bırakılırsa mesajınız hemen gider. stopdate Max.12 date Mesajın geçerlilik süresinin bittiği tarih (ggaayyyyssdd) * Boş bırakılırsa mesajın bitiş zamanı sistem tarafından belirlenir Örnek Şablon: http://api.netgsm.com.tr/bulkhttppost.asp?usercode=deneme&password=1234& gsmno=5051234567,5441234568&message=testmesaji&msgheader=MesajBaslik&startdate=3001201 21721&stopdate=300120122321 Mesajın gönderimi sonucunda ekrana ileti yada hata verisi döner. İleti Durumları 00 123456 Mesajınız işleme alındı. 01 123456 Mesaj gönderim baslangıç tarihinde hata var. Sistem tarihi ile değiştirilip işleme alındı. Mesaj gönderim sonlandırılma tarihinde hata var.Sistem tarihi ile değiştirilip işleme 02 123456 alındı.Bitiş tarihi başlangıç tarihinden küçük girilmiş ise, sistem bitiş tarihine içinde bulunduğu tarihe 24 saat ekler. 00 Sorgu Sonucu : 123456 ↓ ↓ İleti veya Hata Durumu Mesaj ID Hata Durumları 10 Telefon Numarası Hatalı 20 Mesaj Metninde boş olmasından veya maksimum mesaj karakterini geçilmesi 30 Kullanıcı bilgisi bulunamadı 40 Geçersiz Mesaj Başlığı (başlık sisteme tanımlanmamış) 50 Kullanıcının Kredisi Yok 60 Telefon Numarası hiç tanımlanmamış 70 Mesaj başlığı hatalı 4.Post Metodu İle Gönderim a. Bir (1) Mesajı N Adet Kişiye Gönderme (1:N) http://api.netgsm.com.tr/xmlbulkhttppost.asp Parametreler Alan Adı Boyut Tip Açıklama <company> Max.9 String Bu alan NETGSM olmalıdır Eğer mesajlarınızın Türkçe Karakter içermesini istiyorsanız; * <company dil='TR'>NETGSM</company> tagını bu şekilde güncelleyiniz. * <?xml tagınızda encoding değeri belirtmeden <?xml version='1.0'?> şeklinde güncelleyiniz. * Bazı programlama dillerinde XML inizi post eden foksiyonunuzda encoding değeri belirtilmesi gerekebiliyor. Bu durumda Encoding değerinizin UTF8 olduğuna dikkat ediniz. * Eğer mesajlarınızın Abone Numaraniz ile göndermek istiyorsanız; <company> NETGSM_200A011A_70 </company> veya <msgheader>abone_numaranız</msgheader> tagınızı bu şekilde güncelleyiniz. <usercode> Max.25 string NetGSM'den alınan kullanıcı adı <password> Max.25 string netgsm.com.tr'den alınan kullanıcı şifresi <startdate> Max.12 date Mesajın gönderilmeye başlanacağı tarih(ggaayyyyssdd) * Boş bırakılırsa mesajınız hemen gider. (<startdate></startdate>) <stopdate> Max.12 date Mesajın geçerlilik süresinin bittiği tarih(ggaayyyyssdd) * Boş bırakılırsa mesajın bitiş zamanı sistem tarafından belirlenir.(<stopdate></stopdate>) <type> Max.3 string n mesaj n adet numaraya gönderilecek(n:n) veya 1 mesaj n adet numaraya gönderilecek(1:n) string Kullanıcınızda tanımlı olan mesaj başlığınız. string Mesaj metnidir. Tarifenizdeki maksimum karakterden uzun olmamalıdır. Standart maksimum karakter 917 dur. XML Parse işlemlerinde Türkçe karakterler ve özel işaretlerin sorun yaratmamasi için, mesaj metni <![CDATA[Mesaj metni bu alanda olacak]] > taglari içinde yer almalıdır. <msgheader> Max.11 <msg> Max.917 <no> Max.12 integer Mesajın gönderileceği gsm numarasıdır. 12 hanedir. Örn: 05051234567 veya 905051234567 Örnek Şablon: <?xml version=”1.0”?> <mainbody> <header> <company>NETGSM</company> <usercode>KullaniciAdi</usercode> <password>Sifre</password> <startdate>011220130101</startdate> <stopdate>021220130101</stopdate> <type>1:n</type> <msgheader>MesajBaslik</msgheader> </header> <body> <msg><![CDATA[Deneme Mesaji]]></msg> <no>905551234567</no> <no>905551234568</no> </body> </mainbody> Mesajın gönderimi sonucunda ekrana ileti yada hata verisi döner. İleti Durumları 00 123456 Mesajınız işleme alındı. 01 123456 Mesaj gönderim baslangıç tarihinde hata var. Sistem tarihi ile değiştirilip işleme alındı. Mesaj gönderim sonlandırılma tarihinde hata var.Sistem tarihi ile değiştirilip işleme 02 123456 alındı.Bitiş tarihi başlangıç tarihinden küçük girilmiş ise, sistem bitiş tarihine içinde bulunduğu tarihe 24 saat ekler. Sorgu Sonucu : 00 123456 ↓ ↓ İleti veya Hata Durumu Mesaj ID Hata Durumları 20 Mesaj metninde ki problemden dolayı gönderilemedi. 30 Geçersiz Kullanıcı adı veya şifresi. 40 Geçersiz Mesaj Başlığı 50 Kullanıcının yeterli kredisi yok 70 Geçersiz XML formatı 90 Mesaj sistem tarafindan kabul edilmedi. Daha sonra tekrar deneyin 100 Sistem Hatası olustu sistem yöneticinizi arayın b. N Mesajı N Adet Kişiye Gönderme (N:N) Örnek Şablon: <?xml version=”1.0”?> <mainbody> <header> <company>NETGSM</company> <usercode>KullaniciAdi</usercode> <password>Sifre</password> <startdate>011220130101</startdate> <stopdate>021220130101</stopdate> <type>n:n</type> <msgheader>MesajBaslik</msgheader> </header> <body> <msg><![CDATA[Deneme Mesaji]]></msg> <mp><msg><![CDATA[Mesaj1]]></msg><no>905551234567</no></mp> <mp><msg><![CDATA[Mesaj2]]></msg><no>905551234568</no></mp> </body> </mainbody> Mesajın gönderimi sonucunda ekrana ileti yada hata verisi döner. İleti Durumları 00 123456 Mesajınız işleme alındı. 01 123456 Mesaj gönderim baslangıç tarihinde hata var. Sistem tarihi ile değiştirilip işleme alındı. Mesaj gönderim sonlandırılma tarihinde hata var.Sistem tarihi ile değiştirilip işleme 02 123456 alındı.Bitiş tarihi başlangıç tarihinden küçük girilmiş ise, sistem bitiş tarihine içinde bulunduğu tarihe 24 saat ekler. Sorgu Sonucu : 00 123456 ↓ ↓ İleti veya Hata Durumu Mesaj ID Hata Durumları 20 Mesaj metninde ki problemden dolayı gönderilemedi. 30 Geçersiz Kullanıcı adı veya şifresi. 40 Geçersiz Mesaj Başlığı 50 Kullanıcının yeterli kredisi yok 70 Geçersiz XML formatı 90 Mesaj sistem tarafindan kabul edilmedi. Daha sonra tekrar deneyin 100 Sistem Hatası olustu sistem yöneticinizi arayın SORGULAMA YÖNTEMLERİ 1.Gelen Sms Sorgulama http://api.netgsm.com.tr/xmlgelenmesaj.asp Örnek Şablon: <?xml version=”1.0”?> <mainbody> <header> <company>NETGSM</company> <usercode>KullaniciAdi</usercode> <password>Sifre</password> <startdate>011220130101</startdate> <stopdate>021220130101</stopdate> </header> </mainbody> Sorgu Sonucu : 5xxxxxxxxx Gelen Mesaj 21.09.2012 10:02:45 ↓ ↓ ↓ Gönderen TelefonNo Mesaj Hata Durumları 30 Geçersiz Kullanıcı adı ve şifre 40 Gösterilecek mesaj yok 50 Tarih formatı hatalı 60 Tarih aralığı 30 günden fazla 70 Hatalı XML 2.Gelen Fax Sorgulama http://api.netgsm.com.tr/xmlgelenfax.asp Örnek Şablon: <?xml version=”1.0”?> <mainbody> <header> <company>NETGSM</company> <usercode>KullaniciAdi</usercode> <password>Sifre</password> <startdate>011220130101</startdate> <stopdate>021220130101</stopdate> </header> </mainbody> Mesajın geldiği Tarih Sorgu Sonucu : 8xxxxxxxxx 21.09.2012 276.908 ↓ ↓ ↓ ↓ Tarih Dosya Boyutu İleti Gönderen TelefonNo SUCCESS indir ↓ Durumu İşlem Hata Durumları 30 Geçersiz Kullanıcı adı ve şifre 40 Gösterilecek mesaj yok 50 Tarih formatı hatalı 60 Tarih aralığı 30 günden fazla 70 Hatalı XML 3.Gelen Sesli Mesaj Sorgulama http://api.netgsm.com.tr/xmlgelenseslimesaj.asp Örnek Şablon: <?xml version=”1.0”?> <mainbody> <header> <company>NETGSM</company> <usercode>KullaniciAdi</usercode> <password>Sifre</password> <startdate>011220130101</startdate> <stopdate>021220130101</stopdate> </header> </mainbody> Sorgu Sonucu : "0216xxxxxxx" <0216xxxxxxx> ↓ Gönderen TelefonNo 21.09.2012 18:24:43 27 indir ↓ ↓ ↓ Tarih Hata Durumları 30 Geçersiz Kullanıcı adı ve şifre 40 Gösterilecek mesaj yok 50 Tarih formatı hatalı 60 Tarih aralığı 30 günden fazla 70 Hatalı XML Mesaj Süresi İşlem 4.Gelen Sesli Mesaj Sorgulama http://api.netgsm.com.tr/xmlyuklenenseslimesaj.asp Örnek Şablon: <?xml version='1.0'?> <mainbody> <header> <company>NETGSM</company> <usercode>KullaniciAdi</usercode> <startdate>011220130101</startdate> <stopdate>021220130101</stopdate> </header> </mainbody> Sorgu Sonucu: 232423 0216xxxxxxx ↓ 21.09.2012 18:24:43 ↓ Audio ID Gönderen TelefonNo 27 ↓ ↓ Tarih Mesaj S.resi indir ↓ İşlem Hata Durumları 30 Geçersiz Kullanıcı adı ve şifre 40 Gösterilecek sesli mesaj yok 50 Tarih formatı hatalı 60 Tarih aralığı 30 günden fazla 70 Hatalı XML 5.Gönderici Adı (Mesaj Başlığı) Sogulama http://api.netgsm.com.tr/get_msgheader.asp Parametreler Adı Boyut Tip Açıklama usercode Max.25 string Netgsm sistemine giriş yapmak için kullandığınız kullanıcı adı password Max.25 string Netgsm sistemine giris yapmak için kullandığınız şifre Örnek Şablon: http://api.netgsm.com.tr/get_msgheader.asp?usercode=xxxx&password=xxxx Gönderici adı sorgulama sonucunda ekrana gönderici adıları ya da hata verisi döner. Sorgu Sonucu : * 0850xxxxxxx * 1.Gönderici Adı * 2.Gönderici Adı * 3.Gönderici Adı ... Hata Durumları 30 Kullanıcı bilgisi bulunamadı 6.Kredi Sorgulama http://api.netgsm.com.tr/get_kredi.asp Parametreler Alan Adı Boyut Tip Açıklama usercode Max.25 strin NetGSM'den alınan kullanıcı adı g password Max.25 strin netgsm.com.tr'den alınan kullanıcı şifresi g Örnek Şablon: http://api.netgsm.com.tr/get_kredi.asp?usercode=kullaniciadi&password=sifre Mesajin gönderimi sonucunda ekrana ileti yada hata verisi döner. Sorgu Sonucu : 00 1,905 ↓ ↓ İleti veya Hata Durumu Mesaj ID Sorgu sonucu 00'dan sonraki boşluk kullanıcının kredi miktarı verilir. Hata Durumlari 30 Geçersiz Kullanıcı adı veya şifresi. 7.Paket - Kampanya Sorgulama http://api.netgsm.com.tr/xmlpaketkampanya.asp Örnek Şablon: <?xml version='1.0'?> <mainbody> <header> <usercode>KullaniciAdi</usercode> <password>Sifre</password> <stip>1</stip> </header> </mainbody> Sorgu Sonucu : 6000 Adet ↓ ↓ Kalan Paket Miktar Paket Miktar Türü SMS Hizmeti ↓ Paket Türü Hata Durumlar 30 Geçersiz Kullanıcı adı ve şifre 40 Kullanıcının tanımlı paket yok. 70 XML Hatası 8.Mesaj ID'ye Göre SMS Sorgulama » İleti durumuna göre adetlerinin sorgulanması http://api.netgsm.com.tr/httpbulkrapor.asp Parametreler Alan Adı Tip Açiklama usercode Max.25 string NetGSM'den alınan kullanıcı adı password Max.25 string netgsm.com.tr'den alınan kullanıcı şifresi bulkid int. Sorgulanacak olan Toplu SMS'e ait Buk ID'si int. Mesajın gönderildiği telefon numarasıdır. Örn 1 :5051234567 veya 05051234567 Örn 2 :5051234567,5051234567 veya 05051234567,05051234567 telno Yeni Boyut Max.11 Type Max.1 İnt. Sorgulama tipini belirlemek için kullanılır. 0: Tek bulkid'ye göre sorgulama yapar. 1: Birden çok bulkid'ye göre sorgulama yapar. (Not: Bu durumda bulkid parametresi 43234, 53453, 54332, ....gibi yazılır.) 2: Tarih araligiığında sorgu yapabilmek için kullanılır. (Not: Parametrenin bu değerinde bulkid parametresine girilen değer dikkate alınmaz.) bastar Max.12 date Mesajın gönderilmeye başlanacağı tarih (ddmmyyyyhhii) bittar Max.12 date Mesajın geçerlilik süresinin bittiği tarih (ddmmyyyyhhii) mbaslik Max.11 string Mesajın gönderen kısmında görünecek olan başlıktır. En az 3, en fazla 11 karakter olmalıdır. 0: İletilmeyi bekleyenler 1: İletilmiş olanlar 2: Zaman aşımına uğramış olanlar 3: Hatalı veya kısıtlı numara 4: Operatöre gönderilemedi 11: Operatör tarafından kabul edilmemiş olanlar 12: Gönderim hatası olanlar 13: Mükerrer olanlar 100: Tüm mesaj durumları status Max.1 İnt. version Max.1 İnt. 0: Olursa veya hiç gönderilmezse status değerlerindeki 11,12,13 durumları 2(zaman aşımına uğramış ) olarak kabul edilir. 1: Gönderilirse status değerleri aynen geçerlidir. Yeni 2 : Gönderilirse status değerleri aynen geçerlidir. Rapor detaylı bir şekilde gösterilir. (Operatör, mesaj boyu, iletim tarihi, dönen hata kodu bilgileri de eklenir. ) Hata kodu açıklamaları 0: Hata yok 101: Mesaj Kutusu Dolu 102: Kapalı ya da Kapsama Dışında 103: Meşgul 104: Hat Aktif Değil 105: Hatalı Numara 106: SMS Red, Karaliste 107: Zaman Aşımı 111: Mobil Cihaz Hatası 112: Mobil Cihaz Sms Gönderime Kapalı 113: Mobil Cihaz Desteklemiyor 114: Yönlendirme Başarısız 115: Çağrı Yasaklandı 116: Tanımlanamayan Abone 117: Yasadışı Abone 119: Sistemsel Hata Operatör kodu açıklamaları 10: Vodafone 20: Avea 30: Turkcell 40: Netgsm 50: TTNET Mobil 60: Türktelekom 70: Diğer Operatörler Örnek Şablon: http://api.netgsm.com.tr/httpbulkrapor.asp?usercode=xxxx&password=yyyy&bulkid=32443& type=0&status=0 + Hata olmadığı durumda dönen cevap; • • • 905550000000 905550000001 905550000002 olur. Örnek Şablon: http://api.netgsm.com.tr/httpbulkrapor.asp?usercode=xxxx&password=yyyy&bulkid=32443& type=1&status=0 + Eğer type=1 veya type=2 ise; • • • 53545 905550000000 0 10 1 00.00.0000 00:00:00 0 53545 905550000001 1 20 2 01.05 2014 22:25:00 0 53545 905550000002 2 30 1 01.05.2014 22:24:00 102 Sorgu Sonucu : 53545 505550000000 0 10 1 01.05.14 22:24 0 ↓ ↓ ↓ ↓ ↓ ↓ ↓ Mesaj ID Cep Telefon Mesaj Durumu Operatör Kodu Mesaj Boyu İletilme Tarihi Dönen Hata Kodu 9.Mesaj ID'ye Göre SesliSms Sorgulama » İleti durumuna göre adetlerinin sorgulanması http://api.netgsm.com.tr/httpbulkrapor_seslisms.asp Parametreler Alan Adı Boyut Tip Açiklama usercode Max.25 string NetGSM'den alınan kullanıcı adı password Max.25 string netgsm.com.tr'den alınan kullanıcı şifresi bulkid int. Sorgulanacak olan Toplu SMS'e ait Buk ID'si Type Max.1 int. Sorgulama tipini belirlemek için kullanılır. 0: Tek bulkid'ye göre sorgulama yapar. 1: Birden çok bulkid'ye göre sorgulama yapar. (Not: Bu durumda bulkid parametresi 43234, 53453, 54332, ....gibi yazılır.) 2: Tarih araligiığında sorgu yapabilmek için kullanılır. (Not: Parametrenin bu değerinde bulkid parametresine girilen değer dikkate alınmaz.) bastar Max.12 date Mesajın gönderilmeye başlanacağı tarih (ddmmyyyyhhii) bittar Max.12 date Mesajın geçerlilik süresinin bittiği tarih (ddmmyyyyhhii) status Max.1 Int. 0: Cevaplanmayı bekleyenler 1: Cevaplananlar 2: Cevaplanmayanlar tus Max 2 Int Arama yapıldığında komut edilen tuş numarası. Tuşlanan rakam eğer 10 şeklinde gönderilirse hiç bir tuşa basmayanlar listelenir. Örnek Şablon: http://api.netgsm.com.tr/httpbulkrapor_seslisms.asp?usercode=xxxx&password=yyyy& bulkid=32443&type=0&status=0&tus=1 + Hata olmadığı durumda dönen cevap; Sorgu Sonucu : 53545 0505550000000 0 1 ↓ ↓ ↓ ↓ Mesaj ID Cep Telefon Mesaj Durumu Hata Durumları 30 Geçersiz Kullanıcı adı veya şifresi. 60 Sorgulama sonucunda kayit bulunamadı NOT Bütün numaralar birbirlerinden <BR> kodu ile ayrılmiştir. Tuşlanan Rakam 10.Santral Görüşme Listesi Sorgulama http://api.netgsm.com.tr/xmlsantralgorusme.asp Örnek Şablon: <?xml version='1.0'?> <mainbody> <header> <company>NETGSM</company> <usercode>KullaniciAdi</usercode> <password>Sifre</password> <startdate>010120140101</startdate> <stopdate>070120140101</stopdate> </header> </mainbody> Sorgu Sonucu : 01.01.2014 13:53:00 3129110911 108 https://www.netgsm.com.tr/xx.wav ↓ ↓ ↓ ↓ Tarih Aranan Numara Arayan Numara Süre Ses Dosyası Hata Durumları 30 Geçersiz Kullanıcı adı ve şifre 40 Gösterilecek görüşme yok 50 Tarih formatı hatalı 60 Tarih aralığı 7 günden fazla (Eğer tarih alanlarını boş gönderirseniz bugünden itibaren son 7 günlük listeyi görüntüler) 70 Hatalı XML 11.Ses Görüşme Sorgulaması http://api.netgsm.com.tr/xmlsesgorusme.asp Parametreler Adı Boyut Tip Açıklama usercode Max.25 string Netgsm sistemine giriş yapmak için kullandığınız kullanıcı adı password Max.25 string Netgsm sistemine giris yapmak için kullandığınız şifre date Max.12 date Aramanın yapıldığı tarih ( ddmmyyyyhhii) * Boş bırakılırsa sorgulama yapılan günün kayıtları listelenir. Max.1 Arama yönünü belirlemek için kullanılır. 1: Gelen aramalar integer 2: Giden aramalar 3: Cevapsız aramalar 4: Bütün aramalar direction Örnek Şablon: <?xml version='1.0'?> <mainbody> <header> <company>NETGSM</company> <usercode>KullaniciAdi</usercode> <password>Sifre</password> <date>010520140101</date> <direction>1</direction> </header> </mainbody> Sorgu Sonucu : 3129110911 01.05.2014 13:53:00 00:00:03 1 ↓ ↓ ↓ ↓ Numara Tarih Süre Arama Yönü Hata Durumları 30 Geçersiz Kullanıcı adı ve şifre 40 Gösterilecek görüşme yok 50 Tarih formatı hatalı 70 Hatalı XML ÖRNEK APİ KODLARI 1.ASP Örneği ASP de yazılmış api örneğimize:http://api.netgsm.com.tr/apiornekleri/asp_netgsm.zip adresinden ulasabilirsiniz, Örnek Şablon: Function XMLPOST(ByVal PostAddress, ByVal xmlData) On Error Resume Next Set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP") objXMLHTTP.open "POST",PostAddress,False bjXMLHTTP.send xmlData if Err then Err.Clear XMLPOST = "hata" Set objXMLHTTP = Nothing Exit Function else XMLPOST = objXMLHTTP.responseText Set objXMLHTTP = Nothing end if End Function 2.C# Örneği C# da yazılmış api örneğimize : http://api.netgsm.com.tr/apiornekleri/c_netgsm.zip adresinden ulaşabilirsiniz. Örnek Şablon: private string XMLPOST(string PostAddress,string xmlData) { try { WebClient wUpload = new WebClient(); Byte[] bPostArray = Encoding.ASCII.GetBytes(xmlData); Byte[] bResponse = wUpload.UploadData(PostAddress,"POST",bPostArray); Char[] sReturnChars = Encoding.ASCII.GetChars(bResponse); string sWebPage = new string(sReturnChars); return sWebPage; } catch { return "-1"; } } 3.VB Örneği VB de yazılmış api örneğimize : http://api.netgsm.com.tr/apiornekleri/vb_netgsm.zip adresinden ulaşabilirsiniz Örnek Şablon: Private Function XMLPOST(ByVal PostAddress As String, ByVal xmlData As String) As String { On Error GoTo hata_kontrol Dim XMLSender As New MSXML.XMLHTTPRequest XMLSender.open "POST", PostAddress, False XMLSender.send xmlData XMLPOST = XMLSender.responseText Exit Function hata_kontrol: XMLPOST = "" End Function } 4.VB.NET Örneği Örnek Şablon: .Private Function XMLPOST(ByVal PostAddress As String, ByVal xmlData As String) As String Try Dim wUpload As Net.WebClient = New System.Net.WebClient Dim bPostArray As Byte() = Encoding.ASCII.GetBytes(xmlData) Dim bResponse As Byte() = wUpload.UploadData(PostAddress, "POST", bPostArray) Dim sWebPage As String = Encoding.ASCII.GetChars(bResponse) XMLPOST = sWebPage Catch ex As Exception XMLPOST = "" End Try End Function 5.PHP Örneği PHP de yazılmış api örneğimize : http://api.netgsm.com.tr/apiornekleri/php_netgsm.zip adresinden ulaşabilirsiniz Örnek Şablon: function XMLPOST($PostAddress,$xmlData){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$PostAddress); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt( $ch, CURLOPT_HTTPHEADER, Array("Content-Type: text/xml")); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlData); connection.setRequestMethod("POST"); $result = curl_exec($ch); return $result; 6.DELPHİ Örneği DELPHİ de yazılmış api örneğimize : http://api.netgsm.com.tr/apiornekleri/delphi_netgsm.zip adresinden ulaşabilirsiniz Örnek Şablon: //uses IdHTTP functionxmlpost(url,postdata:string):String; //Dikkat!!! indy bu component 'i ssl destegi vermedigi için url parametresi http:// ile baslamali var IdHTTP1: TIdHTTP; str1:TStringList; begin try try IdHTTP1:=TIdHTTP.Create(nil); str1:=TStringList.Create; str1.Text:=postdata; result:=IdHTTP1.Post(url, str1); except end; finally FreeAndNil(str1); FreeAndNil(IdHTTP1); end; end; 7.JAVA Örneği JAVA de yazılmış api örneğimize : http://api.netgsm.com.tr/apiornekleri/java_netgsm.zip adresinden ulaşabilirsiniz • İmport Java 10. * • İmport Java.Net. * Örnek Şablon: public static void main(String[] args) { System.out.println("SMS Gönderiliyor.."); try{ URL u = new URL("https://api.netgsm.com.tr/xmlbulkhttppost.asp"); URLConnection uc = u.openConnection(); HttpURLConnection connection = (HttpURLConnection) uc; connection.setDoOutput(true); connection.setDoInput(true); connection.setRequestMethod("POST"); OutputStream out = connection.getOutputStream(); OutputStreamWriter wout = new OutputStreamWriter(out, "UTF-8"); wout.write("<?xml version='1.0'?>"+ " <mainbody>"+ " <header>"+ "<company>NETGSM</company>"+ "<usercode>Kullanici_adi</usercode>"+ " <password>Sifre</password>"+ " <startdate></startdate>"+ " <stopdate></stopdate>"+ " <type>1:n</type>"+ " <msgheader>BASLIK</msgheader>"+ " </header>"+ " <body>"+ " </header>"+ " <body>"+ " <msg><![CDATA[Deneme Mesaji]]></msg>"+ " <no>905001234567</no>"+ " </body>"+ " </mainbody>"); wout.flush(); out.close(); InputStream in = connection.getInputStream(); while ((c = in.read()) != -1) System.out.write(c); int c; System.out.println(); in.close(); out.close(); connection.disconnect(); } catch (IOException e) { System.err.println(e); e.printStackTrace(); }}} Durum Açıklama 70 Zorunlu alanlarda (kullanıcı adı, şifre, başlık, mesaj ve telefon) eksik yada hatalı olması 30 Kullanıcı adı veya şifre hatalı 40 Geçersiz başlık 50 Yetersiz bakiye 60 İlgili BulkID rapor kaydı bulunamadı 90 Kanal kapalı 20 Mesaj uzunluğu belirlenen sınırı aştı 100-101 Sistem hatası NETGSM SOAP SERViSi VERİ TİPLERİ Veri Açıklama Key Alanı Servis Methodu Kullanıcı Adı username Sisteme kayıtlı kullanıcı adı. Şifre password Sisteme kayıtlı şifre. Başlık header Sistemde kayıtlı en az 3, en fazla 11 olan mesaj başlığı Mesaj içeriği msg,msg[ ] SMS metninin yer alacağı alandır.Nn sms gönderimlerinde array olarak gönderilmeli. SMS gönderilecek telefonlar gsm[ ] SMS'in gideceği numaraları temsil eder array gönderilmeli Dil kodlama encoding Türkçe karakter desteği isteniyorsa bu alana TR girilmeli. Kanal Seçimi company _200A011A_70 girildiğinde sms başlığında abone numarası gidecektir. Başlama Tarihi startdate İleri tarihli sms gönderildiğinde bağlangıç tarihi Bitiş Tarihi stopdate İleri tarihli sms gönderildiğinde bitiş tarihi Görev Numarası bulkid SMS paketi başarılı bir şekilde iletildi ise geriye dönen görev numarası SMS durumu status Rapor prosedüründe istenilen durumu temsil eder. Toblo-3 de rapor durumları yer almaktadir. Versiyon version Rapor prosedürüne “1” değeri gönderildiğinde tüm rapor durumları geriye döner ve status dikkate alynmaz. “0” oldugunda status dikkate alınır. telno[ ] Sms'in gönderildiği telefon numaralarıdır.Değerler array şeklinde gönderilmerlidir. detail Rapor prosedürüne “1” değeri gönderildiğinde gönderilen sms'in detaylı rapor bilgisi döner. Telefon numarası Detaylı Rapor Yeni Yeni DÖNEN CEVAPLAR Durum Açıklama 70 Zorunlu alanlarda (kullanıcı adı, şifre, başlık, mesaj ve telefon) eksik yada hatalı olması. 30 Kullanıcı adı veya şifre hatalı. 40 Geçersiz başlık. 50 Yetersiz bakiye. 60 İlgili BulkID rapor kaydı bulunamadı. 90 Kanal kapalı. 20 Mesaj uzunluğu belirlenen siniri aştı. 100-101 Sistem hatası. RAPOR DURUMLERI Durum Açıklama 0 İletilmeyi bekleyenler. 1 İletilmiş olanlar. 2 Zaman aşımına uğramış olanlar. 3 Red edilmi?ş olanlar. 4 Hatalı veya kısıtlı numara. 11 Operatör tarafindan kabul edilmemiş olanlar. 12 Gönderim hatası olanlar. 13 Mükerrer olanlar. NETGSM SOAP öRNEKLERi »Servis URL : http://soap.netgsm.com.tr:8080/Sms_webservis/SMS?wsdl Geliştirme yaptığımız her dildeki programınıza kolaylıkla entegre edebilirsiniz. 1.DELPHİ SOAP Örneği api örneğimize :http://api.netgsm.com.tr/soapornekleri/delphisoap.zip adresinden ulaşabilirsiniz 2.JAVA Örneği Java örneği için NetBeans IDE 7.1.1 kullanılmıştır. Gerekli Java sürümü'de kurulu olmasi gerekir. a)File sekmesinden New Project > Java > Java Application seçilir Next e basılır. b) Project Name: Proje adı yazılır ve Finish 'e basılır. c) Oluşturulan proje dosyamıza sağ tıklayıp New > Web Service Client seçilir. d) Gelen pencerede WSDL URL seçip yukaıida belirtilen URL’yi yazınız. e)Web servis sunucusundan gerekli dosyalar aşağıdaki gibi compile edilmiş olmalıdır. f ) SMS servisin altında bulunan prosedür sürükleyip çalışma alanına atarak prosedürleri kullanabilirsiniz. g) Aşağıda Java Örneği bulunmaktadır. String donen_deger=""; //--------------------------1n sms gönderimi------------------------------------------List < String > myList1n = new ArrayList < String >() ; myList1n.add ( "5050000000" ); donen_deger=smsGonder1N( "kullanici_adi", "sifre", null, "baslik", "deneme mesaji", "TR", //dil kodlamasi "210520121215", //baslama tarihi (ileri tarihli sms gönderilecekse) "210520121245");//bitis tarihi (ileri tarihli sms gönderilecekse) System.out.println("1n sms durum="+donen_deger); //--------------------------Nn sms gönderimi------------------------------------------List < String > myListnn_tel = new ArrayList < String >() ; myListnn_tel.add ( "5050000000" ); myListnn_tel.add ( "5420000000" ); myListnn_tel.add ( "5320000000" ); List < String > myListnn_msg = new ArrayList < String >() ; myListnn_msg.add ( " webservis deneme smsi 1" ); myListnn_msg.add ( " webservis deneme smsi 2" ); myListnn_msg.add ( " webservis deneme smsi 3" ); donen_deger=smsGonderNn( "kullanici_adi", "sifre", null, "baslik", myListnn_msg, //mesaj array myListnn_tel, //telefon array "TR", //Dil kodlama "210520121215", //baslama tarihi (ileri tarihli sms gönderilecekse) "210520121245");//bitis tarihi (ileri tarihli sms gönderilecekse) System.out.println("Nn sms durum="+donen_deger); //--------------------------Kredi Sorgula------------------------------------------donen_deger=kredi("kullanici_adi", "sifre"); System.out.println("kredi durum="+donen_deger); // --------------------------Rapor Sorgula------------------------------------------donen_deger=rapor("kullanici_adi", "sifre", "bulkid", 1, 0); System.out.println("rapor durum="+donen_deger); //--------------------------GelenSMS Sorgula-------------------------------------donen_deger=gelensms("kullanici_adi", "sifre"); System.out.println("Gelen SMS ler="+donen_deger); »Örneği indirebileceğiniz adres : http://api.netgsm.com.tr/netgsm_soap_client.zip 3.PHP Örneği api örneğimize :http://api.netgsm.com.tr/soapornekleri/phpsoap.zip adresinden ulaşabilirsiniz. Örnek Şablon: PHP de Soap servisimizi kullanmak istiyorsanız öncelikle soap d11 nizi kurmanız gerekmektedir. <?php $client = new SoapClient("http://soap.netgsm.com.tr:8080/Sms_webservis/SMS?wsdl"); // 1-n mesajlarınızda (1 mesajı n tane telefon numarasına gönderim) $Result = $client->sms_gonder_1n(array('username'=>'kullanici_adiniz', 'password' => ' 'sifreniz', 'company' => '','header' => 'gonderici_adiniz','msg' => 'Üü Ğğ İı Öö Çç Şş Öö','gsm' => 'cep_no','encoding' => 'TR','startdate' => '','stopdate' => '',)); // Mesaj Gönderirken print_r($Result); echo "Karsi sunucudaki kullanilabilir metodlar:<br/><pre>"; $allMethods = $client->__getFunctions(); print_r($allMethods); echo "</pre>"; echo "<br/><pre>"; echo "Karsi sunucudaki kullanilabilir Alanları:<br/><pre>"; $allTypes = $client->__getTypes(); print_r($allTypes); echo "</pre>"; ?> 4.C# Örneği Api örneğimize : http://api.netgsm.com.tr/soapornekleri/csharpsoap.zip adresinden ulaşabilirsiniz. Örnek Şablon: // 1-n mesajlarınızda (1 mesajı n tane telefon numarasına gönderim) String[] array_tel = new String[] { "xxxxxxxxxx", "xxxxxxxxxx" }; netgsm.smsnnClient sms_gonder = new netgsm.smsnnClient(); String gelen_cevap = sms_gonder.sms_gonder_1n("kullanici_adi", "sifre", "", "gonderici_Adi", "test mesaj" + DateTime.Now, array_tel, "TR", "", ""); MessageBox.Show(gelen_cevap); // N-n mesajlarınızda (N tane mesajı n tane telefon numarasına gönderim) String[] array_tel = new String[] { "xxxxxxxxxx", "xxxxxxxxxx" }; String[] array_msg = new String[] { "test mesajı" + DateTime.Now, "Tesst" + DateTime.Now }; netgsm.smsnnClient sms_gonder = new netgsm.smsnnClient(); String gelen_cevap = sms_gonder.sms_gonder_nn("kullanici_adi", "sifre", "", "gonderici_Adi", array_msg, array_tel, "TR", "", ""); MessageBox.Show(gelen_cevap); VER 6.1.0 Sürümü İle Gelen Yenilikler Mesaj ID'ye Göre SMS Sorgulama » İleti durumuna göre adetlerinin sorgulanması http://api.netgsm.com.tr/httpbulkrapor.asp Parametreler Alan Adı Tip Açiklama usercode Max.25 string NetGSM'den alınan kullanıcı adı password Max.25 string netgsm.com.tr'den alınan kullanıcı şifresi bulkid int. Sorgulanacak olan Toplu SMS'e ait Buk ID'si int. Mesajın gönderildiği telefon numarasıdır. Örn 1 :5051234567 veya 05051234567 Örn 2 :5051234567,5051234567 veya 05051234567,05051234567 telno Yeni Boyut Max.11 Type Max.1 İnt. Sorgulama tipini belirlemek için kullanılır. 0: Tek bulkid'ye göre sorgulama yapar. 1: Birden çok bulkid'ye göre sorgulama yapar. (Not: Bu durumda bulkid parametresi 43234, 53453, 54332, ....gibi yazılır.) 2: Tarih araligiığında sorgu yapabilmek için kullanılır. (Not: Parametrenin bu değerinde bulkid parametresine girilen değer dikkate alınmaz.) bastar Max.12 date Mesajın gönderilmeye başlanacağı tarih (ddmmyyyyhhii) bittar Max.12 date Mesajın geçerlilik süresinin bittiği tarih (ddmmyyyyhhii) mbaslik Max.11 string Mesajın gönderen kısmında görünecek olan başlıktır. En az 3, en fazla 11 karakter olmalıdır. status Max.1 İnt. 0: İletilmeyi bekleyenler 1: İletilmiş olanlar 2: Zaman aşımına uğramış olanlar 3: Hatalı veya kısıtlı numara 4: Operatöre gönderilemedi 11: Operatör tarafından kabul edilmemiş olanlar 12: Gönderim hatası olanlar 13: Mükerrer olanlar 100: Tüm mesaj durumları 0: Olursa veya hiç gönderilmezse status değerlerindeki 11,12,13 durumları 2(zaman aşımına uğramış ) olarak kabul edilir. 1: Gönderilirse status değerleri aynen geçerlidir. Yeni 2: Gönderilirse status değerleri aynen geçerlidir. Rapor detaylı bir şekilde gösterilir. (Operatör, mesaj boyu, iletim tarihi, dönen hata kodu bilgileri de eklenir. ) version Max.1 İnt. Hata kodu açıklamaları 0: Hata yok 101: Mesaj Kutusu Dolu 102: Kapalı ya da Kapsama Dışında 103: Meşgul 104: Hat Aktif Değil 105: Hatalı Numara 106: SMS Red, Karaliste 107: Zaman Aşımı 111: Mobil Cihaz Hatası 112: Mobil Cihaz Sms Gönderime Kapalı 113: Mobil Cihaz Desteklemiyor 114: Yönlendirme Başarısız 115: Çağrı Yasaklandı 116: Tanımlanamayan Abone 117: Yasadışı Abone 119: Sistemsel Hata Operatör kodu açıklamaları 10: Vodafone 20: Avea 30: Turkcell 40: Netgsm 50: TTNET Mobil 60: Türktelekom 70: Diğer Operatörler Örnek Şablon 1 : http://api.netgsm.com.tr/httpbulkrapor.asp?usercode=xxxx&password=yyyy&bulkid=32443& type=0&status=0 + Hata olmadığı durumda dönen cevap; • • • 905550000000 905550000001 905550000002 olur. Örnek Şablon 2 : http://api.netgsm.com.tr/httpbulkrapor.asp?usercode=xxxx&password=yyyy&bulkid=32443& type=1&status=0 + Eğer type=1 veya type=2 ise; 53545 905550000000 0 10 1 00.00.0000 00:00:00 0 53545 905550000001 1 20 2 01.05 2014 22:25:00 0 53545 905550000002 2 30 1 01.05.2014 22:24:00 102 • • • Sorgu Sonucu : 53545 505550000000 0 10 1 01.05.14 22:24 0 ↓ ↓ ↓ ↓ ↓ ↓ ↓ Mesaj ID Cep Telefon Mesaj Durumu Operatör Kodu Mesaj Boyu İletilme Tarihi Dönen Hata Kodu Ses Görüşme Sorgulama http://api.netgsm.com.tr/xmlsesgorusme.asp Parametreler Adı Boyut Tip Açıklama usercode Max.25 string Netgsm sistemine giriş yapmak için kullandığınız kullanıcı adı password Max.25 string Netgsm sistemine giris yapmak için kullandığınız şifre date Max.12 date Aramanın yapıldığı tarih ( ddmmyyyyhhii) * Boş bırakılırsa sorgulama yapılan günün kayıtları listelenir. Max.1 Arama yönünü belirlemek için kullanılır. 1: Gelen aramalar integer 2: Giden aramalar 3: Cevapsız aramalar 4: Bütün aramalar direction Örnek Şablon: <?xml version='1.0'?> <mainbody> <header> <company>NETGSM</company> <usercode>KullaniciAdi</usercode> <password>Sifre</password> <date>010520140101</date> <direction>1</direction> </header> </mainbody> Sorgu Sonucu : 3129110911 ↓ 01.05.2014 13:53:00 ↓ 00:00:03 1 ↓ ↓ Numara Tarih Süre Arama Yönü Hata Durumları 30 Geçersiz Kullanıcı adı ve şifre 40 Gösterilecek görüşme yok 50 Tarih formatı hatalı 70 Hatalı XML TÜRKÇE GÖNDERİLEN MESAJLARDA KARAKTER HESAPLAMA Türkçe gönderilen mesajlarda "ğ", "Ğ", "ş", "Ş", "ı", "İ", "ç" karakterleri çift sayılır. Bunların dışındakiler tek karakter sayılır. Bir mesajda türkçe dil seçeneği seçilerek işlem yapılıyorsa 1 boy SMS 160 karakter üzerinden değil 155 karakter üzerinden hesaplanır. Burada düşen 5 karakter mesajın Türkçe Karakterleride desteklemesi için harcanıyor, yani 155 tane türkçe karakter kullanabilirim demek değildir. 155 tane karakter hakkım var, içinde Türkçe karakterlerde kullanabilirim anlamına gelir. Mesela "ÖzTürkçe" kelimesini inceleyelim. Web arayüzümüzden Türkçe göndermek istiyorum diye işaretlenince veya api ile gönderirken TR parametresini gönderince otomatik olarak (160-5) 155 karakter hakkımız kaldı. Şimdi Ö yazdık. --> Ö --> Türkçe değil -->Kalan karakter (155-1) 154 Şimdi Öz yazdık. --> z --> Türkçe değil -->Kalan karakter (154-1) 153 Şimdi ÖzT yazdık. --> T --> Türkçe değil -->Kalan karakter (153-1) 152 Şimdi ÖzTü yazdık.--> ü --> Türkçe değil -->Kalan karakter (152-1) 151 Şimdi ÖzTür yazdık. --> r --> Türkçe değil -->Kalan karakter (151-1) 150 Şimdi ÖzTürk yazdık. --> k --> Türkçe değil -->Kalan karakter (150-1) 149 Şimdi ÖzTürkç yazdık. --> ç --> Türkçe -->Kalan karakter (149-2) 147 Şimdi ÖzTürkçe yazdık. --> e --> Türkçe değil -->Kalan karakter (147-1) 146 Yukarıda görüldüğü gibi eğer kelimede türkçe karakter içeren bir harf yer alıyorsa hesaplamada 2 karakter harcar. "çççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççç ç" Burada 77 tane ç harfi var her biri 2 karakter harcar 2x77=154 [ boy=1 ] yani bundan sonra yazılan herhangi bir türkçe karakter 154+2=156 [ boy=2 ] Şeklinde hesaplanır.
© Copyright 2025 Paperzz