Sebelumnya makasih banyak buat pembuat JNE Tracking module. Sangat bermanfaat
Untuk JNE tracking sepertinya perlu diupdate code-nya ( atau sudah tp saya belum tahu aj )
Karena untuk AWB/ No Resi tertentu ga bisa ngetrack.
Misal :
- 1583302200006 Sukses
- BDOA100738072811 atau DPSA100039174911 Gagal.
Module JNE Tracking saya implementasikan di web saya di
http://www.AgenJaket.com
Setelah saya cek codenya :
JNE Tracking Module ada di ..\catalog\view\theme\default\template\shipping\jnetracking.tpl
Tracker Module ada di ..\catalog\view\theme\default\template\shipping\tracker.tpl
Ada 2 hal yg bikin kedua AWB diatas gagal ditrack.
1. Permasalahan pada sistem replace
Pada Module JNE Tracking code snippetnya line 29:
Code: Select all
$awb = preg_replace('/[\\D]/', '', $_REQUEST['awb']);
Pada Module TRACKER code snippetnya line 28:
Code: Select all
$awb = preg_replace('/[\\D]/', '', $_POST['awb']);
Code diatas akan menghapus karakter abjad yg ada di dalam AWB. sehingga ketika kita masukkan DPSA100039174911 akan menghasilkan $awb = 100039174911
2. Permasalah pada pembatasan panjang AWB JNE dengan 13 karakter
Pada Module JNE Tracking code snippetnya line 39:
Code: Select all
} elseif (strlen($awb) == 13) {
$grab = @file_get_contents("http://www.jne.co.id/index.php?mib=tracking.detail&awb=" .
$awb . "&awb_list=" . $awb . ",");
Pada Module TRACKER code snippetnya line 45:
Code: Select all
if (strlen($awb) == 13) {
$grab = @file_get_contents("http://www.jne.co.id/index.php?mib=tracking.detail&awb=" .
$awb . "&awb_list=" . $awb . ",");
Dengan pengecekan panjang karakter AWB JNE dengan 13 maka AWB DPSA100039174911 dianggap tidak valid.
Solusi yg saya gunakan adalah versi Trial and Error..untuk code yg lebih valid bisa menunggu para master saja
1. Solusi pada JNE Tracking Module
Saya replace code yang ada di dalam <div class="content"> dengan code sbb:
Code: Select all
<table width="100%">
<tr>
<?php
$awb = strtoupper($_REQUEST['awb']);
if (strlen($awb) == 13 || strlen($awb) == 16) {
$grab = @file_get_contents("http://www.jne.co.id/index.php?mib=tracking.detail&awb=" . $awb . "&awb_list=" . $awb . ",");
if (preg_match('/<table width="100%" border="0" cellspacing="1" bgcolor="#fff">([\\w\\W]*?)<p>/i', $grab, $regs)) {
$result = $regs[1];
} else {
$result = "Data tidak ditemukan atau data belum masuk sistem. Periksa kembali AWB / No Resi anda";
}
}else {
$result = "Masukkan Airway Bill/NO Resi Anda dengan benar. Panjang AWB/No Resi JNE yang valid adalah 13 atau 16 karakter.";
}
$trans = array('WIDTH=680' => 'WIDTH=515');
if (empty($result)) {
echo ('Data salah atau data belum masuk sistem. Periksa kembali AWB/No Resi anda.');
} else {
echo strtr($result, $trans);
}
?>
</tr>
</table>
</table>
Saya hilangkan code replace, penambahan pengecekan 16 karakter, dan menghilangkan code2 laen yang tidak berhubungan dengan tracking JNE karena saya hanya menggunakan untuk Tracking dari JNE saja.
2. Tracker Module
Saya belum membuat fix-nya karena minimnya pengetahuan di php dan module ini yang memperhitungkan tracking selain JNE sehingga sangat riskan buat newbie spt saya
Tapi menurut saya inti solusinya tetap sama.
- Tidak mereplace karakter abjad yg ada di AWB JNE
- Tidak membatasi AWB JNE dengan 13 karakter ( menambahkan pengecekan 16 karakter )
Karena sejauh ini AWB yang tidak dikenali adalah yang memiliki 16 karakter.
Sekian coba-coba saya...semoga bermanfaat bagi komunitas OC di Indonesia, bila ada yang salah silahkan dikoreksi hehehe
Warm Regards,
