PHP Netgsm API Kullanımı

PHP Netgsm API Kullanımı

PHP

İletişim teknolojilerinin hızla geliştiği günümüzde, SMS gönderimi hala birçok işletme ve uygulama için kritik bir bileşen olarak önemini korumaktadır. Türkiye'nin önde gelen SMS servis sağlayıcılarından biri olan Netgsm, sunduğu API ile kullanıcılarına etkili ve güvenilir bir SMS gönderim hizmeti sunmaktadır. Bu makalede, PHP kullanarak Netgsm API'sini nasıl entegre edebileceğinizi ve SMS gönderme işlemlerini nasıl gerçekleştirebileceğinizi adım adım ele alacağız.

Netgsm API Nedir?

Netgsm API, Netgsm'in sunduğu SMS gönderim, SMS raporlama ve bakiye sorgulama gibi işlemleri otomatikleştirmenize olanak tanıyan bir uygulama programlama arayüzüdür. API, çeşitli parametreler ve XML formatı kullanarak SMS mesajlarınızı hedef kitleye ulaştırmak için gerekli işlemleri sağlar.

PHP ile Netgsm API Entegrasyonu

PHP, sunucu tarafında çalışan ve web uygulamalarında yaygın olarak kullanılan bir programlama dilidir. Netgsm API ile PHP kullanarak SMS gönderimi yapmak, uygulamalarınıza hızlı ve etkili bir iletişim aracı eklemenin bir yoludur. Bu makalede, PHP ile Netgsm API'sini kullanarak SMS gönderme, bakiye kontrolü ve toplu SMS gönderimi gibi temel işlemleri nasıl gerçekleştireceğinizi göstereceğiz.

İlk olarak, Netgsm API'ye erişim sağlamak ve gerekli doğrulama bilgilerini kullanarak API çağrılarınızı yapabilmeniz için gerekli ayarları yapacağız. Daha sonra, SMS gönderimi ve diğer API işlemlerini gerçekleştirecek örnek PHP kodları ile Netgsm API'sinin nasıl kullanıldığını detaylandıracağız.

Adım 1 : NetGsm Tekli SMS Gönderme Fonksiyonumuzu Hazırlıyoruz.

function sendSMS($to, $message) {

  $username = "username";  // Netgsm kullanıcı adınızı buraya yazın
  $password = "password";  // Netgsm şifrenizi buraya yazın
  $from     = "Başlık";    // Netgsm'de onaylanmış SMS başlığı (Gönderici adı)
  

  $url = "https://api.netgsm.com.tr/sms/send/xml";

  $xml_data = '<?xml version="1.0" encoding="UTF-8"?>
  <mainbody>
      <header>
          <company dil="TR">Netgsm</company>
          <usercode>' . $username . '</usercode>
          <password>' . $password . '</password>
          <type>1:n</type>
          <msgheader>' . $from . '</msgheader>
      </header>
      <body>
          <msg><![CDATA[' . $message . ']]></msg>
          <no>90' . $to . '</no>
      </body>
  </mainbody>';

  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_data);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

  $response = curl_exec($ch);
  $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  curl_close($ch);

    if ($http_code != 200) {
        return [
            'success' => false,
            'message' => "HTTP Hatası: $http_code - Yanıt: $response"
        ];
    }

    if (strpos($response, '00') !== false) {
        return [
            'success' => true
        ];
    } else {
        return [
            'success' => false,
            'message' => "Hata Kodu: $response"
        ];
    }
}

Fonksiyon Kullanımı

$sendSMS = sendSMS("00000000000", "Deneme İçerik");

if ($sendSMS['success']) {
  echo "SMS başarıyla gönderildi!";
} else {
  echo "SMS gönderimi başarısız oldu." . $sendSMS['message'];
}

sendSMS() fonskiyonumuzda birinci paramatrede telefon numarasını ikinci parametrede mesaj içeriğini girmemiz gerekiyor. 

Adım 2 : NetGsm Toplu SMS Gönderme Fonksiyonumuzu Hazırlıyoruz.

function sendBulkSMS($numbers, $message) {

  $username = "username";  // Netgsm kullanıcı adınızı buraya yazın
  $password = "password";  // Netgsm şifrenizi buraya yazın
  $from     = "Başlık";    // Netgsm'de onaylanmış SMS başlığı (Gönderici adı)

  $url = "https://api.netgsm.com.tr/sms/send/xml";

  $numbers_xml = '';
  foreach ($numbers as $number) {
      $formatted_number = "90" . ltrim($number, "0"); // Numaraları 90 ile formatlama
      $numbers_xml .= "<no>{$formatted_number}</no>\n";
  }

  $xml_data = '<?xml version="1.0" encoding="UTF-8"?>
  <mainbody>
      <header>
          <company dil="TR">Netgsm</company>
          <usercode>' . $username . '</usercode>
          <password>' . $password . '</password>
          <type>1:n</type>
          <msgheader>' . $from . '</msgheader>
      </header>
      <body>
          <msg><![CDATA[' . $message . ']]></msg>
          ' . $numbers_xml . '
      </body>
  </mainbody>';

  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_data);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

  $response = curl_exec($ch);
  $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  curl_close($ch);

  if ($http_code != 200) {
      return [
          'success' => false,
          'message' => "HTTP Hatası: $http_code - Yanıt: $response"
      ];
  }

  // Yanıtı kontrol etme
  if (strpos($response, '00') !== false) {
      return [
          'success' => true
      ];
  } else {
      return [
          'success' => false,
          'message' => "Hata Kodu: $response"
      ];
  }
}

Fonksiyon Kullanımı

$numbers = ["00000000000", "11111111111"]; // Gönderilecek numaralar
$result = sendBulkSMS($numbers, "Bu bir toplu deneme SMS mesajıdır.");
    
if ($result['success']) {
   echo "Toplu SMS başarıyla gönderildi!";
} else {
   echo "Toplu SMS gönderimi başarısız oldu. Hata: " . $result['message'];
}

Sonuç olarak, PHP ile Netgsm API entegrasyonu, işletmelerin SMS gönderim süreçlerini otomatikleştirmeleri ve müşteri iletişimini kolaylaştırmaları için güçlü bir çözümdür. API sayesinde, toplu SMS gönderimi, tekli SMS gönderimi gibi işlemler hızlı ve güvenilir bir şekilde yapılabilir. Netgsm API kullanarak, hem müşteri memnuniyetini artırabilir hem de etkili bir iletişim stratejisi oluşturabilirsiniz.

Beni dinlediğiniz için teşekkür ederim.


Yorumlar (0)

    Bu yazıya henüz bir yorum yapılmamış! İlk yorum yapan sen ol!