ramoreezAvatar border
TS
ramoreez
Cara Ambil Harga Pengiriman (Ongkos Kirim) JNE dengan PHP
Setelah melakukan pencarian panjang akhirnya saya menemukan apa yang saya cari , yaitu : cara menghitung biaya pengiriman JNE.

Awalnya saya search di google dengan keyword “JNE API”. Mengejutkan hasilnya, ternyata JNE tidak mengeluarkan atau membuat API. Entah dengan alasan apa perusahaan pengiriman itu memproteksi diri untuk tidak membuat API. Bahkan sekarang teknik-teknik lama sudah tidak bisa digunakan karena adanya captcha di web nya JNE(padahal dulu gak ada). Semakin jelas kan klo JNE memang memproteksi diri.

Stop. dari beberapa hasil pencarian google dengan keyword di atas akhirnya saya “nyasar” di http://api.ongkir.info/docs/index.html dan inilah yang saya cari-cari selama ini.

Di bagian paling bawah web ongkir.info ada tulisan “Ongkir.Info tidak berafiliasi dengan perusahaan yang disebutkan.” WTF?? Saya heran justru web/orang lain malah yang membuat API JNE.

Ok, cukup sampai sini kejengkelan saya terhadap JNE. Kita lanjut bagaimana cara memanfaatkan API yang diberikan oleh ongkir.info ini ?

pertama silahkan baca disini http://api.ongkir.info/docs/starting.html

Selanjutnya, lakukan registrasi di http://api.ongkir.info/akun/registrasi

Setalah mendapakan email verifikasi dari ongkir.info maka login ke http://api.ongkir.info/akun/login Jika login sukses maka anda akan mendapatkan API-Key berupa deretan karakter sepanjang 32, digunakan untuk validasi pemanggilan API.

selanjutnya untuk memudahkan penggunaan API Ongkir.Info, telah disediakan pustaka (library) Anda dapat mendownload di http://api.ongkir.info/docs/example/...hp_sample.html. buat file baru dengan nama class.php, copy paste script php di bagian Wrapper untuk API City dan Wrapper untuk API Cost.

berikut ini file class.php yang sudah saya modifikasi sedikit.
Code:
<?php
function get_city($query,$type)
{
//library yang harus anda download
require_once 'REST_Ongkir.php';

$rest = new REST_Ongkir(array(
'server' => 'http://api.ongkir.info/'
));

//ganti API-Key dibawah ini sesuai dengan API Key yang anda peroleh setalah mendaftar di ongkir.info
$result = $rest->post('city/list', array(
'query' => $query,
'type' => $type,
'courier' => 'jne',
'API-Key' => 'ABCDEFGHIJKLMNOPQRSTUVWXYZ123456' ), 'JSON'/;)/;

try
{
$status = $result['status'];

// Handling the data
if ($status->code == 0)
{
return $cities = $result['cities'];
//print_r($cities);
//foreach ($cities->item as $item)
//{
//echo 'Kota: ' . $item . '<br />';
// }
}
else
{
echo 'Tidak ditemukan kota yang diawali "band"';
}

}
catch (Exception $e)
{
echo 'Processing error.';
}
}

function get_cost($from, $to,$weight)
{
//library yang harus anda download
require_once 'REST_Ongkir.php';

$rest = new REST_Ongkir(array(
'server' => 'http://api.ongkir.info/'
));

//ganti API-Key dibawah ini sesuai dengan API Key yang anda peroleh setalah mendaftar di ongkir.info
$result = $rest->post('cost/find', array(
'from' => $from,
'to' => $to,
'weight' => $weight.'000',
'courier' => 'jne',
'API-Key' =>'ABCDEFGHIJKLMNOPQRSTUVWXYZ123456'
));

try
{
$status = $result['status'];

// Handling the data
if ($status->code == 0)
{
$prices = $result['price'];
$city = $result['city'];

echo 'Ongkos kirim dari ' . $city->origin . ' ke ' . $city->destination . '<br /><br />';

foreach ($prices->item as $item)
{
echo 'Layanan: ' . $item->service . ', dengan harga : Rp. ' . $item->value . ',- <br />';
}
}
else
{
echo 'Tidak ditemukan jalur pengiriman dari surabaya ke jakarta';
}

}
catch (Exception $e)
{
echo 'Processing error.';
}
}

//$kota = get_city('ban','origin'/;)/;
//echo json_encode($kota);

?>


Setelah itu buat lah form kira-kira tamplannya seperti ini:


Form di atas akan saya padukan dengan JQuery Autocomplete agar memudahkan kita mengetikkan nama-nama kota.

Buatlah file baru beri nama index.php :
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jQuery UI Autocomplete - Default functionality</title>
<link rel="stylesheet" media="screen" href="js/jqueryui/css/ui-lightness/jquery-ui-1.8.13.custom.css">[removed]
[removed][removed]
[removed][removed]

[removed]
$(function() {
//autocomplete untuk mencari kota asal
$("#from").autocomplete({
minLength: 3,
delay: 3,
source: function(request, response) {
$.ajax({
url: "data.php?type=origin",
dataType: "json",
data: {
term : request.term,
from: $('#from'/;)/.val(),
},
success: function(data) {
response( $.map( data, function( item )
{
return{
label: item.nama_kota,
value: item.nama_kota,
}
}));

}
});
},
});

//autocomplete untuk mencari kota tujuan
$("#to").autocomplete({
minLength: 3,
delay: 3,
source: function(request, response) {
$.ajax({
url: "data.php?type=destination",
dataType: "json",
data: {
term : request.term,
to: $('#to'/;)/.val(),
},
success: function(data) {
response( $.map( data, function( item )
{
return{
label: item.nama_kota,
value: item.nama_kota,
}
}));

}
});
},
})
});
[removed]
</head>
<body>
<h2>Menghitung Onkos Kirim JNE</h2>
<form action="" method="post">
<table width="20%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="19%">From</td>
<td width="81%"><input type="text" name="from" id="from" /></td>
</tr>
<tr>
<td>to</td>
<td>?<input type="text" name="to" id="to" /></td>
</tr>
<tr>
<td>Weight</td>
<td>?<input type="text" name="weight" id="weight" />Kg</td>
</tr>
<tr>
<td>Couriers</td>
<td>?<select name="couriers"><option value="jne">JNE</option></select></td>
</tr>
<tr>
<td>?</td>
<td align="right">?<input type="submit" name="go" value="Go" /></td>
</tr>
</table>

</form>

<?php
if(isset($_POST['go'])){
//include file class.php untuk memanaggil fungsi get_cost(); yang berfungsi untuk menghitung ongkos kirim.
include('class.php'/;)/;
$from = $_POST['from'];
$to = $_POST['to'];
$weight = $_POST['weight'];
//pemanggilan fungsi get_cost();
get_cost($from, $to,$weight);

}
?>
</body>
</html>
<pre>


terakhir buat file data.php untuk lookup data kota asal dan kota tujuan
Code:
<?php

//includekan file class.php
include('class.php'/;)/;
$return_arr = array();

//tangkap variable type untuk mengetahui apakan kota asal (origin) atau kota tujuan (destination)

$type = $_GET['type'];

//panggil fungsi get_city() untuk mendapatkankan nama-nama kota.
$cities = get_city(trim($_GET['term']),$type) ;

$i=0;
foreach ($cities->item as $value) {
$row_array['id_kota'] = $i;
$row_array['nama_kota'] = strval($value);

array_push($return_arr,$row_array);
$i++;
}

/*convert ke dalam bentuk JSON. kira2 formatnya seperti ini
[{"id_kota":0,"nama_kota":"BANDAACEH"},{"id_kota":1,"nama_kota":"BANDARLAMPUNG"},{"id_kota":2,"nama_kota"</code><code>:"BANDUNG"},{"id_kota":3,"nama_kota":"BANGUI, CENTRAL AFRICAN REP."},{"id_kota":4,"nama_kota":"BANJARMASIN"</code><code>},{"id_kota":5,"nama_kota":"BANJUL, GAMBIA"}]
*/
echo json_encode($return_arr);
?>


Berikut SS dari script di atas:




Sekian sedikit sharing dari saya tentang cara menghitung Ongkos Kirim via JNE.


Ditunggu caci makinya ganemoticon-Blue Guy Cendol (L)emoticon-Blue Guy Cendol (L)

THANKS ONGKIR.INFO

SOURCE
nona212
nona212 memberi reputasi
1
38.7K
56
GuestAvatar border
Guest
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru
Mari bergabung, dapatkan informasi dan teman baru!
Programmer Forum
Programmer ForumKASKUS Official
20.2KThread4.2KAnggota
Terlama
GuestAvatar border
Guest
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru
Ikuti KASKUS di
© 2023 KASKUS, PT Darta Media Indonesia. All rights reserved.