Bu yazımda Türkiye’nin en ünlü SMS apisi sağlayıcısı olan NETGSM firmasının PHP ile nasıl entegre çalıştığını ve nasıl SMS gönderileceğini paylaşmak istedim.
PHP ile NETGSM Api Entegrasyonu
Gelişen teknolojilerle birlikte ülkemizde çok kapsamlı web sayfaları çıkmaya başladı. Bu kadar kapsamlı web sitesi olunca SMS Göndermede bir ihtiyaç haline geldi. Özellikle E-Ticaret scripti yapıyorsanız sipariş aşamalarından sonra kullanıcılarımıza SMS atmanız daha güvenli bir web sitesi imajı yaratmanızı sağlayacaktır.
Tüm PHP yazı arşivime buradan bakabilirsiniz.
Şimdi sözü fazla uzatmadan apinin nasıl entegre edileceğini anlatmak istiyorum.
Öncelikle NETGSM firmasına üye olmamız gerekmekte. Sanırım bu üyelik için firma olmanız gerekmekte (Tam emin değilim) daha sonra SMS Göndermek için gerekli izinleri ve gönderici ismi (Header) aldıktan sonra, kullanıcı paneline gidip bir alt kullanıcı oluşturmamız gerekmekte. Bu aşamadan sonra APİ işlemleri menüsünden api ile erişime izin veriyorum seçeneğine basarak api iznimizi de alıyoruz.
PHP ile NETGSM Api Entegrasyonu Kodları
Gerekli olan tüm bilgiler elimizde olduğuna göre artık kodları yazabiliriz.
- Gönderim Fonksiyonunu Oluşturalım
function smsGonder($gsm, $mesaj)
{
global $db;
$username = "NETGSM User";
$pass = "MET GSM Şifre;
$header = "NETGSM'den aldığınız HEADER İsmi;
$telefonnumarasi = $gsm;
$startdate = date('d.m.Y H:i');
$startdate = str_replace('.', '', $startdate);
$startdate = str_replace(':', '', $startdate);
$startdate = str_replace(' ', '', $startdate);
$stopdate = date('d.m.Y H:i', strtotime('+1 day'));
$stopdate = str_replace('.', '', $stopdate);
$stopdate = str_replace(':', '', $stopdate);
$stopdate = str_replace(' ', '', $stopdate);
$msg = html_entity_decode($mesaj, ENT_COMPAT, "UTF-8");
$msg = rawurlencode($msg );
$gonderici =html_entity_decode($header, ENT_COMPAT, "UTF-8");
$gonderici = rawurlencode($gonderici );
$url = "https://api.netgsm.com.tr/bulkhttppost.asp?usercode=$username&password=$pass&gsmno=$telefonnumarasi&message=$msg &msgheader=$gonderici&startdate=$startdate&stopdate=$stopdate&dil=TR";
//echo $url;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// curl_setopt($ch,CURLOPT_HEADER, false);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
Yukarıdaki kodlarda fonksiyonumuzu oluşturduk. Çok fazla bir açıklamaya gerek duymuyorum çünkü zaten yukarıda yazdığımız ve CURL kütüphanesini kullandığımız fonksiyon gayet basit.
Şimdi bu fonksiyonu kullanalım ve bir mesaj gönderelim
smsGonder(05313241616,"Bu bir deneme mesajıdır");
NETGSM Hata Kodları
NETGSM 20 Hata Kodu Anlamı
Mesaj metninde ki problemden dolayı gönderilemediğini veya standart maksimum mesaj karakter sayısını geçtiğini ifade eder.
(Standart maksimum karakter sayısı 917 dir. Eğer mesajınız türkçe karakter içeriyorsa Türkçe Karakter Hesaplama menüsunden karakter sayılarının hesaplanış şeklini görebilirsiniz.)
NETGSM 30 Hata Kodu Anlamı
Geçersiz kullanıcı adı , şifre veya kullanıcınızın API erişim izninin olmadığını gösterir.
Ayrıca eğer API erişiminizde IP sınırlaması yaptıysanız ve sınırladığınız ip dışında gönderim sağlıyorsanız 30 hata kodunu alırsınız. API erişim izninizi veya IP sınırlamanızı , web arayüzümüzden; sağ üst köşede bulunan ayarlar> API işlemleri menüsunden kontrol edebilirsiniz.
NETGSM 40 Hata Kodu Anlamı
Mesaj başlığınızın (gönderici adınızın) sistemde tanımlı olmadığını ifade eder. Gönderici adlarınızı API ile sorgulayarak kontrol edebilirsiniz.
NETGSM 70 Hata Kodu Anlamı
Hatalı sorgulama. Gönderdiğiniz parametrelerden birisi hatalı veya zorunlu alanlardan birinin eksik olduğunu ifade eder. |