Freelancer's Playground! New knowledges every now and then

7May/082

Men-debug Script Transaksi IPN

Script IPN adalah script yang digunakan oleh online payment processor untuk mem-verifikasi suatu transaksi. Disini kan kita tidak tau apakah script tersebut berjalan dengan semestinya atau ada yang gagal di suatu bagian script. Cara yang biasa saya lakukan adalah dengan membuat log proses yang dilakukan. Apa input dari server, bagaimana script saya mengolah, query apa saja (kalau ada) yang dilakukan, apa response script saya kepada server.

Log yang biasa saya lakukan ada dua cara, pertama dengan menulis step by step proses ke file log dan yang kedua, dengan cara membuffer output dan menyimpan serta meng-echo hasilnya ke file dan output stream. Cara pertama, biasanya saya hanya menggunakan function sebagai berikut:

function writeLog($log)
{
	$fl = fopen("IPN_logger.txt", "ab");
	fwrite($fl, "$log\n");
	fclose($fl);
}
//cara menggunakannya:
writeLog('=======PROCESS START=======');
writeLog('date:'.date('Y-m-d H:i:s'));
writeLog('=======PROCESS   END=======');

Sedangkan untuk cara kedua, caranya sebagai berikut:

<?php
$file = "IPN_logger.txt";
ob_start();
//mulai tulis output
echo '=======PROCESS START=======';
echo 'date:'.date('Y-m-d H:i:s');
//lakukan proses
echo '=======PROCESS   END=======';
//selesai, ambil outputnya
$saved_page = ob_get_contents();

$fl = fopen($file, 'ab');
fwrite($fl, $saved_page);
fclose($fl);

//clean up buffer;
ob_end_clean();

//outputkan HTML-nya.
echo $saved_page;
?>

10 Most Popular Search Terms

  • http://rlyna.wordpress.com/ rlyna

    kirain cara nerima ipn tuh pak.
    duluu perna bikin ipn punyane paypal, ga kepikir buat bikin lognyah :D

    *contek ide*

    author reply:Lha, trus kalo ada error gimana deteksinya? nelusuri code line-by-line?

  • http://rlyna.wordpress.com rlyna

    kirain cara nerima ipn tuh pak.
    duluu perna bikin ipn punyane paypal, ga kepikir buat bikin lognyah :D

    *contek ide*

    author reply:

    Lha, trus kalo ada error gimana deteksinya? nelusuri code line-by-line?

  • Pingback: Output Buffering Untuk Template | Silent's Spot