Jumat, 23 September 2016

Koneksi SMS Gammu PC Rumah Dengan Website Di Hosting

Berbagi pengalaman. Selamat datang di kode otodidak Ketika itu ada permintaan dari perusahaan tempat saya bekerja untuk membuatkan notifikasi SMS ketika ada pemesanan masuk. Dengan keterbatasan ilmu yang saya miliki, saya mulai mencari referensi ke sana kemari. Dan akhirnya ketemu caranya.





Alur Logika sederhananya seperti ini. Pertama kita install gammu di pc rumah/kantor kita. Pastikan anda sudah bisa sms melalui gammu. Untuk cara install gammu anda bisa lihat di cara install gammu di pc.
Kemudian buat file konfersi data sms masuk menjadi XML di sisi hosting. File ini yang akan selalu di cek oleh pc rumah untuk mengetahui ada pemesanan online atau tidak. Jika ada, maka sms berupa XML akan di baca oleh pc rumah melalui file baca yang ada di localhost pc rumah. Kemudian data pemesanan berupa nomor telp pelanggan akan di masukkan ke database gammu pc rumah untuk di kirimkan SMS nootifikasi.

Untuk detailnya anda bisa mengikuti source code di bawah ini
Pertama, mari bekerja di sisi hosting :
Buat file dengan nama data.php
pastekan code berikut
<?php
// koneksi ke mysql server hosting
mysql_connect('localhost', 'root', '');
mysql_select_db('smsgateway');

// membuat header dokumen XML
header('Content-Type: text/xml');
echo "<?xml version='1.0'?>";

// membuat root tag untuk data XML
echo "<outbox>";

// query untuk membaca seluruh SMS yang ada di tabel outbox
$query = "SELECT * FROM outbox ORDER BY id";
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{
   // representasi data sms
   echo "<data>";
   echo "<id>".$data['id']."</id>";
   echo "<destination>".$data['DestinationNumber']."</destination>";
   echo "<sms>".$data['TextDecoded']."</sms>";
   echo "<creator>".$data['CreatorID']."</creator>";
   echo "</data>";
}
echo "</outbox>";
?>

Kedua, bekerja di sisi localhost PC rumah :
buat file bacasms.php di localhost pc rumah yang sudah terinstall gammu. Dan pastekan kode berikut
<?php
// koneksi ke mysql di server localhost
mysql_connect('localhost', 'root', '');
// nama database Gammu yang ada di localhost
mysql_select_db('smsgateway');

// baca data XML dari server hosting yang digenerate oleh data.php
$dataxml = simplexml_load_file('http://www.namadomainanda.org/smsgateway/data.php');
foreach($dataxml->data as $data)
{
   // baca field ID
   $id = $data->id;
   // baca nomor tujuan
   $destination = $data->destination;
   // baca isi sms
   $sms = $data->sms;
  
   //baca creator
   $kreator = $data->creator;

   // mengirim SMS via Gammu dengan insert data ke tabel outbox Gammu
   $query = "INSERT INTO outbox (DestinationNumber, TextDecoded,CreatorID) VALUES ('$destination', '$sms','$kreator')";
   mysql_query($query);  

   // hapus data SMS di server hosting yang sudah terbaca berdasarkan ID
   $curlHandle = curl_init();
   curl_setopt($curlHandle, CURLOPT_URL, 'http://namadomainanda/smsgateway/hapus.php');
   curl_setopt($curlHandle, CURLOPT_POSTFIELDS, 'id='.$id);
   curl_setopt($curlHandle, CURLOPT_HEADER, 0);
   curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($curlHandle, CURLOPT_TIMEOUT,30);
   curl_setopt($curlHandle, CURLOPT_POST, 1);
   curl_exec($curlHandle);
   curl_close($curlHandle);
}
?>

File ini lah yang harus anda load secara otomatis setiap n detik. Sehingga dapat selalu membaca data outbox yang ada pada server hosting untuk di simpan di data outbox gammu di pc anda. Sehingga gammu bisa mengirim sms notifikasi.


Kita lihat kode di atas, ada file hapus.php. Ini berguna untuk menghapus data outbox yang telah terbaca pada server hosting, gunanya agar data tidak menumpuk di server hosting anda.

Buat file hapus.php di hosting anda. Dan pastekan kode berikut
<?php
// koneksi ke mysql di server hosting
mysql_connect('localhost', 'root', '');
mysql_select_db('smsgateway');

// baca ID data yang akan dihapus yang dikirim via CURL dari localhost
$id = $_POST['id'];
// hapus data SMS berdasarkan ID
$query = "DELETE FROM outbox WHERE id = '$id'";
mysql_query($query);

?>

Nah seperti ini lah kode otodidak untuk sms notifikasi menggunakan gammu dan server hosting. Untuk mengujinya, anda bisa melakukan transaksi di website anda. Ketika ada data no telp pelanggan masuk ke database hosting, maka akan terkirim ke PC rumah anda untuk di kirimkan oleh gammu berupa SMS.

kalau ada pertanyaan, silahkan komentar di bawah



1 komentar: