Toplu SMS api ile entegre olun.
HTTP API Teknik Dokümantasyonu
1. API ile
çalışmaya başlamadan önce ilgili yazılım geliştirmeleri yaparken şu geçici
hesabı kullanabilirsiniz : Kullanıcı adı : “test” Şifre : “test”. Bu geçici
hesap ile yaptığınız işlemler tamamen sanal olarak yürütülür ve yine sanal geri
dönüşler alınır.
2. API ile
çalışmaya başlamak için http://sms.digicell.com.tr adresinde yeni üyelik
oluşturun, giriş yapın. Kullanıcı İşlemleri -> Api Ayarları -> Api Hesabı
Oluştur yolunu izleyin. Kullanıcı adınız aynı olmakla birlikte şifre olarak API
SECRET olarak belirtilen 32 karakterlik ifadeyi kullanın. (Web şifreniz ile API
şifreniz farklı şeylerdir)
3. SMS
yollayabilmek için hesabınızda kredi yüklendiğinden ve mesaj başlığınızın
(originator) onaylanmış olduğuna emin olun.
4. API
istekleri sunucularımızın 8080 numaralı portuna HTTP GET veya HTTP POST
şeklinde gerçekleştirilir.
5. HTTP POST
yönteminde içerik XML olarak formatlanmaktadır.
6. API
isteklerinde istek sayısı olarak bir sınırlama yoktur.
7. Destek ve sorularınız için info@digicell.com.tr e-posta adresinden iletişime geçebilirsiniz.
(blacklist’e
ekleme)
Örnek :
İstek Adresi |
http://api.sms.digicell.com.tr:8080/api/blacklistadd/v1? |
|
username=test&password=test&gsm=5xxxxxxxxx |
|
|
Cevap (Başarısız) |
88 |
|
|
Cevap (Başarılı) |
00 |
|
|
Giden
Parametreler
Parametreler :
Parametre |
Tip |
Açıklama |
|
|
|
username |
String |
Web kullanıcı adınız |
|
|
|
password |
String |
Api Hesabı bölümünde görüntülenen
API SECRET ifadesi |
|
|
|
Gsm |
String |
Kara listeye eklenecek telefon
numarası. |
|
|
|
Dönüş
Değerleri
•
Tüm dönüş kodları metinden oluşur.
•
Başarısız dönüş olduğunda sadece kodun kendisini geri döner.
Başarısız Dönüşler :
•
Aşağıdaki hata kodları isteği yapan tarafın düzeltmesi
gereken durumları belirtir.
Kod |
İsim |
Açıklama |
|
|
|
95 |
USE_GET_METHOD |
İsteği HTTP GET ile yollayınız |
|
|
|
93 |
MISSING_GET_PARAMS |
GET parametrelerinde eksik var |
|
|
|
87 |
WRONG_USER_OR_PASSWORD |
Kullanıcı adı veya şifre hatalı |
|
|
|
78 |
ALREADY_BLACKLISTED |
Numara zaten kara listeye ekli. |
|
|
|
Başarılı Dönüşler :
Kod |
İsim |
Açıklama |
00 |
SUCCESS |
İşlem başarı ile sonlandı. |
|
|
|
(kara
listedeki numaraların tümünü verir)
Örnek :
İstek Adresi |
http://api.sms.digicell.com.tr:8080/api/blacklistexport/v1? |
|
username=test&password=test |
|
|
Cevap (Başarısız) |
87 |
|
|
Cevap (Başarılı) |
00 905xxxxxxxx|905xxxxxxxx|
905xxxxxxxx |
|
|
Giden
Parametreler
Parametreler :
Parametre |
Tip |
Açıklama |
|
|
|
username |
String |
Web kullanıcı adınız |
|
|
|
password |
String |
Api Hesabı bölümünde görüntülenen
API SECRET ifadesi |
|
|
|
Dönüş
Değerleri
•
Tüm dönüş kodları metinden oluşur.
•
Başarısız dönüş olduğunda sadece kodun kendisini geri döner.
• Başarılı
dönüşlerde koddan sonra bir boşluk karakteri bırakılır ve | (pipe) işareti ile
ayrılmış biçimde yasaklı telefon numaraları döner. Eğer tek yasaklı numara
varsa, içerikte | işareti bulunmaz.
Başarısız Dönüşler :
•
Aşağıdaki hata kodları isteği yapan tarafın düzeltmesi
gereken durumları belirtir.
Kod |
İsim |
Açıklama |
|
|
|
95 |
USE_GET_METHOD |
İsteği HTTP GET ile yollayınız |
|
|
|
93 |
MISSING_GET_PARAMS |
GET parametrelerinde eksik var |
|
|
|
87 |
WRONG_USER_OR_PASSWORD |
Kullanıcı adı veya şifre hatalı |
|
|
|
Başarılı Dönüşler :
Kod |
İsim |
Açıklama |
00 |
SUCCESS |
İşlem başarı ile sonlandı. |
|
|
|
|
Başlık Sorgulama |
|
(originator sorgulama) |
Örnek : |
|
|
|
İstek Adresi |
http://api.sms.digicell.com.tr:8080/api/originator/v1? |
|
username=test&password=test |
|
|
Cevap (Başarısız) |
87 |
|
|
Cevap (Başarılı) |
00 BASLIK1|BASLIK2|BASLIK3 |
|
|
|
Giden Parametreler |
Parametreler : |
|
Parametre |
Tip |
Açıklama |
|
|
|
username |
String |
Web kullanıcı adınız |
|
|
|
password |
String |
Api Hesabı bölümünde görüntülenen
API SECRET ifadesi |
|
|
|
Dönüş
Değerleri
•
Tüm dönüş kodları metinden oluşur.
•
Başarısız dönüş olduğunda sadece kodun kendisini geri döner.
• Başarılı
dönüşlerde koddan sonra bir boşluk karakteri bırakılır ve | (pipe) işareti ile
ayrılmış biçimde onaylanmış sms başlıkları döner. Eğer tek onaylanmış başlık
varsa, içerikte | işareti bulunmaz.
Başarısız Dönüşler :
•
Aşağıdaki hata kodları isteği yapan tarafın düzeltmesi
gereken durumları belirtir.
Kod |
İsim |
Açıklama |
|
|
|
95 |
USE_GET_METHOD |
İsteği HTTP GET ile yollayınız |
|
|
|
93 |
MISSING_GET_PARAMS |
GET parametrelerinde eksik var |
|
|
|
87 |
WRONG_USER_OR_PASSWORD |
Kullanıcı adı veya şifre hatalı |
|
|
|
Başarılı Dönüşler :
Kod |
İsim |
Açıklama |
00 |
SUCCESS |
İşlem başarı ile sonlandı. |
|
|
|
|
Kredi Sorgulama |
Örnek : |
|
|
|
İstek Adresi |
http://api.sms.digicell.com.tr:8080/api/credit/v1?username=test&password=test |
|
|
Cevap (Başarısız) |
87 |
|
|
Cevap (Başarılı) |
00 15600 |
|
|
|
Giden Parametreler |
Parametreler : |
|
Parametre |
Tip |
Açıklama |
|
|
|
username |
String |
Web kullanıcı adınız |
|
|
|
password |
String |
Api Hesabı bölümünde görüntülenen
API SECRET ifadesi |
|
|
|
Dönüş
Değerleri
•
Tüm dönüş kodları 2 basamaklı sayılardan oluşur.
•
Başarısız dönüş olduğunda sadece kodun kendisini geri döner.
•
Başarılı dönüşlerde koddan sonra bir boşluk karakteri
bırakılır ve kredi miktarı döner.
Başarısız Dönüşler :
•
Aşağıdaki hata kodları isteği yapan tarafın düzeltmesi
gereken durumları belirtir.
Kod |
İsim |
Açıklama |
|
|
|
95 |
USE_GET_METHOD |
İsteği HTTP GET ile yollayınız |
|
|
|
93 |
MISSING_GET_PARAMS |
GET parametrelerinde eksik var |
|
|
|
87 |
WRONG_USER_OR_PASSWORD |
Kullanıcı adı veya şifre hatalı |
|
|
|
Başarılı Dönüşler :
Kod |
İsim |
Açıklama |
00 |
SUCCESS |
İşlem başarı ile sonlandı. |
|
|
|
• 1-N
tipi mesajlaşma aynı mesaj metnini bir veya daha fazla numaraya yollamak
amacıyla tercih edilir. N-N tipi mesajlaşmada ise her numaraya farklı mesaj
metni gönderilebilir.
• Aşağıda
gri arkaplana sahip olan satırlar opsiyonel özellikleri ifade eder. Bu
özellikler kullanılmayacaksa XML yapısından kaldırılmalıdır, sadece gerekli
olduğunda eklenmelidir.
• Son
2 dakika içinde aynı SMS'i göndermeye çalışırsanız hata alırsınız. (Sistem bunu
engeller)
•
Boş SMS gönderilemez.
Örnek :
İstek Adresi |
|
http://api.sms.digicell.com.tr:8080/api/smspost/v1 |
|
|
|
|
|
İstek Tipi |
|
1-N Tipi
Mesajlaşma |
|
|
|
|
|
İstek İçeriği |
|
<sms> |
|
|
|
<username>test</username> |
|
|
|
<password>test</password> |
|
|
|
<header>BAŞLIK</header> |
|
|
|
<validity>2880</validity> |
|
|
|
<sendDateTime>2015.7.23.9.30.0</sendDateTime> |
|
|
|
<message> |
|
|
|
<gsm> |
|
|
|
<no>905559998877</no> |
|
|
|
<no>905559998866</no> |
|
|
|
</gsm> |
|
|
|
<msg><![CDATA[-MESAJ-METNİ-1-]]></msg> |
|
|
|
</message> |
|
|
|
</sms> |
|
|
|
|
|
İstek Tipi |
|
N-N Tipi
Mesajlaşma |
|
|
|
|
|
İstek İçeriği |
|
<sms> |
|
|
|
<username>test</username> |
|
|
|
<password>test</password> |
|
|
|
<header>BAŞLIK</header> |
|
|
|
<validity>2880</validity> |
|
|
|
<sendDateTime>2015.7.23.9.30.0</sendDateTime> |
|
|
|
<messages> |
|
|
|
<mb><no>905559998877</no><msg><![CDATA[-MESAJ-METNİ-1-]]></msg></mb> |
|
|
|
<mb><no>905559998866</no><msg><![CDATA[-MESAJ-METNİ-2-]]></msg></mb> |
|
|
|
</messages> |
|
|
|
</sms> |
|
|
|
|
|
Cevap (Başarısız) |
89 |
|
|
|
|
|
|
Cevap (Başarılı) |
00 77300600 |
|
|
|
|
|
|
• Parametreler
boş bırakılmamalıdır, aksi halde 89 yani WRONG_XML_FORMAT hatası ile
karşılaşılır.
Parametreler :
Parametre |
Tip |
Açıklama |
|
|
|
username |
String |
Web kullanıcı adınız |
|
|
|
password |
String |
Api Hesabı bölümünde görüntülenen
API SECRET ifadesi |
|
|
|
header |
String |
Onaylanmış mesaj başlıklarınızdan
biri. Bu ifade büyük-küçük harf |
|
|
duyarlıdır. Max 11 karakterdir. |
|
|
|
validity |
Integer |
Mesajın geçerlilik süresi. (dakika
cinsinden) Min 1, Max 2880 olabilir. |
|
|
2880 değeri 48*60 şeklinde
hesaplanır, yani 48 saate tekabül eder. Hatalı |
|
|
değerler sistem tarafından 2880
olarak değiştirilir ve öyle kullanılır. |
|
|
|
sendDateTime |
String |
Opsiyonel bir parametredir.
Mesajın gönderileceği ileri bir tarihi işaret |
|
|
eder. Örneğin : “2015.7.23.9.30.0”
ifadesi 2015 yılı, 7. ay, 23. gün, saat |
|
|
09:30:00 manasına gelir. Tüm
parametreler “.” (nokta) karakteri ile |
|
|
birbirinde ayrılmıştır. Zamanı
geldiğinde sistem mesajı otomatik olarak |
|
|
yollar. Eğer geçmiş zamanı
gösteren bir tarih bilgisi yollanırsa sistem |
|
|
SMS'i bekletmeden gönderir.
Mesajın gönderim tarihi gelmeden önce |
|
|
yönetim panelinden mesaja ulaşıp
müdahale etme imkanınız |
|
|
bulunmaktadır. |
|
|
|
no |
String |
Telefon numarası. Tüm numaralar
Türkiye içi numaralardır. Numaralar |
|
|
10, 11 veya 12 karakter olabilir.
Sistem bu numaraları 12 karaktere |
|
|
tamamlar ve öyle kullanır. İletim
raporlarında da 12 karakter olarak |
|
|
raporlar. Bu belirtilenler
dışında, daha farklı uzunluklara sahip olan |
|
|
numaralara mesaj gönderilmez,
iletim raporlarında numara aynen |
|
|
belirtilir, iletim durumu ise başarısız
olarak yansıtılır. |
|
|
|
msg |
String |
Gönderilecek olan mesaj metnidir.
Metin içinde XML'e has özel |
|
|
karakterler bulunabilir. Böyle
durumlarda hataların önüne geçmek |
|
|
amacıyla mesaj metninin soluna
“<![CDATA[“ ve sağına “]]>” |
|
|
ifadelerinin eklenmesini tavsiye
etmekteyiz. Karakter seti ve boy |
|
|
hesaplamaları ile ilgili detaylar
için dokümanın sonlarında özel bir başlık |
|
|
yer almaktadır, detaylar için
ilgili bölüme bakınız. |
|
|
|
•
Tüm dönüş kodları 2 basamaklı sayılardan oluşur.
•
Başarısız dönüş olduğunda sadece kodun kendisini geri döner.
• Başarılı
dönüşlerde koddan sonra bir boşluk karakteri bırakılır ve daha sonra bu
gönderim ile ilgili iletim raporu sorgusunda kullanılacak olan özgün (unique)
bir sayısal ifade döner. ( Kısaca buna dlrId diyoruz ) Gelecekte iletim raporu
sorgulanacaksa bu ifadeyi kaydetmeniz ve sorgu sırasında parametre olarak
göndermeniz gerekmektedir.
Başarısız Dönüşler 1 :
• Normal
şartlarda asla karşılaşmamanız gereken bir hata kodudur. Hatanın kaynağı sunucu
veya istemci taraflı olabilir. Yoğun olarak bu hatayı alırsanız lütfen
iletişime geçiniz.
Kod |
İsim |
Açıklama |
|
|
|
99 |
UNKNOWN_ERROR |
Henüz dokümante edilmemiş bir
hatayı belirtir. |
|
|
|
Başarısız Dönüşler 2 :
•
Aşağıdaki hata kodları isteği yapan tarafın düzeltmesi
gereken durumları belirtir.
Kod |
İsim |
Açıklama |
|
|
|
97 |
USE_POST_METHOD |
İsteği HTTP POST ile yollayınız |
|
|
|
91 |
MISSING_POST_DATA |
POST verisi okunamadı veya yok |
|
|
|
89 |
WRONG_XML_FORMAT |
POST verisi XML olarak parse edilemedi |
|
|
|
87 |
WRONG_USER_OR_PASSWORD |
Kullanıcı adı veya şifre hatalı |
|
|
|
85 |
WRONG_SMS_HEADER |
Belirttiğiniz mesaj başlığı
bulunamadı veya |
|
|
onaylanmamış |
|
|
|
84 |
WRONG_SEND_DATE_TIME |
İleri tarihli gönderim zamanı
hatalı bir formata |
|
|
sahip veya 1 yıldan daha ileri bir
zamanı |
|
|
gösteriyor |
|
|
|
83 |
EMPTY_SMS |
Mesaj metni ve numaralar
incelendikten sonra |
|
|
sistem yollanacak bir SMS
oluşturmaya yetecek |
|
|
en az 1 numara ve en az 1
karakterden oluşan |
|
|
mesaj metnine sahip olamadı.
Gönderim |
|
|
yapılacak verilerin yeterli
olmadığına karar |
|
|
verdi. |
|
|
|
81 |
NOT_ENOUGH_CREDITS |
Gönderilecek olan mesaj için
yeterli krediye |
|
|
sahip değilsiniz. |
|
|
|
77 |
DUPLICATED_MESSAGE |
Son 2 dakika içinde aynı SMS'in
gönderilmesi |
|
|
durumu (Sistem bunu engeller) |
|
|
|
Başarılı Dönüşler :
Kod |
İsim |
Açıklama |
00 |
SUCCESS |
İşlem başarı ile sonlandı. |
|
|
|
•
Zorunlu olmadıkça bu yöntemi tercih etmeyiniz.
•
Bu yöntem en temel özellikleri ile HTTP GET metoduyla SMS
gönderebilmek için kullanılır. Tek numaraya tek SMS gönderebilirsiniz.
• Bu
özellik bazı özel cihazlardan SMS gönderebilmesi amacıyla sonradan eklenmiştir.
Bu yöntem SMS göndermeyle ilgili tüm özellikleri içermez. Dolayısıyla
ihtiyacınızı karşılamıyorsa bir üst başlıktaki orjinal yöntemi kullanınız.
•
Son 2 dakika içinde aynı SMS'i göndermeye çalışırsanız hata
alırsınız. (Sistem bunu engeller)
•
Boş SMS gönderilemez.
Örnek :
İstek Adresi |
http://api.sms.digicell.com.tr:8080/api/smsget/v1 |
|
|
İstek |
username |
Parametreleri |
password |
|
header |
|
gsm |
|
message |
|
|
İstek Örneği |
http://api.sms.digicell.com.tr:8080/api/smsget/v1? |
|
username=test&password=test&header=BAŞLIK&gsm=905559998877&messa |
|
ge=MESAJ%20TEST |
|
|
Cevap (Başarısız) |
93 |
|
|
Cevap (Başarılı) |
00 77300600 |
|
|
• Parametreler
boş bırakılmamalıdır, aksi halde 83 yani MISSING_GET_PARAMS hatası ile
karşılaşılır.
Parametreler :
Parametre |
Tip |
Açıklama |
|
|
|
username |
String |
Web kullanıcı adınız |
|
|
|
password |
String |
Api Hesabı bölümünde görüntülenen
API SECRET ifadesi |
|
|
|
header |
String |
Onaylanmış mesaj başlıklarınızdan
biri. Bu ifade büyük-küçük harf |
|
|
duyarlıdır. Max 11 karakterdir. |
|
|
|
no |
String |
Telefon numarası. Tüm numaralar
Türkiye içi numaralardır. Numaralar |
|
|
10, 11 veya 12 karakter olabilir.
Sistem bu numaraları 12 karaktere |
|
|
tamamlar ve öyle kullanır. İletim
raporlarında da 12 karakter olarak |
|
|
raporlar. Bu belirtilenler
dışında, daha farklı uzunluklara sahip olan |
|
|
numaralara mesaj gönderilmez,
iletim raporlarında numara aynen |
|
|
belirtilir, iletim durumu ise
başarısız olarak yansıtılır. |
|
|
|
msg |
String |
Gönderilecek olan mesaj metnidir.
GET yöntemiyle gönderilen mesajın |
|
|
içindeki bazı karakterler
dönüştürülmek zorundadır. (Bu teknik detay |
|
|
HTTP GET yönteminin çalışma
prensibi ile ilgilidir) Örneğin ' ' (yani |
|
|
boşluk) karakteri '%20' şeklinde
ifade edilmelidir. Mesaj metnini |
|
|
dönüştürmek için google'da “URL
Encoder” ifadesini aratarak ilgili |
|
|
dönüşümü yapabileceğiniz web
sayfalarına ulaşabilirsiniz. Karakter seti |
|
|
ve boy hesaplamaları ile ilgili
detaylar için dokümanın sonlarında özel bir |
|
|
başlık yer almaktadır, detaylar
için ilgili bölüme bakınız. |
|
|
|
•
Tüm dönüş kodları 2 basamaklı sayılardan oluşur.
•
Başarısız dönüş olduğunda sadece kodun kendisini geri döner.
• Başarılı
dönüşlerde koddan sonra bir boşluk karakteri bırakılır ve daha sonra bu
gönderim ile ilgili iletim raporu sorgusunda kullanılacak olan özgün (unique)
bir sayısal ifade döner. ( Kısaca buna dlrId diyoruz ) Gelecekte iletim raporu
sorgulanacaksa bu ifadeyi kaydetmeniz ve sorgu sırasında parametre olarak
göndermeniz gerekmektedir.
Başarısız Dönüşler 1 :
• Normal
şartlarda asla karşılaşmamanız gereken bir hata kodudur. Hatanın kaynağı sunucu
veya istemci taraflı olabilir. Yoğun olarak bu hatayı alırsanız lütfen
iletişime geçiniz.
Kod |
İsim |
Açıklama |
|
|
|
99 |
UNKNOWN_ERROR |
Henüz dokümante edilmemiş bir
hatayı belirtir. |
|
|
|
Başarısız Dönüşler 2 :
•
Aşağıdaki hata kodları isteği yapan tarafın düzeltmesi
gereken durumları belirtir.
Kod |
İsim |
Açıklama |
|
|
|
95 |
USE_GET_METHOD |
İsteği HTTP GET ile yollayınız |
|
|
|
93 |
MISSING_GET_PARAMS |
GET parametrelerinde eksik var |
|
|
|
87 |
WRONG_USER_OR_PASSWORD |
Kullanıcı adı veya şifre hatalı |
|
|
|
85 |
WRONG_SMS_HEADER |
Belirttiğiniz mesaj başlığı
bulunamadı veya |
|
|
onaylanmamış |
|
|
|
83 |
EMPTY_SMS |
Mesaj metni ve numaralar
incelendikten sonra |
|
|
sistem yollanacak bir SMS
oluşturmaya yetecek |
|
|
en az 1 numara ve en az 1
karakterden oluşan |
|
|
mesaj metnine sahip olamadı.
Gönderim |
|
|
yapılacak verilerin yeterli
olmadığına karar |
|
|
verdi. |
|
|
|
81 |
NOT_ENOUGH_CREDITS |
Gönderilecek olan mesaj için
yeterli krediye |
|
|
sahip değilsiniz. |
|
|
|
77 |
DUPLICATED_MESSAGE |
Son 2 dakika içinde aynı SMS'in
gönderilmesi |
|
|
durumu (Sistem bunu engeller) |
|
|
|
Başarılı Dönüşler :
Kod |
İsim |
Açıklama |
00 |
SUCCESS |
İşlem başarı ile sonlandı. |
|
|
|
• SMS
gönderimi yapıldıktan hemen sonra DLR isteği yaparsanız hata alabilirsiniz.
Sistem mesajı göndermekle ilgileniyor olabilir ve DLR raporunu oluşturacak olan
veriler henüz hazır olmayabilir.
•
DLR isteğini, ilk olarak SMS gönderiminden sonraki 90. veya
180. saniyede yapmanızı tavsiye ederiz. (Sistem ilk olarak 60. saniyede DLR
içeriğini güncelleyen bir görevi başlatır. 48 saat içinde başlarda daha sık
olmak üzere sonlara doğru daha da seyrekleşen bir kural üstünden DLR içeriği
güncellenmektedir)
• Eğer
belirttiğiniz tüm numaralara SMS ulaşmış ise DLR raporu 48 saat dolmadan önce
tamamlanabilir, yani son halini alabilir. Bunu başarılı dönüş koduna bakarak
anlayabilirsiniz.
• Eğer
gönderim listenizdeki numaralardan en az biri 48 saat boyunca kapalı kalmış ise
DLR raporunun son halini alması toplamda 48 saat + 10 dakika gibi bir zaman
alır. Bu 48 saat boyunca, DLR raporunun henüz son halini almadığı bilgisini
başarılı dönüş koduna bakarak anlayabilirsiniz.
Örnek :
İstek Adresi |
http://api.sms.digicell.com.tr:8080/api/dlr/v1? |
|
username=test&password=test&id=123456 |
|
|
Cevap (Başarısız) |
93 |
|
|
Cevap (Başarılı) |
25|905559998877 0|905559998866
5|905559998855 6|905559998844 9 |
|
|
Giden
Parametreler
Parametreler :
Parametre |
Tip |
Açıklama |
|
|
|
username |
String |
Web kullanıcı adınız |
|
|
|
password |
String |
Api Hesabı bölümünde görüntülenen
API SECRET ifadesi |
|
|
|
id |
Integer |
SMS gönderimi sonrası sistem
tarafından oluşturulan ve istemciye |
|
|
gönderilen dlrId isimli özgün
(unique) sayısal ifade. |
|
|
|
•
Tüm dönüş kodları 2 basamaklı sayılardan oluşur.
•
Başarısız dönüş veya bilgilendirme dönüşü olduğunda sadece
kodun kendisini geri döner.
• Başarılı
dönüşlerde, dönüş kodu sonrasında birbirinden “|” karakteri ile ayrılmış
bloklar döner. Bu bloklar GSM no ve SMS iletim durumu bilgisini içerir.
(Detaylar sayfa sonunda)
Başarısız Dönüşler 1 :
• Normal
şartlarda asla karşılaşmamanız gereken bir hata kodudur. Hatanın kaynağı sunucu
veya istemci taraflı olabilir. Yoğun olarak bu hatayı alırsanız lütfen
iletişime geçiniz.
Kod |
İsim |
Açıklama |
|
|
|
99 |
UNKNOWN_ERROR |
Henüz dokümante edilmemiş bir
hatayı belirtir. |
|
|
|
Başarısız Dönüşler 2 :
•
Aşağıdaki hata kodları isteği yapan tarafın düzeltmesi
gereken durumları belirtir.
Kod |
İsim |
Açıklama |
|
|
|
95 |
USE_GET_METHOD |
İsteği HTTP GET ile yollayınız |
|
|
|
93 |
MISSING_GET_PARAMS |
GET parametrelerinde eksik var |
|
|
|
87 |
WRONG_USER_OR_PASSWORD |
Kullanıcı adı veya şifre hatalı |
|
|
|
79 |
DLR_ID_NOT_FOUND |
Böyle bir dlrId değeri bulunamadı,
yok |
|
|
|
Bilgilendirme Dönüşleri :
Kod |
İsim |
Açıklama |
|
|
|
29 |
MESSAGE_WAITING_TO_SEND |
Mesaj henüz yollanmamış, yollanmak
üzere |
|
|
|
27 |
MESSAGE_SEND_ERROR |
Mesaj yollanırken beklenmeyen bir
hata |
|
|
oluşmuş |
|
|
|
Başarılı Dönüşler :
Kod |
İsim |
Açıklama |
25 |
DLR_OPERATION_STARTED |
DLR raporu güncellenmeye başlamış |
23 |
DLR_OPERATION_COMPLETED |
DLR raporu artık güncellenmeyecek,
tüm |
|
|
bilgiler toplanmış, rapor son
halini almış |
|
|
|
SMS İletim Durum Kodları :
Kod |
İsim |
Açıklama |
Kod |
İsim |
Açıklama |
|
|
|
|
|
|
0 |
WAITING |
SMS gönderim için bekliyor |
6 |
FAIL |
SMS Ulaşmadı |
|
|
|
|
|
|
5 |
PENDING |
SMS gönderilmiş, bilgi bekleniyor |
9 |
SUCCESS |
SMS İletildi |
|
|
|
|
|
|
SMS Karakter Seti ve Boy Hesaplamaları
•
Bu bölümde bir SMS metninin kaç SMS
olarak ücretlendirileceği, yani kaç boy olacağı ile ilgili hesaplamalara
değinilecektir. Ayrıca gönderimine izin verilen karakterler hakkında da bilgi
sahibi olacaksınız.
• Sistemimiz
max 6 boy SMS kabul etmektedir. Mesaj içeriği 6 boydan fazla ise otomatik
olarak sondaki karakterlerden gereken kadarı silinerek mesaj 6 boy'a
indirgenir.
• Sistemimiz
yollanacak olan her mesaj için boy hesabını otomatik olarak yapar, hesaplanan
bu değerleri web arayüzünden görebilirsiniz.
Karakter Sınıfları :
•
İlk olarak kullanılan karakterlere bakılarak mesajın Türkçe
mi yoksa İngilizce mi olduğu belirlenir. En az 1 adet Türkçe karakter kullanılmış
ise mesaj Türkçe olur, aksi halde İngilizce olacaktır.
• Eğer
mesajı ingilizce mesaj olarak göndermek istiyorsanız aşağıdaki tabloda Türkçe
olarak belirtilen karakterleri mesaj içeriğinden kaldırmanız veya İngilizce
karakter sınıfından benzer karakterler ile yer değiştirdikten sonra mesajı
yollamanız gerekmektedir.
•
Mesaj içeriğindeki Türkçe karakterlerin bazıları 1, bazıları
ise 2 karakter yer kaplar. İlgili bilgiler aşağıdaki tabloda belirtilmiştir.
• Bu
aşamada mesajın İngilizce veya Türkçe mesaj olması ile birlikte mesajın kaç
karakter olduğu hesaplanır. Dikkat ediniz, örneğin SMS içeriğindeki 'ğ' 2
karakter olarak hesaplanır.
Karakter Sınıfları |
Liste |
|
|
İngilizce (Tamamı 1-Karakter) |
'i', 'I', 'a', 'A', 'b', 'B' ...
'x', 'X', 'w', 'W' ... '0', '1' ... '$', '!', '+' ... vs |
|
|
Türkçe 1-Karakter olanlar |
'ü', 'Ü', 'ö', 'Ö', 'Ç' |
|
|
Türkçe 2-Karakter olanlar |
'ğ', 'Ğ', 'ş', 'Ş', 'ı', 'İ', 'ç' |
|
|
Boyların Hesaplanması :
•
Mesajın dili ve karakter sayısı
dikkate alınak boy aşağıdaki tablo yardımıyla belirlenebilir. Dikkat ederseniz
İngilizce mesajlar Türkçe mesajlara göre birkaç karakter daha fazla bilgi
taşıyabilmektedir.
•
Tablodaki değerler aralık belirtir. Başlangıç ve bitiş
değerleri de o aralığa dahildir.
|
1
boy |
2 boy |
3 boy |
4 boy |
5 boy |
6 boy |
|
|
|
|
|
|
|
İngilizce |
[1, 160] |
[161, 306] |
[307, 459] |
[460, 612] |
[613, 765] |
[766, 917] |
|
|
|
|
|
|
|
Türkçe |
[1, 155] |
[156, 292] |
[293, 439] |
[440, 587] |
[588, 735] |
[736, 882] |
|
|
|
|
|
|
|
Mesaj Yollanmadan Önce Yaptığımız İçerik
Dönüşümleri :
•
İlk olarak şunlar yer değiştirir : | => I, ^ => ', €
=> E, { => (, [ => (, } => ), ] => ), \ => /
• Sonrasında,
mesaj içeriğinde aşağıdaki karakterler dışında bir karaktere rastlanırsa ilgili
karakter ' ' (yani boşluk karakteri) olarak kabul edilir ve mesaj öyle yollanır
:
ABCDEFGĞHIİJKLMNOPRSŞTUVYZÖÜQWXÇ
abcçdefgğhıijklmnoprsştuvyzöüqwx@*:!$_#()+-;,<>=./'?"%&0123456789
•
Fonksiyon : Kredi Sorgulama
•
Programlama Dili : Java
• Lütfen
kaynak kodu kullandığınız editörde yeniden formatlayınız. Kodlarda gereksiz
gördüğünüz yerleri daha sonra silebilirsiniz.
HttpURLConnection uc = null;
try{
URL url = new URL("http://api.sms.digicell.com.tr:8080/api/credit/v1?username=test&password=test");
uc = (HttpURLConnection)url.openConnection();
uc.setRequestMethod("GET");
uc.setReadTimeout(5*1000);
uc.setConnectTimeout(5*1000);
uc.connect();
int resCode = uc.getResponseCode();
System.out.println("HTTP "+resCode);
int readed;
char[] buffer = new char[4*1024];
StringBuffer sb = new StringBuffer();
BufferedReader in = new
BufferedReader(new
InputStreamReader(uc.getInputStream(), "UTF-8"));
while( (readed = in.read(buffer)) > 0 ){
sb.append(buffer, 0, readed);
}
in.close();
String ret = sb.toString();
System.out.println("["+ret+"]");
}catch(Exception
ex){
ex.printStackTrace();
}finally{
try{ uc.disconnect(); }catch(Exception ex){} uc =
null;
}
}
•
Fonksiyon : SMS Gönderme
• Lütfen
kaynak kodu kullandığınız editörde yeniden formatlayınız. Kodlarda gereksiz
gördüğünüz yerleri daha sonra silebilirsiniz.
public
void send(){
HttpURLConnection
uc = null;
try{
URL url = new URL("http://api.sms.digicell.com.tr:8080/api/smspost/v1");
uc = (HttpURLConnection)url.openConnection();
uc.setRequestMethod("POST");
uc.setDoInput(true);
uc.setDoOutput(true);
uc.setRequestProperty("Content-Type",
"text/xml; charset=UTF-8");
uc.setRequestProperty("Content-Encoding",
"UTF-8"); uc.setReadTimeout(5*1000);
uc.setConnectTimeout(5*1000);
uc.connect();
OutputStreamWriter out = new
OutputStreamWriter(uc.getOutputStream(), "UTF-8");
out.write(""
+ "<sms>"
+ "<username>test</username>"
+
"<password>test</password>"
+ "<header>BAŞLIK</header>"
+
"<validity>2880</validity>"
+ "<message>"
+
"<gsm>"
+ "<no>905559998877</no>"
+
"</gsm>"
+ "<msg><![CDATA[-test-message-]]></msg>"
+
"</message>"
+ "</sms>");
out.flush();
out.close();
int
resCode = uc.getResponseCode();
System.out.println("HTTP
"+resCode);
int
readed;
char[] buffer = new char[4*1024];
StringBuffer
sb = new StringBuffer();
BufferedReader in = new
BufferedReader(new
InputStreamReader(uc.getInputStream(), "UTF-8"));
while( (readed = in.read(buffer)) > 0 ){
sb.append(buffer,
0, readed);
}
in.close();
String ret =
sb.toString();
System.out.println("["+ret+"]");
}catch(Exception ex){
ex.printStackTrace();
}finally{
try{ uc.disconnect(); }catch(Exception ex){} uc =
null;
}
}
•
Fonksiyon : SMS Gönderme (HTTP GET)
• Lütfen
kaynak kodu kullandığınız editörde yeniden formatlayınız. Kodlarda gereksiz
gördüğünüz yerleri daha sonra silebilirsiniz.
public void kredi(){
HttpURLConnection uc = null;
try{
URL url = new URL(" http://api.sms.digicell.com.tr:8080/api/smsget/v1?
username=test&password=test&header=BAŞLIK&gsm=905559998877&message=MESAJ%20TEST
");
uc = (HttpURLConnection)url.openConnection();
uc.setRequestMethod("GET");
uc.setReadTimeout(5*1000);
uc.setConnectTimeout(5*1000);
uc.connect();
int resCode = uc.getResponseCode();
System.out.println("HTTP "+resCode);
int readed;
char[] buffer = new char[4*1024];
StringBuffer sb = new StringBuffer();
BufferedReader in = new
BufferedReader(new
InputStreamReader(uc.getInputStream(), "UTF-8"));
while( (readed = in.read(buffer)) > 0 ){
sb.append(buffer, 0, readed);
}
in.close();
String ret = sb.toString();
System.out.println("["+ret+"]");
}catch(Exception
ex){
ex.printStackTrace();
}finally{
try{ uc.disconnect(); }catch(Exception ex){} uc =
null;
}
}
•
Fonksiyon : Kredi Sorgulama
•
Programlama Dili : PHP (curl eklentisi ile birlikte)
• Lütfen
kaynak kodu kullandığınız editörde yeniden formatlayınız. Kodlarda gereksiz
gördüğünüz yerleri daha sonra silebilirsiniz.
<?php
$postUrl
= "http://api.sms.digicell.com.tr:8080/api/credit/v1?username=test&password=test";
$ch =
curl_init();
curl_setopt($ch, CURLOPT_URL, $postUrl);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$response
= curl_exec($ch);
curl_close($ch);
echo '['.$response.']'."\n";
?>
•
Fonksiyon : SMS Gönderme
•
Programlama Dili : PHP (curl eklentisi ile birlikte)
• Lütfen
kaynak kodu kullandığınız editörde yeniden formatlayınız. Kodlarda gereksiz
gördüğünüz yerleri daha sonra silebilirsiniz.
<?php
$postUrl
= "http://api.sms.digicell.com.tr:8080/api/smspost/v1";
$postData
= "".
"<sms>".
"<username>test</username>".
"<password>test</password>".
"<header>BAŞLIK</header>".
"<validity>2880</validity>".
"<message>".
"<gsm>".
"<no>905559998877</no>".
"</gsm>".
"<msg><![CDATA[-test-message-]]></msg>".
"</message>".
"</sms>";
$ch =
curl_init();
curl_setopt($ch, CURLOPT_URL, $postUrl);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type: text/xml; charset=UTF-8"));
$response
= curl_exec($ch);
curl_close($ch);
echo '['.$response.']'."\n";
?>
•
Fonksiyon : SMS Gönderme (HTTP GET)
•
Programlama Dili : PHP (curl eklentisi ile birlikte)
• Lütfen
kaynak kodu kullandığınız editörde yeniden formatlayınız. Kodlarda gereksiz
gördüğünüz yerleri daha sonra silebilirsiniz.
<?php
$postUrl = "http://api.sms.digicell.com.tr:8080/api/smsget/v1?
username=test&password=test&header=BAŞLIK&gsm=905559998877&message=MESAJ%20TEST";
$ch =
curl_init();
curl_setopt($ch, CURLOPT_URL, $postUrl);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$response
= curl_exec($ch);
curl_close($ch);
echo '['.$response.']'."\n";
?>
•
Fonksiyon : Kredi Sorgulama
•
Programlama Dili : ASP.NET (C#)
• Lütfen
kaynak kodu kullandığınız editörde yeniden formatlayınız. Kodlarda gereksiz
gördüğünüz yerleri daha sonra silebilirsiniz.
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Web;
string sUserID = "UserName";
string sPwd = "Password";
string sURL ="http://api.sms.digicell.com.tr:8080/api/credit/v1?username="+ sUserID + "&password=" + sPwd;
string sResponse = GetResponse(sURL);
Response.Write(sResponse);
public static string GetResponse(string sURL)
{
HttpWebRequest
request = (HttpWebRequest)WebRequest.Create(sURL);
request.MaximumAutomaticRedirections
= 4;
request.Credentials = CredentialCache.DefaultCredentials;
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse
();
Stream receiveStream = response.GetResponseStream
();
StreamReader readStream = new
StreamReader (receiveStream, Encoding.UTF8);
string sResponse = readStream.ReadToEnd();
response.Close ();
readStream.Close ();
return
sResponse;
}
catch {
return
"";
}
}
•
Fonksiyon : SMS Gönderme
•
Programlama Dili : ASP.NET (C#)
• Lütfen
kaynak kodu kullandığınız editörde yeniden formatlayınız. Kodlarda gereksiz
gördüğünüz yerleri daha sonra silebilirsiniz.
using System.Net;
using System.IO;
using System.Web;
using System.Xml;
string sURL = "http://api.sms.digicell.com.tr:8080/api/smspost/v1";
string sResponse = GetResponse(sURL, createXml());
Response.Write(sResponse);
public
static string GetResponse(string sURL,string sXml)
{
try
{
HttpWebRequest request =
WebRequest.Create(new Uri(sURL)) as
HttpWebRequest;
request.Method =
"POST";
request.ContentType =
"text/xml; charset=UTF-8";
request.Timeout =
5000;
byte[]
data = UTF8Encoding.UTF8.GetBytes(sXml);
request.ContentLength = data.Length;
using
(Stream postStream = request.GetRequestStream())
{
postStream.Write(data, 0, data.Length);
}
using
(HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
StreamReader reader = new
StreamReader(response.GetResponseStream());
return reader.ReadToEnd();
}
}
catch
(Exception ex)
{
return
ex.Message;
}
}
public
static string createXml()
{
StringBuilder sb = new
StringBuilder();
XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = Encoding.Unicode;
settings.Indent = true;
settings.IndentChars = (" ");
using
(XmlWriter writer = XmlWriter.Create(sb, settings))
{
writer.WriteStartElement("sms");
writer.WriteElementString("username", "test");
writer.WriteElementString("password", "test");
writer.WriteElementString("header", "baslik");
writer.WriteElementString("validity", "2880");
writer.WriteStartElement("message");
writer.WriteStartElement("gsm");
writer.WriteElementString("no", "905559998877");
writer.WriteEndElement(); //gsm
writer.WriteStartElement("msg");
writer.WriteCData("-test-message-");
writer.WriteEndElement(); //msg
writer.WriteEndElement(); //message
writer.WriteEndElement(); // sms
writer.Flush();
}
return
sb.ToString();
}
•
Fonksiyon : SMS Gönderme (HTTP GET)
•
Programlama Dili : ASP.NET (C#)
• Lütfen
kaynak kodu kullandığınız editörde yeniden formatlayınız. Kodlarda gereksiz
gördüğünüz yerleri daha sonra silebilirsiniz.
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Web;
string
sURL = "http://api.sms.digicell.com.tr:8080/api/smsget/v1?
username=test&password=test&header=BAŞLIK&gsm=905559998877&message=MESAJ%20TEST"
string
sResponse = GetResponse(sURL);
Response.Write(sResponse);
public static string GetResponse(string sURL)
{
HttpWebRequest
request = (HttpWebRequest)WebRequest.Create(sURL);
request.MaximumAutomaticRedirections
= 4;
request.Credentials = CredentialCache.DefaultCredentials;
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse
();
Stream receiveStream = response.GetResponseStream
();
StreamReader readStream = new
StreamReader (receiveStream, Encoding.UTF8);
string sResponse = readStream.ReadToEnd();
response.Close ();
readStream.Close ();
return
sResponse;
}
catch {
return
"";
}
}
•
Fonksiyon : SMS Gönderme (HTTP POST)
•
Programlama Dili : C# (Windows Forms)
• Lütfen
kaynak kodu kullandığınız editörde yeniden formatlayınız. Kodlarda gereksiz
gördüğünüz yerleri daha sonra silebilirsiniz.
using System;
using
System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace smstest
{
public
partial class Form1 : Form
{
public
Form1()
{
InitializeComponent();
}
private
void button1_Click(object sender, EventArgs e)
{
string xml =
"<sms><username>-ADD-YOUR-USERNAME-</username>" +
"<password>-ADD-YOUR-PASSWORD-</password>" +
"<header>-ADD-YOUR-HEADER-</header>" +
"<validity>2880</validity>" +
"<message><gsm>"
+
"<no>905559998877</no>"
+
"</gsm>"
+
"<msg><![CDATA[bu bir deneme
mesajıdır]]></msg>" + "</message></sms>";
string url = "http://api.sms.digicell.com.tr:8080/api/smspost/v1";
HttpWebRequest
req = (HttpWebRequest)WebRequest.Create(url);
byte[] requestBytes =
System.Text.Encoding.UTF8.GetBytes(xml);
req.Method = "POST";
req.ContentType = "text/xml;charset=utf-8";
req.ContentLength = requestBytes.Length;
Stream requestStream = req.GetRequestStream();
requestStream.Write(requestBytes, 0,
requestBytes.Length);
requestStream.Close();
HttpWebResponse res =
(HttpWebResponse)req.GetResponse();
StreamReader sr = new
StreamReader(res.GetResponseStream(),System.Text.Encoding.Default);
string
backstr = sr.ReadToEnd();
label1.Text
= backstr;
sr.Close();
res.Close();
}
}
}