Kamis , 13 Februari 2025
New Posts
< Back
You are here:
Print

Setup Modul IP OtomaX

Seting Modul IP pada OtomaX

Pada dokumen ini kita akan membuat modul untuk ambil stok ke supplier lain dengan menggunakan Modul IP. Dengan asumsi:

  • Software supplier menggunakan ST24
  • IP supplier: 110.90.40.162
  • URL yang disediakan supplier untuk menerima request adalah http://110.90.40.162/xmlrequest.php
  • Format XML untuk transaksi:

<?xml version=”1.0″?>
<methodCall>
<methodName>topUpRequest</methodName>
<params>
<param>
<value>
<struct>
<member>
<name>MSISDN</name>
<value><string>0818111222</string></value>
</member>
<member>
<name>REQUESTID</name>
<value><string>123456</string></value>
</member>
<member>
<name>PIN</name>
<value><string>6633</string></value>
</member>
<member>
<name>NOHP</name>
<value><string>0818111333</string></value>
</member>
<member>
<name>NOM</name>
<value><string>XR10</string></value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>
 

  • Format XML untuk laporan/report:

<?xml version=”1.0″?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>RESPONSECODE</name>
<value><string>00</string></value>
</member>
<member>
<name>REQUESTID</name>
<value><string>123456</string></value>
</member>
<member>
<name>MESSAGE</name>
<value><string>TOP UP BERHASIL</string></value>
</member>
<member>
<name>TRANSACTIONID</name>
<value><string>666333</string></value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
 

Tahapan:

  1. Buat modul IP di OtomaX. Caranya kurang lebih sama dengan membuat modul jenis lainnya.

ip1 ip2

  • Send to kita isi URL supplier: http://110.90.40.162/xmlrequest.php
  • Response from provider kita isi IP static supplier: 110.90.40.162. Jika IP supplier lebih dari satu (1), bisa kita tambahkan dibaris berikutnya
  • Default Parsing kita isi xml seperti dibawah. Perhatikan bahwa xml sudah kita modif dengan memasukkan parameter-parameter dari otomax seperti: [trxid], [nominal], [tujuan], dll.

<?xml version=”1.0″?>
<methodCall>
<methodName>topUpRequest</methodName>
<params>
<param>
<value>
<struct>
<member>
<name>MSISDN</name>
<value><string>0818111222</string></value>
</member>
<member>
<name>REQUESTID</name>
<value><string>[trxid]</string></value>
</member>
<member>
<name>PIN</name>
<value><string>[pin]</string></value>
</member>
<member>
<name>NOHP</name>
<value><string>[tujuan]</string></value>
</member>
<member>
<name>NOM</name>
<value><string>XR[nominal]</string></value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>

2. Menentukan produk apa saja yang akan diproses oleh modul IP tersebut. Cukup tentukan produk apa saja, parsing/command dikosongkan karena akan mengambil parsing dari seting Modul (lihat atas).

ip3

Parsing

Sampai tahap ini, kita sudah bisa melakukan transaksi dengan modul tersebut. Namun status transaksi akan menunggu jawaban karena supplier belum bisa mengirimkan report ke kita.

3. Agar supplier bisa mengirimkan report ke kita, maka kita perlu membuat halaman web yang bisa diakses oleh supplier. Sebagai contoh, kita akan membuat halaman PHP dengan nama xmlreport.php. Halaman PHP tersebut akan kita pasang di web server yang sudah terinstal PHP 5.2 dan extension mssql. Instalasi web server, PHP 5.2 dan extension tidak akan dibahas pada dokumen ini dan menjadi beban kerja masing-masing server.

Isi xmlreport.php adalah sbb:

<?php
function sqlEscape($sql) {
$fix_str = stripslashes($sql);
$fix_str = str_replace(“‘”,”””,$sql);
$fix_str = str_replace(“\0″,” “,$fix_str);
return $fix_str;
}

$method = $_SERVER[‘REQUEST_METHOD’];
if ($method == ‘GET’) die(“FAILED”); // abaikan jika ‘GET’
$content_type = $_SERVER[‘CONTENT_TYPE’];

// abaikan jika html form
if ($content_type == ‘application/x-www-form-urlencoded’) die(“FAILED”);
$content = trim(@file_get_contents(‘php://input’));
$content = str_replace(“\r\n”,” “,$content);

// escape for sql
$content = sqlEscape($content);
if (strlen($content) == 0) die(“FAILED”); // abaikan jika isi kosong

// disesuaikan kemudian dengan seting modul, kolom “Terima dari”
$pengirim = $_SERVER[‘REMOTE_ADDR’];

// Connect to MSSQL
$server = ‘.\\SQLEXPRESS’;
$link = mssql_connect($server);

if (!$link) {
die(‘Something went wrong while connecting to MSSQL’);
}

// Select database
mssql_select_db(‘otomax’)
or die(‘Could not select a database.’);

// masukkan data ke tabel inbox_temp
$SQL = “insert into inbox_temp (tgl_entri,pengirim,pesan,status) values (getdate(),’$pengirim’,’$content’,0)”;
$result = mssql_query($SQL)
or die(‘A error occured: ‘ . mysql_error());

// Close the link to MSSQL
mssql_close($link);

// jawaban untuk supplier
echo ‘OK’;
?>

Inti dari isi program php tersebut adalah menangkap pesan yang dikirim dari supplier dan memasukkan data pesan tersebut ke tabel inbox_temp:

$SQL = “insert into inbox_temp (tgl_entri,pengirim,pesan,status) values (getdate(),’$pengirim’,’$content’,0)”;

4. Melakukan setting pada halaman Administrasi – Jawaban, agar report dari supplier bisa dikenali dan ditangkap parameternya. Jika report dari supplier menyertakan trxid yang kita kirim, maka kita hanya perlu menangkap trxid tersebut. Dengan contoh report seperti diatas, maka kita bisa gunakan regular expression berikut: RESPONSECODE\D*00\D*REQUESTID\D*(?<trxid>\d+)\D*

regex

Regex Tester

Hasil dengan menggunakan Regex Tester

regex1

Aplikasi pada Set jawaban

Scroll To Top