Cara Integrasi Webstore – Tingkat Lanjut

Berikut ini alur kerja serta langkah-langkah mengintegrasikan pembayaran iPaymu di website Penjual.

Langkah-Langkah Pengolahan Transaksi

  1. Penjual mengirimkan HTTPs Post Request yang berisi detail pembayaran ke halaman pembayaran iPaymu. Berikut ini detil parameter yang dibutuhkan untuk pembayaran.
    Parameter Keterangan
    key API Key Penjual (diperoleh melalui Menu Akun » Sunting Profil)
    action Aksi pembayaran: payment
    product Nama produk / jasa.
    price Harga produk / jasa.
    quantity Jumlah produk / jasa.
    comments Keterangan / komentar (opsional).
    ureturn URL Return.
    unotify URL Notify.
    ucancel URL Cancel.
    format (opsional) Format output dari request. Bisa menggunakan xml (default) atau json

    Parameter opsional khusus untuk menu tambahan pembayaran lain menggunakan PayPal:

    Parameter Keterangan
    invoice_number (opsional) Nomor Faktur / kode transaksi. Jika dikosongkan maka iPaymu akan men-generate nomor faktur secara otomatis.
    paypal_email Email akun PayPal penjual / merchant
    paypal_price Harga produk / jasa dalam kurs dolar Amerika (USD)
    PENTING: Jika ingin menggunakan menu pembayaran lain menggunakan PayPal, silahkan aktifkan terlebih dahulu melalui menu Transaksi PayPal pada Dashboard iPaymu.

    Contoh implementasi pada PHP (download):

    <?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 untuk pembayaran lain menggunakan PayPal
                 * ----------------------------------------------- */
                'invoice_number' => uniqid('INV-'), // Optional
                'paypal_email'   => 'email_paypal_merchant',
                'paypal_price'   => 1, // Total harga dalam kurs USD
                /* ----------------------------------------------- */
    
                'format'   => 'json' // Format: xml / 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 "Request Error ". $result['Status'] .": ". $result['Keterangan'];
        }
    }
    
    //close connection
    curl_close($ch);
    
    ?>
    

    Contoh :

  2. 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:
    Parameter Keterangan
    sessionID Session ID / kode sesi unik transaksi.
    url URL halaman pembayaran sesuai dengan Session ID.
  3. Penjual mengarahkan pembeli ke halaman pembayaran sesuai dengan URL yang diperoleh pada Langkah 2.
  4. Pembeli melihat detil data pembayaran sesuai dengan yang dikirimkan pada Langkah 1.
  5. Pembeli memasukkan username & password.
  6. Pembeli melihat kembali dan mengkonfirmasi data pembayaran.PP3
  7. iPaymu memproses pembayaran dan mengirimkan detil transaksi pembayaran ke URL Notify Penjual sesuai dengan data yang dikirimkan pada Langkah 1.
  8. Penjual melakukan validasi terhadap data transaksi pembayaran yang dikirimkan oleh iPaymu yang menggunakan method POST. Berikut ini detil parameter notifikasi yang dikirimkan ke URL Notify (sesuai dengan data unotifypada langkah 1)Return Parameter jika menggunakan pembayaran iPaymu:
    Parameter Keterangan
    status Status transaksi: ‘berhasil‘ atau ‘pending
    trx_id ID Transaksi iPaymu.
    sid Session ID / kode sesi unik transaksi.
    product Nama produk / jasa yang dibayar.
    quantity Jumlah produk / jasa yang dibayar.
    merchant Username penjual.
    buyer Username pembeli.
    total Total pembayaran
    no_rekening_deposit Nomor rekening pembayaran jika pembeli memilih opsi pembayaran Transfer Bank (Non-Member iPaymu)
    action Aksi pembayaran: payment
    comments Komentar (opsional)
    referer URL referer dari iPaymu: https://my.ipaymu.com

    Return Parameter jika menggunakan pembayaran PayPal:

    Parameter Keterangan
    status Status transaksi: ‘berhasil‘ atau ‘pending
    sid Session ID / kode sesi unik transaksi.
    product Nama produk / jasa yang dibayar.
    quantity Jumlah produk / jasa yang dibayar.
    merchant Username penjual.
    total Total pembayaran
    paypal_trx_id ID unik transaksi di PayPal
    paypal_invoice_number Nomor faktur / kode transaksi yang di set pada saat request transaksi
    paypal_currency Kurs yang digunakan pada transaksi pembayaran
    paypal_trx_total Total pembayaran
    paypal_trx_fee Biaya transaksi PayPal
    paypal_buyer_email Email akun PayPal pembeli
    paypal_buyer_status Status akun PayPal pembeli
    paypal_buyer_name Nama pembeli
    action Aksi pembayaran: payment
    referer URL referer dari iPaymu: https://my.ipaymu.com

    Catatan: Langkah ini terjadi dibelakang layar antara server iPaymu dengan server website Penjual.

  9. Pembeli melihat halaman transaksi berhasil pada website Penjual sesuai dengan URL Return yang dikirim pada Langkah 1.
CATATAN: Untuk memperoleh status transaksi pembayaran non-member secara realtime, Anda harus menambahkan script cronjob dengan memanfaatkan API Cek Transaksi.

Penjelasan Parameter URL:

  • Return URL adalah halaman pada saat transaksi belanja pada webstore, yang biasanya berisi ucapan terima kasih,
    contoh: http://www.domainanda.com/terimakasih.html
  • Notify URL adalah halaman dibelakang layar (tanpa tampilan) untuk memvalidasi kembali hasil transaksi yang akan dikirim iPaymu menggunakan method POST setelah terjadinya pembayaran,
    contoh: http://www.domainanda.com/notify-ipaymu.php
  • Cancel URL adalah halaman apabila customer melakukan pembatalan pembelian pada webstore Anda,
    contoh http://www.domainanda.com/batal.html