Cara Integrasi Webstore dengan iPaymu
dalam API Integration
1. Parameter Request
Penjual mengirimkan HTTPs Post Request yang berisi detail pembayaran ke halaman pembayaran iPaymu. Berikut ini detil parameter yang dibutuhkan untuk pembayaran.
Komentar
Contoh implementasi pada PHP
<?php $url = 'https://my.ipaymu.com/payment.htm'; // URL Payment iPaymu $params = array( // Prepare Parameters 'key' => 'api_key_merchant', // API Key Merchant / Penjual 'action' => 'payment', 'product' => 'Nama Produk', 'price' => '101000', // Total Harga 'quantity' => 1, 'comments' => 'Keterangan Produk', // Optional 'ureturn' => 'http://websiteanda.com/return.php?q=return', 'unotify' => 'http://websiteanda.com/notify.php', 'ucancel' => 'http://websiteanda.com/cancel.php', /* Parameter tambahan untuk pembayaran COD * ----------------------------------------------- */ 'weight' => '0.5', // Berat barang (satuan kilo) 'dimensi' => '1:2:1', // Dimensi barang (format => panjang:lebar:tinggi) 'postal_code'=> '82131', // Kode pos untuk custom pikcup 'address' => 'Jalan Raya Kuta, No 88R, Badung, Bali' // Alamat untuk custom pickup /* ----------------------------------------------- */ /* Parameter tambahan untuk custom payment page (hanya menampilkan satu metode pembayaran) * ----------------------------------------------- */ 'pay_method' => 'cstore', // Metode pembayaran yang akan ditampilkan (VA Niaga => niaga, VA BNI => bni, Kartu Kredit => cc, Convenience Store (Alfamart/Indomaret) => cstore, COD => cod, Saldo iPaymu => member) 'pay_channel' => 'indomaret' // Channel dari metode pembayaran, jika ada (Misal dari metode pembayaran Convenience Store => indomaret, alfamart) 'buyer_name' => 'Agus', // Nama pembeli(opsional) 'buyer_phone' => '08123456789', // No HP pembeli (opsional) 'buyer_email' => 'pembeli@mail.com', // Email pembeli (opsional) /* ----------------------------------------------- */ 'format' => 'json' // Format: xml atau json. Default: xml ); $params_string = http_build_query($params); //open connection $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, count($params)); curl_setopt($ch, CURLOPT_POSTFIELDS, $params_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //execute post $request = curl_exec($ch); if ( $request === false ) { echo 'Curl Error: ' . curl_error($ch); } else { $result = json_decode($request, true); if( isset($result['url']) ) header('location: '. $result['url']); else { echo "Error ". $result['Status'] .":". $result['Keterangan']; } } //close connection curl_close($ch); ?> Sample Code (PHP)2. Parameter Response
Penjual menerima Session ID dan URL pembayaran sesuai dengan data yang dikirim pada Langkah 1. Adapun parameter respon yang dikirim balik oleh iPaymu sebagai berikut:
https://forum.ipaymu.team/uploads/901/TYF2ZWCFGW23.png3. Halaman Pembayaran
Penjual mengarahkan pembeli ke halaman pembayaran sesuai dengan URL yang diperoleh pada Langkah 2. Halaman pembayaran akan menampilkan data pembayaran sesuai dengan yang dikirimkan pada Langkah 1.
https://forum.ipaymu.team/uploads/661/OOGPV08F1C0Z.png
https://forum.ipaymu.team/uploads/893/KO8R6HWAPB2Z.png
https://forum.ipaymu.team/uploads/568/MLKFUBWTIVTG.png4. Notifikasi Pembayaran dari iPaymu
Notifikasi pembayaran sukses atau gagal akan dikirimkan ke parameter ‘unotify’ dengan method POST. Parameter yang dikirimkan dari iPaymu adalah sebagai berikut.
https://forum.ipaymu.team/uploads/777/SAWCJ2J2G31Q.pngCatatan: Langkah ini terjadi dibelakang layar antara server iPaymu dengan server website Penjual.
Pembeli melihat halaman transaksi berhasil pada website Penjual sesuai dengan URL Return yang dikirim pada Langkah 1.
https://forum.ipaymu.team/uploads/464/HY7RVOKDGT44.pngCATATAN: Untuk memperoleh status transaksi pembayaran non-member secara realtime, Anda harus menambahkan script cronjob dengan memanfaatkan API Cek Transaksi.
Penjelasan Parameter URL: