Toplu SMS i bildirimler için kullanımı
İnternetin ve web sayfalarının gelişmesi ve karşılıklı iletişime olanak sağlamaya başladığı günden beri hızla artan etkileşim, firmaların iş akışlarını otomatize etmeye, müşterileriyle daha hızlı iletişime geçmeye zorlamaktadır. Ülkemizdeki çoğu firma bu değişime ayak uydurmakta zorluklar çekmektedir, bu dönüşümde başı çeken yazılım ve teknoloji firmaları bu ihtiyaçları görüp, ürünlerini bu ihtiyaçları karşılayacak biçimde geliştirmek durumundadır.
Yaptığımız yazılımlarda müşterinin firmaya soru sorduğu, şikayetini ilettiği, iletişim formları, müşterilerin hızlı geri dönüş beklediği kritik bölümlerden biridir. Firmada iletişim formundan gelen sorulara, satış fırsatlarına, hızlı geri dönüşün sağlanması bu bölümle ilgilenen kişiler kadar, yazılımcılar içinde önemlidir. Yazılımlarımıza sms api entegrasyonu ile iletişim formu doldurulduğunda ilgili kişi veya kişilere sms gönderilmesini sağlayarak, iletişim bölümünden gelen sorulara hızlıca cevap verilmesini sağlayabilirsiniz.
İlk başta iletişim formumuzun html kısmını hazırlayarak başlayalım, tasarım kısmının daha düzenli gözükmesi için bootstrap ve ajax çağrıları için jquery kütüphanesinden faydalanıcağız.
İlk sayfamızı iletisim.html adında oluşturalım ve html kodlarımızı ekleyelim.
iletisim.html
<meta charset="utf-8">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script>
// iletisim formundan gelen verileri sms gonderiminin yapilacagi sayfaya gonderen kisim
function formuGonder() {
var form_verisi = $('#iletisim_formu').serialize();
$.ajax({
type: 'POST',
url: 'iletisim_sms_gonder.php',
data: form_verisi,
success: function(ajaxResponse) {
var result = ajaxResponse.split(':');
if(result[0]=='success') {
//Eger sms gonderimi basariliysa kullaniciya basari mesajini gosteriyoruz
$('#error_success').show();
$('#error_success').html(result[1]);
} else {
//Eger sms gonderimi basarili degilse kullaniciya uyari mesajini gosteriyoruz
$('#error_danger').show();
$('#error_danger').html(result[1]);
}
}
});
}
</script>
<title>İletişim Formu</title>
<div class="container">
<div class="starter-template">
<form id="iletisim_formu" class="form-horizontal">
<h3>İletişim</h3>
<h6>Görüş, öneri ve şikayetleriniz için formu doldurarak bizimle iletişime geçebilirsiniz.</h6>
<div id="error_success" style="display:none;" class="alert alert-success" role="alert"></div>
<div id="error_danger" style="display:none;" class="alert alert-danger" role="alert"></div>
<div class="form-group">
<label for="ad-soyad" class="col-sm-1 control-label">Ad Soyad</label>
<div class="col-sm-6">
<input type="text" class="form-control" name="ad-soyad" id="ad-soyad" placeholder="Ad Soyad">
</div>
</div>
<div class="form-group">
<label for="email" class="col-sm-1 control-label">Email</label>
<div class="col-sm-6">
<input type="text" class="form-control" name="email" id="email" placeholder="Email">
</div>
</div>
<div class="form-group">
<label for="telefon" class="col-sm-1 control-label">Telefon</label>
<div class="col-sm-6">
<input type="text" class="form-control" name="telefon" id="telefon" placeholder="Telefon">
</div>
</div>
<div class="form-group">
<label for="mesaj" class="col-sm-1 control-label">Mesaj</label>
<div class="col-sm-6">
<textarea name="mesaj" class="form-control" rows="3"></textarea>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-1 col-sm-6">
<button type="button" onclick="formuGonder();" class="btn btn-default">Gönder</button>
</div>
</div>
</form>
</div>
</div>
Bu sayfada kullanacağımız bootstrap kütüphanesini ve jquery kütüphanesini head tagları arasına ekledik, daha sonra
iletişim formumuzun html kodlarını bootstrap html yapısına ve class'larına uygun bir şekilde oluşturduk, formumuzda
ad soyad, email, telefon ve mesaj alanları ekledik, en sonda kullanıcı formu gönderebilmesi için bir button oluşturduk ve button'un onclick kısmına head tagları arasında yazmış olduğumuz javascript fonksiyonunu çağırıyoruz.
formuGonder fonksiyonu basitce ajax isteği yapmamızı ve formdaki dataların, sms gönderiminin yapılacağı php sayfasına iletilmesini sağlıyor.
iletisim_sms_gonder.php adında ikinci sayfamızı açıyoruz, bu sayfada php ile iletimerkezi'ne sms api aracılığıyla bağlanıp, sms gönderiminin yapılmasını sağlıyacağız.
iletisim_sms_gonder.php
<authentication>
<username>{$username}</username>
<password>{$password}</password>
</authentication>
<order>
<sender>{$orgin_name}</sender>
<senddatetime>01/05/2013 18:00</senddatetime>
<message>
<text><!--[CDATA[Sitenizin iletişim formu dolduruldu, {$ad_soyad} size mesaj gönderdi.]]--></text>
<receipents>
<number>{$yonetici_telefonlari[0]}</number>
</receipents>
</message>
</order>
EOS;
// <number>{$yonetici_telefonlari[1]}</number>
$result = sendRequest($xml);
$array = XML2Array::createArray($result);
if($array['response']['status']['code']=='200') {
die('success:İşleminiz başarıyla yapılmıştır.');
} else {
die('fail:'.$array['response']['status']['message']);
}
iletisim_sms_gonder.php php sayfamızın en başında api çağrısı yaptığımızda bize api cevabı olarak dönücek xml'i
diziye döndürecek olan kütüphaneyi ekliyoruz. Kütüphaneyi sizde buradan indirebilirsiniz. Bu kütüphane sayesinde xmldeki değerleri yazılımımızda daha rahat kullanacağız.
Bir satır altında sms apiye istek yapıcağımız sendRequest fonksiyonu bulunuyor, bu fonksiyon curl yardımı ile php yazılımınız üzerinden istek yapmanızı sağlar, böylelikle sms yollama işlemi tamamlanmış olur. Curl bir php eklentisidir bu eklentiyi sunucularda genellikle yüklü ve php.ini dosyasında açıktır fakat bir hata alırsanız, curl eklentisinin aktif veya pasif aktif olup olmadığına bakmanız gerekir.
Fonksiyonun altında formdan gelen verileri aldığımız ve iletimerkezi sms api'sine erişirken kullanmamız gereken bilgileri giriyoruz, tabi birde mesajın iletilmesini istediğimiz firma çalışanlarının telefon numaralarını yazıyoruz, telefon numaralarını eklerken herhangi bir format zorunluluğunuz yoktur, başında 90 veya numaraların arasında "-" veya "." gibi işaretlerin olması gönderiminizi engellemez. Bu tanımlamaları yaptıktan sonra sms api'ye iletmemiz gereken xml verisini oluşturuyoruz. Xml'i oluştururken gerekli yerlere biraz önce tanımlamış olduğumuz değişkenleri ekliyoruz. Burada dikkat etmemiz gereken belkide en önemli nokta xml'i oluştururken mesaj alanında xml'in yapısını bozabilecek karakterler kullanılabileceği için "[CDATA[]]" mesajımızı etiketiyle sarmalıyoruz ve daha sonra sayfanın başında tanımladığımız fonksiyon yardımı ile sms api'sine bu xml'i iletimerkezi sunucusuna iletiyoruz ve iletimerkezi sunucusundan dönen cevabı alıyoruz. Dönen cevabı XML2Array sınıfını kullanarak dönen xml'i diziye çevirip işlemin başarılı olup olmadığını kontrol ediyoruz.
Oluşturduğumuz xml de bazı değişiklikler yaparak birden fazla kişiye toplu sms gönderilmesini sağlıyabiliriz.
<receipents>
<number>{$yonetici_telefonlari[0]}</number>
</receipents>
Xml'in bu bölümünde
<number>{$yonetici_telefonlari[0]}</number>
bu kısmı arttırarak, toplu olarak sms bildirimi yapılmasınıda sağlayabilirsiniz.
<receipents>
<number>{$yonetici_telefonlari[0]}</number>
<number>{$yonetici_telefonlari[1]}</number>
</receipents>
Sms gönderirken iletimerkezi sunucusundan aşağıdaki gibi bir xml cevabı alırız.
<response>
<status>
<code></code>
<message></message>
</status>
<order>
<id></id>
</order>
</response>
Son olarak işlemin başarılı olup olmama durumuna göre formuGonder javascript fonksiyonu yardımıyla işlemin durumunu kullanıcımıza bildiriyoruz. Örnek olarak bir iletişim formundan gelen bilgileri nasıl sms olarak ilgili kişilere iletebileceğimizi gösterdik, tabi gerçek bir sistemde buradaki bilgilerin üstüne gelen form verilerinin güvenlik açığı meydana getirmemesi için bazı önlemler alınabilir, gönderdiğimiz sms mesajının boyutuna bakıp bazı kısıtlamalar getirebiliriz, bu formdaki değerleri değiştirip kendinize uygun olarak düzenleyerek müşterilerinize yapmış olduğunuz intenet sitelerini daha aktif ve daha etkileşimli olarak kullanmasını sağlayabilirsiniz.
28 Temmuz 2015