integrasi pembayaran dengan paypal pada PHP
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 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):
Sample Code (PHP) 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455<!--?php
// URL Payment iPaymu
// Prepare Parameters
$params
=
array
(
'key'
=-->
'api_key_merchant'
,
// API Key Merchant / Penjual
'action'
=>
'payment'
,
'product'
=>
'Nama Produk'
,
'price'
=>
'101000'
,
// Total Harga
'quantity'
=> 1,
'comments'
=>
'Keterangan Produk'
,
// Optional
/* 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
);
?>
- 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.
- 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
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 - 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
0 komentar:
Posting Komentar